将来を見据えたウェブ・アプリケーションの構築:The Codestのエキスパート・チームによる洞察
The Codestが、最先端技術を駆使してスケーラブルでインタラクティブなウェブアプリケーションを作成し、あらゆるプラットフォームでシームレスなユーザー体験を提供することにどのように秀でているかをご覧ください。The Codestの専門知識がどのようにデジタルトランスフォーメーションとビジネス...
新しいプロジェクトを始めようとしている、あるいは新しい機能を開発しようとしているのでしょうか?何か作業を始める前に、役に立つかもしれない様々な外部ツールについて可能な限り調べる価値があります。
AWSの2つの基本的でおそらく最も人気のあるサービスは、EC2とS3だ。一言で言えば、EC2を使えば、次のようなことができる。 プロジェクト S3はあらゆる種類のデータを保存するために使われる。しかしこの記事では、Codestで通常使用している、多かれ少なかれ人気のある他のAWSツールについて見ていきたいと思う。
これは、多くのユーザーに非常に高速にリソースを提供するために特別に作られたツールである。多くのユーザーとは、一つのリソースに対して何百、何千というリクエストではなく、何百万というリクエストを意味します。例えば、あなたのグラフィック、CSS、HTML、もしくは ジャバスクリプト ファイルをどのページにも適用することができます。また、リソースが提供するコンテンツに完全な影響を与えたい - 何かを変更する必要があり、この変更があなたのファイルを含むすべてのページで起こるようにしたい。そしてここでAWS Cloudfrontが登場し、最終的なユーザができるだけ早くあなたのリソースを受け取れるよう、そのすべての機能を提供します。
Cloudfrontは多くの統計も提供している。例えば、最もリクエストされたページ、リソースへのリクエストが行われたデバイス、httpステータスなどです。
もちろん、このツールはかなり高価だが、クラウドフロントへのリクエストが多ければ多いほど、サービスに支払う金額は少なくなる。したがって、本当に大きな、あるいは巨大なトラフィックを持つウェブサイトにリソースを配置したい場合は、このソリューションを検討する必要があります。
簡単に言うと、大量のジョブをAWS上で直接実行できるサービスだ。用意するのは実行スクリプトとDockerイメージだけで、あとはAWS Batchがやってくれる。Batchは動的にEC2上にインスタンスを作成し、ジョブに適した場所を割り当て、同時に起動する。EC2インスタンスの容量やメモリが足りなくなることを心配したり、いつどのようにジョブを開始するかを常に考える必要はない。Dockerイメージ内のスクリプトとサービス間の通信は、APIを作成するだけでOKだ。Batchを使いたい場合は、Amazon Elastic Container Registry (ECR)サービスにdockerリポジトリを用意する必要もある。
ドッカー・コンテナから恩恵を受けるもうひとつのサービスも特筆に値する。それはElastic Container Service(ECS)と呼ばれるものだ。Batchとの主な違いは、EC2インスタンスのセットアップとスケーリングを自分で行う必要があることだ。Batchのコストは、どのEC2インスタンスを使用できるかによって決まる。
AWS Batchはdockerイメージを起動することで作業を行うが、次のサービスであるAWS Lambdaはスクリプトを直接実行することができる。サーバをセットアップする必要はありません。 コード は仮想的に実行され、さらに良いことに、好きな方法で何らかの値を返すこともできる。
どんな時に使えるのか?例えば、ブラウザからのパラメータに基づいてウェブサイト上で計算を行い、さらにその計算にはウェブ上の他の場所への追加クエリが必要だとします。この場合、Lambdaでエンドポイントを作成し、スクリプトを追加し、ウェブサイトでこのエンドポイントを使うだけでいい。実に簡単だ。
ラムダのコストは、スクリプトが実行されているときだけカウントされる。
Simple Notification Serviceはその名の通り、通知を送るために特別に開発されたツールだ。様々なAWSサービス間の通信に簡単に使うことができる。例えば、マイクロサービスのグループがあり、そのうちの1つが他のマイクロサービスをリードしたい、つまりそのうちのいくつかを開始させたり、いくつかのアクションを実行させたりしたいとします。このような場合、メインサービスから通知を送信し、別のマイクロサービスでメッセージの受信を処理することができる。ちなみに、Amazon Simple Queue Service (SQS)についても触れておく価値がある。
SNSの場合(SQSと同様)、支払いは実行されたリクエストに対してのみ行われます。SNSへのメッセージ送信、SNSから他のサービスへのメッセージ送信、SNS APIプールからのその他の追加リクエストです。
Amazon Relational Database Serviceは単なる外部データベースである。このサービスにより、AWSはリレーショナル・データベースのセットアップ、使用、スケーリングを簡単に行うことができる。例えば、データベースがかなりの規模になり、日々大きくなることが予想され、そのデータベースを使用して多かれ少なかれ複雑な操作を定期的に実行する予定がある場合、例えばデータの処理や別のデータベースへのコピーなど、このソリューションは検討する価値がある。利用可能なデータベースエンジンには、PostgreSQL、MySQL、MariaDBがあります。
RDSのコストがデータベースのサイズとその使用量に関係することは容易に推測できる。
AWSは、既存のサービスを改善するにしても、新しいものを作るにしても、常に変化し続けている。AWSの技術革新に常にアンテナを張っておくだけでなく、既にあるものについても知っておくことが望ましい。