こんにちは、ちゃりおです。
ECS用のVPCエンドポイント作成時に、設定間違ってCloudWatchLogsに接続できなくなることがありました。
VPCエンドポイントについて理解不足だったため、ブログにします。
VPCエンドポイントとは
以下の記事にまとめました。
AWS CDKでECS Fargateに必要なVPCエンドポイントを作成するこんにちは、ちゃりおです。
ECSのデプロイ時のPullはNATGWを通すと通信量が高額になることがあると思います。
VPCエンドポイ...
ECSからCloudwatchに接続できなくなってデプロイが失敗する
今回発生した事象
VPCエンドポイントをいじっていたら、ECSでCloudWatchLogsへアクセスできなくなってデプロイ失敗しました。
ECSの停止理由は以下。
ResourceInitializationError: failed to validate logger args: create stream has been retried 7 times: failed to create Cloudwatch log stream: RequestError: send request failed caused by: Post https://logs.ap-northeast-1.amazonaws.com/: dial tcp: lookup
どうもCloudWatchLogsへアクセスできていない様子です。
CloudWatchLogsのLogDriverを外すとデプロイ成功しました。
原因
作成したCloudwatchLogsのエンドポイントが存在はするが、サブネットの設定が無くてネットワークインターフェースが存在しない状態になっていました。
その結果、ecsがプライベートDNS「logs.ap-northeast-1.amazonaws.com」にアクセスしてもIPが返ってこなくてアクセスできませんでした。
# デプロイが成功 ネットワークインターフェースが存在する
sh-4.2$ dig logs.ap-northeast-1.amazonaws.com
~~省略~~~
;; ANSWER SECTION:
logs.ap-northeast-1.amazonaws.com. 60 IN A 10.0.223.126
logs.ap-northeast-1.amazonaws.com. 60 IN A 10.0.20.72
~~省略~~~
# デプロイが失敗 ネットワークインターフェースが存在しない
sh-4.2$ dig logs.ap-northeast-1.amazonaws.com
# ;; ANSWER SECTION:が返ってこない
解決策
任意のサブネットを割り当てて直して、解決しました。
まとめ
インターフェースエンドポイントは、ネットワークインターフェースが作成されてプライベートDNSが割り当てられるという流れを理解できていませんでした。
その結果、中途半端な設定状態にしてしまいました。(サブネットだけ外して、エンドポイント消し忘れる。)
インターフェースエンドポイントは、VPC内のプライベートDNSが書き換わるので慎重に作業したほうが良さそうです。
AWS CDKでECS Fargateに必要なVPCエンドポイントを作成するこんにちは、ちゃりおです。
ECSのデプロイ時のPullはNATGWを通すと通信量が高額になることがあると思います。
VPCエンドポイ...
ECSのスロットリングをCloudwatch+ContainerInsightで検知するこんにちは、ちゃりおです。
以前、ECSのスロットリング(設定に不備がありタスクが起動せず、startとstopを繰り返す)事象が発生...
pecoを使ってSSMセッションマネージャー経由のEC2接続を簡単にするこんにちは、ちゃりおです。
SSMセッションマネージャー便利ですよね。
接続にインスタンスIDが必要です。
しかし、インスタンスID...