ラボの概要
このラボでは、Amazon Elastic Container Service を使用して、2 つの API サービスをサポートするウェブサイトで構成されるシンプルなマルチコンポーネントウェブアプリケーションをホストする方法を説明します。ウェブサイトには、名詞、動詞、形容詞のプレースホルダーを使ってストーリーを組み立てるフォームが表示されます。[送信] をクリックすると、ストーリーのテキストに含まれるすべてのプレースホルダーを入力するのに必要な単語が words API に対してクエリされます。次に [保存] をクリックし、save API によって、作成した内容を Amazon DynamoDB に保持することができます。このアプリケーションを Storyizer と呼びます。
まず、Command Host でウェブアプリケーションの各コンポーネント用の Docker コンテナを構築します。次に、それらのコンテナを Amazon Elastic Container Repository (ECR) にプッシュして、ECS クラスターの構築時に取得できるようにします。
次に、3 つのコンポーネント (ウェブサイト、API、保存) それぞれについて、Docker イメージ、リソース要件、および環境変数を指定してタスク定義を作成します。次に、これらのタスク定義を AWS ECS に登録し、各コンポーネントのサービスを作成します。各サービスは、実行中の 2 つのタスクを維持するように設定されています (タスクとは特定の Docker コンテナを実行するための定義です)。これにより、高可用性設計が実現します。サービスタスクに異常が発生すると、ECS によって、自動的に新しく起動されたタスクに置き換えられます。また、ECS は、Application Load Balancer (ALB) と各 ECS タスクを使って、動的なホストポートのマッピングも調整します。これにより、ポートの競合なしに 1 つのホスト上でアプリケーションコンポーネントの複数のコンテナを実行できるようになります。
目標
このラボを修了すると、以下ができるようになります。
- Docker イメージの構築に必要なステップを理解する。
- コンテナイメージを Amazon ECR リポジトリにプッシュする。
- コンテナをリポジトリから Amazon ECS クラスターにサービスとしてデプロイする。
技術知識の前提条件
このラボの前提条件は以下のとおりです。
- Microsoft Windows、Mac OS X、Linux (Ubuntu、SuSE、Red Hat) が搭載されている Wi-Fi 対応ノートパソコンを使用できること
- Microsoft Windows ユーザーの場合は、コンピュータへの管理者アクセス
- Chrome、Firefox、IE9 以降 (これより前のバージョンの Internet Explorer はサポート対象外) などのインターネットブラウザ
アイコンキー
このラボでは、さまざまな種類の手順と注記への注意を促すため、各種アイコンが使用されています。以下のリストは、各アイコンの目的を説明したものです。
- コマンド: 実行する必要があるコマンドを表す。
- 想定される出力: 出力のサンプルであり、コマンドまたは編集済みファイルの出力を確認するときに使用する。
- 注意: ヒントや重要なガイダンス。
- 警告: 特記事項または重要な情報 (この情報を読み忘れても、機器やデータに問題が発生するというわけではありませんが、特定のステップを繰り返す必要が生じる可能性があります)。
- 詳細: 詳細情報が記載されている場所を示す。
- タスク完了: ラボのまとめや要点を示す。