Amazon Elastic Compute Cloud (Amazon EC2) インスタンスへの AWS CodeDeploy デプロイが失敗しました。
簡単な説明
AWS Systems Manager AWSSupport-TroubleshootCodeDeploy オートメーションランブックを使用して、失敗したデプロイをトラブルシューティングできます。ランブックは、以下の理由でデプロイが失敗した場合の特定に役立ちます:
- CodeDeploy エージェントがインスタンスにインストールされていない、または実行されていない。
- 必要なインスタンスプロファイルが見つからない。
- インスタンスプロファイルに正しい Amazon Simple Storage Service (Amazon S3) 権限がない。
- CodeDeploy で管理されているライフサイクルフック (AllowTraffic や BlockTraffic など) の 1 つに問題がある。
- 顧客が管理するライフサイクルフックの 1 つに問題がある。
- デプロイ中に Auto Scaling グループのスケールダウンイベントで問題が発生した。
- AppSpec ファイルが見つからないか、形式が正しくない。
解決方法
重要:CodeDeploy アプリケーションが配置されている AWS リージョンで AWSSupport-TroubleshootCodeDeploy ランブックを使用します。
1. AWS Systems Manager コンソールを開きます。
2.ナビゲーションペインの**[Change Management]** (変更管理) セクションで、[Automation](オートメーション)を選択します。
3. [Execute automation] (オートメーションの実行) を選択します。
4.[Owned by Amazon](Amazon 所有) タブの Automation document 検索ボックスに「AWSSupport-TroubleshootCodeDeploy」と入力します。次に、検索アイコンを選択するか、キーボードの Enter キーを押します。
5. AWSSupport-TroubleshootCodeDeploy カードのラジオボタンを選択します。
**注:**ハイパーリンクされたオートメーション名ではなく、ラジオボタンを選択します。
6.Document details(文書の詳細)セクションで、[次へ]を選択します。
7. [Input parameters] (パラメータ入力) セクションで、[DeploymentId] に失敗したデプロイの ID を入力します。
8.[InstanceID]には、デプロイが失敗したインスタンス ID を入力します。
9. [AutomationAssumeRole] には、Systems Manager Automation がアクションを実行できるようにするロールの Amazon Resource Name (ARN) を入力します。
**注:**AWS Identity and Access Management (IAM) ロールが指定されていない場合、Systems Manager Automation はランブックを実行する IAM ユーザーロールの権限を使用します。Systems Manager オートメーションの assume ロールの作成については、「タスク 1: オートメーション用のサービスロールを作成する」を参照してください。
重要:****AutomationAssumeRoleまたはユーザーロールのいずれかに、以下のアクションの権限が必要です。codedeploy:GetDeployment、codedeploy:GetDeploymentTarget、およびec2:DescribeInstances。
10. [Execute] (実行) を選択します。
ランブックの出力には、デプロイの失敗の原因となった問題を解決するためのトラブルシューティング手順と推奨事項が記載されています。
関連情報
CodeDeployのトラブルシューティング
EC2/オンプレミスデプロイに関する問題のトラブルシューティング