Amazon EC2 インスタンスで失敗した CodeDeploy デプロイのトラブルシューティングを行うにはどうすればよいですか?

最終更新日: 2021 年 9 月 8 日

Amazon Elastic Compute Cloud (Amazon EC2) インスタンスで AWS CodeDeploy のデプロイが失敗しました。

簡単な説明

AWS Systems Manager AWSSupport-TroubleshootCodeDeploy Automation ランブックを使用して、失敗したデプロイのトラブルシューティングを行うことができます。ランブックは、次の理由でいつデプロイが失敗したかを特定するのに役立ちます。

  • CodeDeploy エージェントがインストールされていないか、インスタンスで実行されていません。
  • 必要なインスタンスプロファイルがありません。
  • インスタンスプロファイルに、適切な Amazon Simple Storage Service (Amazon S3) のアクセス許可がありません。
  • CodeDeploy によって管理されるライフサイクルフック (AllowTrafficBlockTraffic など) の 1 つに問題があります。
  • カスタマーマネージドライフサイクルフックの 1 つに問題があります。
  • デプロイ中に Auto Scaling グループのスケールダウンイベントで問題が発生しました。
  • AppSpec ファイルが見つからないか、正しくフォーマットされていません。

解決方法

重要: AWSSupport-TroubleshootCodeDeploy ランブックは、CodeDeploy アプリケーションが配置されているのと同じ AWS リージョンで使用してください。

1.    AWS Systems Manager コンソールを開きます。

2.    ナビゲーションペインの [変更管理] セクションで、[オートメーション] を選択します。

3.    [オートメーションの実行] を選択します。

4.    [Amazon が所有する] タブの [オートメーションドキュメント] 検索ボックスに、「AWSSupport-TroubleshootCodeDeploy」と入力します。次に、検索アイコンを選択するか、キーボードの Enter キーを押します。

5.    AWSSupport-TroubleshootCodeDeploy カードのラジオボタンを選択します。

注: ハイパーリンクが設定されたオートメーション名ではなく、ラジオボタンを選択していることを確認してください。

6.    [ドキュメントの詳細] セクションで、[次へ] を選択します。

7.    [入力パラメータ] セクションの [deploymentID] に、失敗したデプロイ ID を入力します。

8.    InstanceID では、デプロイが失敗したインスタンス ID を入力します。

9.    [AutomationAssumeRole] に、Systems Manager Automation によるアクションの実行を許可するロールの Amazon リソースネーム (ARN) を入力します。

注: AWS Identity and Access Management (IAM) ロールを指定しない場合、Systems Manager Automation は、ランブックを実行する IAM ユーザーロールのアクセス許可を使用します。Systems Manager Automation の引き受けロールの作成の詳細については、「タスク 1: Automation のサービスロールを作成する」を参照してください。

重要: AutomationAssumeRole またはユーザーロールのいずれかに、以下のアクションに対するアクセス許可がある必要があります: codedeploy:GetDeploymentcodedeploy:GetDeploymentTarget、および ec2:DescribeInstances

10.    [実行] を選択します。

ランブックの出力には、デプロイの失敗の原因となった問題の解決方法に関するトラブルシューティング手順と推奨事項が示されています。