翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
統合 CodeDeploy EElastic Load Balancing
中 CodeDeploy のデプロイは、インスタンスがインスタンスへのインターネットトラフィックのルーティングを防止、環境の一部として不要になった場合は、インスタンスが準備完了ではない、環境の一部として不要になった場合は、インスタンスへのインターネットトラフィックのルーティングを防止します。ただし、ロードバランサーの正確な役割は、Blue/Green デプロイで使用されるかインプレースデプロイで使用されるかによって異なります。
注記
Elastic Load Balancing ロードバランサーの使用は Blue/Green デプロイでは必須、インプレースデプロイでは任意です。
Elastic Load Balancing のタイプ
Elastic Load Balancing は 3 種類のロードバランサーを提供しています。 CodeDeploy デプロイ クラシックロードバランサー、Application Load Balancer、および Network Load Balancer。
- Classic Load Balancer
-
ルーティングおよび負荷分散を、トランスポートレイヤー (TCP/SSL) またはアプリケーションレイヤー (HTTP/HTTPS) のいずれかで行います。VPC をサポートします。
- Application Load Balancer
-
ルーティングと負荷分散をアプリケーションレイヤー (HTTP/HTTPS) で行い、パスベースのルーティングをサポートしています。Virtual Private Cloud (VPC) 内の EC2 の各インスタンスまたはコンテナインスタンスのポートにリクエストをルーティングできます。
注記
Application Load Balancer のターゲットグループには、EC2 インスタンスでのデプロイの場合は
instance
、および Fargate デプロイの場合はIP
のターゲットタイプがなければなりません。詳細については、「ターゲットタイプ」を参照してください。 - Network Load Balancer
-
パケットのコンテンツからではなく、TCP パケットヘッダーから抽出されたアドレス情報に基づいて、トランスポートレイヤー (TCP/UDP Layer-4) でルーティングと負荷分散を行います。Network Load Balancer は、ロードバランサーの有効期間中、トラフィックバーストを処理し、クライアントの出典 IP を保持して、固定 IP を使用します。
Elastic Load Balancing ロードバランサーの詳細は、以下のトピックを参照してください。
Blue/Green デプロイ
Elastic Load Balancing ロードバランサーの背後でインスタンストラフィックを再ルーティングすることは CodeDeployBlue/Green デプロイ。
Blue/Green デプロイの場合、ロードバランサーは、最新のアプリケーションリビジョンのデプロイ先であるデプロイグループの新しいインスタンス (置き換え先環境) に対しては、指定したルールに基づくトラフィックのルーティングを許可し、前回のアプリケーションリビジョンの実行元である古いインスタンス (元の環境) からはトラフィックをブロックします。
置き換え先環境のインスタンスがロードバランサーに登録されると、置き換え元環境のインスタンスは登録解除され、終了可能になります。
Blue/Green のデプロイでは、デプロイグループで Classic Load Balancer、Application Load Balancer、または Network Load Balancer を指定できます。あなたは使う CodeDeploy コンソールまたはAWS CLIロードバランサーをデプロイグループに追加します。
Blue/Green デプロイにおけるロードバランサーの使用に関する詳細については、以下のトピックを参照してください。
インプレースデプロイ
インプレースデプロイ中は、ロードバランサーにより、デプロイ先のインスタンスに対するインターネットトラフィックのルーティングがブロックされ、そのインスタンスへのデプロイが完了した時点でインスタンスに対するトラフィックのルーティングが再開されます。
インプレースデプロイ中にロードバランサーが使用されないと、インターネットトラフィックはデプロイプロセス中に依然としてインスタンスにルーティングされる場合があります。その結果、お客様に表示されるウェブアプリケーションが破損していたり、不完全であったり、古いものであったりする可能性があります。インプレースデプロイで Elastic Load Balancing ロードバランサーを使用する場合、デプロイグループのインスタンスはロードバランサーから登録解除され、最新のアプリケーションリビジョンに更新されてから、同じデプロイグループの一部としてロードバランサーに再登録されます。成功。 CodeDeploy は、ロードバランサーのバックグラウンドでインスタンスが正常になるまで最大 1 時間待機します。待機期間中にロードバランサーによってインスタンスが正常とマークされていない場合、 CodeDeploy のデプロイ設定に基づいて、次のインスタンスに移動するか、デプロイに失敗します。
インプレイスデプロイでは、Classic Load Balancer、Application Load Balancer、または Network Load Balancer を指定できます。ロードバランサーをデプロイグループの設定の一部として指定できます。 CodeDeploy ロードバランサーを実装します。
デプロイグループを使用してインプレースデプロイのロードバランサーを指定する
ロードバランサーをデプロイグループに追加するには、 CodeDeploy コンソールまたはAWS CLI。インプレースデプロイでロードバランサーをデプロイグループで指定する詳細については、次のトピックを参照してください。
スクリプトを使用してインプレースデプロイのロードバランサーを指定する
次の手順のステップに従ってデプロイライフサイクルスクリプトを使用し、インプレースデプロイのロードバランシングをセットアップします。
注記
ぜひをお使いください。 CodeDeployDefault。OneAtATime のデプロイ設定は、スクリプトを使用してインプレイスデプロイ用のロードバランサーを設定するときのみ使用します。同時実行はサポートされていません。 CodeDeployDefault。OneAtATime 設定によりスクリプトの直列実行が確実になります。デプロイ設定の詳細については、でのデプロイメント設定の操作 CodeDeploy を参照してください。
左 CodeDeploy 上のサンプルリポジトリ GitHub、使用に対応できる手順とサンプルを提供します CodeDeploy Elastic Load Balancing ロードバランサー。これらのレポジトリには、開始するのに必要なすべてのコードを提供する 3 つのサンプルスクリプト、register_with_elb.sh
、deregister_from_elb.sh
、および common_functions.sh
が含まれます。これらの 3 つのスクリプトのプレースホルダーを編集して、appspec.yml
ファイルからこれらのスクリプトを参照します。
インプレースデプロイをセットアップするには CodeDeploy Elastic Load Balancing ロードバランサーに登録された Amazon EC2 インスタンスを使用して、以下を実行します。
-
インプレースデプロイで使用するロードバランサーのタイプのサンプルをダウンロードします。
-
ターゲットの各 Amazon EC2 インスタンスに AWS CLI がインストールされていることを確認します。
-
ターゲットの各 Amazon EC2 インスタンスで、IAM インスタンスプロファイルに少なくとも elasticloadbalancing:* および autoscaling:* アクセス許可がアタッチされていることを確認します。
-
アプリケーションのソースコードディレクトリにデプロイライフサイクルイベントのスクリプト (
register_with_elb.sh
、deregister_from_elb.sh
、およびcommon_functions.sh
) を含めます。 -
左
appspec.yml
アプリケーションの改訂については、以下の指示を記載してください。 CodeDeploy を実行するにはregister_with_elb.sh
中のスクリプトApplicationStartイベントとderegister_from_elb.sh
中のスクリプトApplicationStopevent. -
インスタンスが Amazon EC2 Auto Scaling グループの一部である場合、このステップは省略できます。
common_functions.sh
スクリプトで:-
Classic Load Balancer
を使用している場合、 ELB_LIST=""
で Elastic Load Balancing ロードバランサーの名前を指定し、ファイルの他のデプロイ設定に必要な変更を加えます。 -
Application Load Balancer または Network Load Balancer
を使用している場合は、 TARGET_GROUP_LIST=""
で Elastic Load Balancing ターゲットグループ名を指定し、ファイルの他のデプロイ設定に必要な変更を加えます。
-
-
アプリケーションのソースコード
appspec.yml
およびデプロイライフサイクルイベントのスクリプトをアプリケーションリビジョンにバンドルしてから、リビジョンをアップロードします。Amazon EC2 インスタンスにリビジョンをデプロイします。デプロイの間に、デプロイライフサイクルイベントのスクリプトは、Amazon EC2 インスタンスをロードバランサーから登録解除して、接続がドレインするまで待機し、デプロイが完了してから Amazon EC2 インスタンスをロードバランサーに再登録します。