LoginSignup
42
27

More than 5 years have passed since last update.

【備忘録】ECSでデプロイしたコンテナにアクセス出来ない時に見直すこと

Posted at

問題点

ブラウザからECSでデプロイしたコンテナにアクセス出来ない。

ecs35.png

状況

デプロイ前

ECSにコンテナをデプロイする前の設定(原因と思われる箇所のみ抜粋)

タスク定義

  • ホストポートは動的割当に(ホストポートに0を指定)していた

ecs34.png

サービス

ALBを利用するように設定していた

ecs43.png

デプロイ後

コンテナデプロイ後の動作

ターゲットグループ

状態がunhealtyのままとなり、healtyにならない。

ecs30.png

タスク

タスクがSTOPされ、前回のステータスにTask failed ELB health checks in xxxと表示される。

ecs31.png

原因

コンテナのヘルスチェックに失敗するため、ロードバランサーがコンテナにリクエストを送信していなかった。

見直し・解決方法

ロードバランサーのヘルスチェックがコンテナへ到達できるようにALBやEC2の設定を見直す。

Application Load Balancer

  • ALBとコンテナをデプロイするEC2インスタンスが同じVPCに配置されてるか?
  • コンテナをデプロイするEC2インスタンスのアベイラビリティゾーンが含まれているか?

などを確認する。

ecs37.png

ecs36.png

ALBをコンテナをデプロイするEC2インスタンスと異なるVPCに配置していた場合は、VPCやアベイラビリティゾーンの設定に注意してALBを作成する。

ecs32.png

セキュリティグループ

  • EC2インスタンスに割り当てられているセキュリティグループがロードバランサーからのアクセスを許可しているか?

などを確認する。

ecs38.png

ecs40.png

公式ドキュメントのタスク定義パラメーターによると、Docker デーモンは /proc/sys/net/ipv4/ip_local_port_range の一時ポート範囲 (最新の Amazon ECS 最適化 AMI では 32768 ~ 61000) を読み取ろうとします。とあるので、EC2インスタンスに割当られているセキュリティグループにロードバランサーのセキュリティグループからポート32768 - 61000へのアクセスを許可するルールを追加する。

ecs39.png

アクセス確認

ALBやEC2の設定を見直したところ、ヘルスチェックが通るようになり、ブラウザからコンテナへアクセスすることができるようになった。

ecs41.png

ecs42.png

42
27
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
42
27