インフラ

VPCエンドポイント作成時に気をつけたいこと ECSからCloudWatchLogsに接続できなくなった

ECS

こんにちは、ちゃりおです。

ECS用のVPCエンドポイント作成時に、設定間違ってCloudWatchLogsに接続できなくなることがありました。
VPCエンドポイントについて理解不足だったため、ブログにします。

Contents

VPCエンドポイントとは

以下の記事にまとめました。

ECS
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が書き換わるので慎重に作業したほうが良さそうです。

Amzonで「AWS」の本を見てみる

楽天で「AWS」の本をみてみる!!

ECS
AWS CDKでECS Fargateに必要なVPCエンドポイントを作成するこんにちは、ちゃりおです。 ECSのデプロイ時のPullはNATGWを通すと通信量が高額になることがあると思います。 VPCエンドポイ...
ECS
ECSのスロットリングをCloudwatch+ContainerInsightで検知するこんにちは、ちゃりおです。 以前、ECSのスロットリング(設定に不備がありタスクが起動せず、startとstopを繰り返す)事象が発生...
ssm
pecoを使ってSSMセッションマネージャー経由のEC2接続を簡単にするこんにちは、ちゃりおです。 SSMセッションマネージャー便利ですよね。 接続にインスタンスIDが必要です。 しかし、インスタンスID...