ラボの概要
このラボでは、フルマネージドの継続的インテグレーションと継続的デリバリー (CI/CD) のパイプラインを Amazon Elastic Container Service (Amazon ECS) で実行するアプリケーション用に構築する方法をデモンストレーションします。AWS CodePipeline を使用して 3 つのステージから成るパイプラインをモデル化、オーケストレーション、可視化し、ブルー/グリーンデプロイ戦略を使用してコンテナ化されたアプリケーションをデプロイします。この戦略では新しいバージョンのアプリケーションを起動して古いバージョンと並行して実行し、徐々にトラフィックを新しいバージョンに移行します。ブルー/グリーンデプロイは一般的に、アプリケーションのインプレースアップグレードを行うときに採用されます。管理者はこれにより新しいコードを検証しながら古いアプリケーションバージョンを実行できます。新しいコードでエラーが検出された場合は、デプロイを迅速かつ確実にロールバックできます。
完了すると、パイプラインは新しいコードがソースリポジトリにプッシュされるたびに新しいコンテナイメージを自動でビルドし、AWS CodeDeploy と Amazon ECS を使用してそのデプロイを管理し、トラフィックを移行します。
このラボでは、以下のテクノロジースタックを使用します。
- AWS Cloud9
- AWS CodeBuild
- AWS CodeCommit
- AWS CodeDeploy
- AWS CodePipeline
- Amazon Elastic Container Registry (Amazon ECR)
- Amazon ECS
取り上げるトピック
本ラボを修了すると、次のことができるようになります。
- 目標 1: CodeCommit をアプリケーションのソースコントロールリポジトリとして設定する。
- 目標 2: buildspec ファイルを使用して新しい Docker イメージをビルドする CodeBuild プロジェクトを作成し、監査可能で安全な方法で Amazon ECR に保存する。
- 目標 3: ブルー/グリーンデプロイで使用する動的フィールドを含む appspec.yaml ファイルと taskdef.json ファイルを作成する。
- 目標 4: CodeDeploy と Amazon ECS で設定したブルー/グリーンデプロイ戦略を使用して、アプリケーションのインプレースアップグレードを実行する。
前提条件
このラボには以下のものが必要になります。
- Windows、Mac OS X、Linux (Ubuntu、SuSE、または Red Hat) のいずれかが搭載されているコンピュータを使用できること
- Google Chrome や Mozilla Firefox などの最新のインターネットブラウザ
アイコンキー
このラボでは、さまざまな種類の手順と注記への注意を促すため、各種アイコンが使用されています。以下のリストは、各アイコンの目的を説明したものです。
- コマンド: 実行する必要があるコマンドです。
- 想定される出力: 出力のサンプルであり、コマンドまたは編集済みファイルの出力を確認するときに使用します。
- 注意: ヒントや重要なガイダンスです。
- 追加情報: 詳細を確認可能。
- 検討: ここでは、少し時間を取ってそのコンセプトをどうすれば自分の環境に応用できるか考えたり、学習中のトピックについて議論したりします。
- 重要: 特定の関心事または重要な情報への注意を促します。注意を読み忘れても機器やデータが破損することはないものの、特定のステップを再度行う必要が生じる場合があります。
- セキュリティ: セキュリティのベストプラクティスを取り入れるタイミングです。