Elastic Beanstalk 環境で異常な Amazon EC2 インスタンスの置き換えを自動化する方法を教えてください。
最終更新日: 2021 年 4 月 22 日
AWS Elastic Beanstalk 環境で異常な Amazon Elastic Compute Cloud (Amazon EC2) インスタンスの置き換えを自動化したいと考えています。
簡単な説明
デフォルトでは、Auto Scaling グループのヘルスチェック設定は EC2 インスタンスのステータスチェックを実行する EC2 タイプとして設定されます。異常な EC2 インスタンスの置き換えを自動化するには、設定ファイルを使用する必要があります。設定ファイルによって、インスタンスの Auto Scaling グループのヘルスチェックのタイプが EC2 から ELB に変更されます。
以下に留意してください。
- ステータスチェックは EC2 インスタンスの状態のみを対象としています。アプリケーション、サーバー、またはインスタンスで実行されている Docker コンテナの状態は対象外です。
- アプリケーションがクラッシュした場合、ロードバランサーはターゲットから異常なインスタンスを削除します。ただし、Auto Scaling グループは、ロードバランサーによってマークされた異常なインスタンスを自動的に置き換えることはありません。
- ヘルスチェックのタイプを EC2 から ELB に変更することで、Auto Scaling グループで異常なインスタンスを自動的に置き換えることができます。ヘルスチェックが失敗すると、異常なインスタンスが置き換えられます。
注意: .ebextensions の作成とデプロイの詳細については、.ebextensions を使用して Elastic Beanstalk 環境をカスタマイズする方法を教えてくださいをご参照ください。
解決方法
次のステップは、ロードバランサーを使用する環境にのみ適用されます。
設定ファイルを使用して、インスタンスの Auto Scaling グループのヘルスチェックタイプを ELB に変更する
1. ソースバンドルのルートディレクトリに .ebextensions という名前のフォルダを作成します。
2. .config ファイルと呼ばれるリソースベースの .ebextension を作成します。例:
Example .ebextensions/autoscaling.config
===============================================
Resources:
AWSEBAutoScalingGroup:
Type: AWS::AutoScaling::AutoScalingGroup
Properties:
HealthCheckType: ELB
HealthCheckGracePeriod: 300
===============================================
注意: HealthCheckGracePeriod とは、Amazon EC2 Auto Scaling が稼働状態になっている EC2 インスタンスのヘルスステータスをチェックするまでの待機時間を指します。
3. 更新されたアプリケーションソースバンドルの zip ファイルを作成し、アプリケーションをデプロイします。
注意: eb deploy を使用してアプリケーションをデプロイすることもできます。
Auto Scaling グループのヘルスチェックタイプが ELB に設定されていることを確認します。
1. Amazon EC2 コンソールを開きます。
2. ナビゲーションペインで、[Auto Scaling グループ] を選択します。
3. [フィルター] で、Auto Scaling グループの環境 ID を入力し、結果一覧から [Auto Scaling グループ] を選択します。
4. Auto Scaling グループの [詳細] タブで、ヘルスチェックタイプが ELB に設定されていることを確認します。