リファレンスデプロイ

AWS のブルー/グリーンデプロイ

AWS CodePipeline を使用した AWS Elastic Beanstalk 環境へのデプロイ

このクイックスタートでは、AWS CodePipeline を使用して AWS に自動的にブルー/グリーンアーキテクチャをデプロイします。継続的インテグレーション/継続的デプロイ (CI/CD) パイプラインを約 15 分で作成します。

アプリケーションを開発し、2 つの同一環境 (ブルーおよびグリーン) を持つ AWS Elastic Beanstalk 環境にデプロイすると、可用性が向上してリスクが軽減されます。このクイックスタートアーキテクチャでは、ブルー環境が、通常、ライブトラフィックを処理する本番環境です。CI/CD パイプラインアーキテクチャにより、ライブ Elastic Beanstalk 環境 (ブルー環境) のクローン (グリーン環境) が作成されます。そして、このパイプラインによって、2 つの環境間で URL が交換されます。

CodePipeline が元の環境にアプリケーションコードをデプロイしてテストやメンテナンスを行っている間は、一時的なクローン環境でライブトラフィックが処理されます。ブルー環境へのデプロイが成功し、コードレビューとコードテストが完了すると、パイプラインはグリーン環境とブルー環境間で再度 URL を交換します。ブルー環境は再びライブトラフィックを処理するようになり、グリーン環境はパイプラインにより終了されます。

 

 

このクイックスタートは、
AWS ソリューションアーキテクトにより開発されたものです。

 

  •  構築するもの
  • このクイックスタートを使用して、AWS に以下のブルー/グリーンデプロイ環境をデプロイおよび設定します。

    • AWS Elastic Beanstalk 環境にデプロイされるアプリケーションパッケージの新バージョンが Amazon S3 バケットにアップロードされると起動されるパイプライン。
    • ブルー環境のクローンとしてグリーン環境を作成し、両環境間で URL を交換して、ブルー環境のデプロイとテストが完了したらグリーン環境を終了する AWS Lambda 関数。
    • ブルー環境とグリーン環境の間の最初の URL 交換を実行し、ブルー環境のデプロイをテストする AWS CodeBuild プロジェクト。
    • 既存の Elastic Beanstalk 環境、およびその環境が存在するアプリケーションが提供されていない場合は、このクイックスタートでサンプル環境を作成。
    • Lambda 関数、CodeBuild プロジェクト、CodePipeline の AWS IAM ロール、および Elastic Beanstalk サンプルアプリケーションのサービスロール。
    • CodePipeline Artifact Store、Lambda 関数アセット、および CodeBuild アセット用に個別に用意された Amazon S3 バケット。Elastic Beanstalk デプロイ用のアプリケーションコードが格納された zip パッケージを保存するための S3 バケットをオプションで利用可能。
  •  デプロイ方法
  • AWS にブルー/グリーンアーキテクチャを構築するには、デプロイガイドの指示に従ってください。デプロイプロセスには約 15 分かかり、次のステップが含まれます。

    1. 前提条件を確認します。
    2. AWS アカウントをお持ちでない場合は、https://aws.amazon.com でサインアップしてください。
    3. (省略可能) 既存の Elastic Beanstalk 環境とアプリケーションをメモします。サンプル環境とサンプルアプリケーションを起動する場合は、この手順を省略できます。
    4. クイックスタートを起動して、設定をカスタマイズします。
    5. (省略可能) Git から S3 への統合が有効になっている場合は、Git リポジトリを構成します。
    6. デプロイに成功したかどうかをテストします。

    Amazon は、本ソリューションで AWS と協力した AWS パートナーとユーザーデプロイ情報を共有する場合があります。  

  •  コストとライセンス
  • このクイックスタートリファレンスデプロイの実行中に使用した AWS のサービスのコストは、お客様が負担します。クイックスタートを使用しても追加コストは発生しません。

    このクイックスタートでは、Lambda 関数、AWS CodeBuild、Amazon Simple Notification Service (SNS)、Elastic Beanstalk とやり取りするパイプラインを起動することにより、コスト効率の高いデプロイを実行します。また、このクイックスタートで Git Webhooks with AWS Services Quick Start を有効にすると、お使いの Git リポジトリを Amazon S3 とリンクできます。Git から Amazon S3 へのリンクを有効にすると、Amazon API Gateway エンドポイント、および Amazon S3 へのコードのダウンロード、zip ファイルの作成、デプロイを処理する Lambda 関数が使えるようになります。

    AWS CodePipeline はアクティブなパイプラインごとに課金されます。AWS CodePipeline の料金をご覧ください。AWS CodeBuild と Amazon SNS は、従量制で課金されます。詳細は、AWS CodeBuildAmazon SNS をご覧ください。Git Webhooks with AWS Services Quick Start を有効にすると、設定によっては、AWS Key Management Service (AWS KMS) キーがデプロイされることがあります。料金については、AWS Key Management Service の料金をご覧ください。API Gateway、Amazon S3、および Lambda の料金は、コードをリポジトリにコミットする頻度によって異なります。コミットのたびに、API ゲートウェイでの Lambda 実行リクエストがトリガーされます。詳細は、API GatewayAmazon S3、および Lambda の料金ページをご覧ください。