1

1 つのパブリックサブネットを持つ VPC 用の AutoScaling グループのセットアップと AWS Code Deploy のセットアップがあります。VPC インスタンスは、IAM ロールを介してすべての AWS サービスにアクセスできます。

ベース AMI は、CodeDeploy エージェントがインストールされた ubuntu です。スケーリング イベントがトリガーされるたびに、AutoScaling グループがインスタンスを起動し、インスタンスは「ライフサイクル イベントの待機中」になります。

AWS Code Deploy がデプロイをトリガーし、「進行中」状態になり、その状態が 1 時間以上続いた後、失敗します。

その 1 時間以内に Elastic IP を手動で割り当てると、コードのデプロイはすぐに成功します。

CodeDeploy が VPC インスタンスで成功するためには、パブリック/Elastic IP が必要ですか?

パブリック IP を必要とせずに Code Deploy を成功させるにはどうすればよいですか。

4

3 に答える 3

2

インスタンスが公開 IP アドレスなしでインターネットにアクセスできるように、NAT インスタンスをセットアップしましたか? インスタンスがインターネットにアクセスできるかどうかにかかわらず、EIP は重要ではありません。コードは、エンドポイントをポーリングする CodeDeploy エージェントからデプロイされるため、エンドポイントに到達できない場合、コードは機能しません。

于 2015-08-22T20:41:08.847 に答える
0

CodeDeploy エージェントが通信するエンドポイントは、codedeloy.amazonaws.com のようなパブリック ドメイン名ではありません。エージェントは、https://github.com/aws/aws-codedeploy-agent/blob/ によると、「 https://codedeploy-commands.# {cfg.region}.amazonaws.com」であるコマンド コントロール エンドポイントと通信します。 29d4ff4797c544565ccae30fd490aeebc9662a78/vendor/gems/codedeploy-commands-1.0.0/lib/aws/plugins/deploy_control_endpoint.rb#L9 . そのため、プライベート インスタンスがこのコマンド コントロール エンドポイントにアクセスできることを確認する必要があります。

于 2017-10-03T18:23:37.083 に答える