web-dev-qa-db-ja.com

VPCの背後にあるCodeBuildはCloudWatchエンドポイントにアクセスできません

RDSにアクセスできるようにVPCを使用するように設定されたCodeBuildプロジェクトがあります。 com.amazonaws.us-east-1.s3に「VPCエンドポイント」を設定して、CodeBuildがCodePipelineの出力アーティファクトにアクセスできるようにします。

これは正常に機能していますが、「ビルドログ」には何も出力されません。これは、CloudWatchを使用してログを書き込むためと思われ、「フェーズの詳細」の「FINALIZING」でこのエラーが発生していました。

: RequestError: send request failed caused by: Post https://logs.us-east-1.amazonaws.com/: dial tcp 54.239.25.71:443: i/o timeout

CloudWatchエンドポイントはVPCでもサポートされているため、com.amazonaws.us-east-1.logsを追加しましたが、残念ながらこれはログに影響を与えませんでした。

com.amazonaws.us-east-1.monitoringcom.amazonaws.us-east-1.eventsも追加しようとしましたが、それも失敗しました。

「VPCとCloudWatch Logsの間の接続のテスト」に関するAWSドキュメントの指示に従いましたが、奇妙なことに、これはEC2インスタンスから完全に正常に機能しました。 https://docs.aws.Amazon.com/AmazonCloudWatch/ latest/logs/cloudwatch-logs-and-interface-VPC.html#test-VPC-endpoint-for-CloudWatchLogs

VPCエンドポイントを使用してCodeBuildログを機能させることは可能ですか?

2
twiz

前の質問 と同じ理由と同じ答えである可能性が非常に高いです。これは、ネットワークセットアップ、ルート、セキュリティグループ、NACLなどと関係があります。

前の回答 で提案したテストを実行します。CodeBuildコンテナーを実行しているのと同じサブネットで小さなEC2インスタンスを起動し、そこから必要なエンドポイントに到達できるかどうかをテストします。インスタンスがそれらに接続できない場合、CodeBuildコンテナも接続できません。

VPCエンドポイントについて-ルートがあることを確認しますlogseventsおよびmonitoringCodeBuildコンテナを実行しているサブネットに接続されている正しいルートテーブルにありますか?ルートテーブルには、54.239.25.71(またはより大きな一致するCIDR)へのルートが含まれていますか?

それが役に立てば幸い:)

1
MLu