APIGW & NLB & ECS fargate構築してみた発見メモ(コンソール版)
APIGW & NLB & ECS fargate構築してみた発見メモ(コンソール版):
プライベートサブネットとセキュリティグループはあらかじめ準備しておきます。
(私自身がVPCに疎いので、ここで 1. NATをIGWがルーティングされていないSubnetに配置 2. ECSのセキュリティグループのInboundのソースをセキュリテイグループに指定 というミスをしました)
ポイント: 気が抜けてるとデフォルトのVPCでLB作成してしまいがち。VPC間違えるとECSとつなぎこむ時に作り直しで時間ロスします。
発見。ターゲットグループを構築するときは、IPアドレスをとBeRegisteredにしておける。
こういうちょっとしたテストの時に便利なnginx。
注意点として、デプロイ先のSubnetがOutboundの通信を許可している(Dockerイメージを引っ張れる)必要がある。
(私はここでNat Gatewayをprivate subnetに置いていることに気がつくこともしばしば...)
ポイント:
* 実はサブネットの指定は1つでもOK
* NLB/ALBを採用する場合はサービスディスカバリはONにしなくてOK
ポイント: TaskがいつまでたってもPENDINGに見えるときは、Stoppedのタスクを開いて原因調査すべし。
* よく目にするエラー:
ポイント: この時点でTargetGroupのヘルスチェック結果を確認すること。
よく目にするエラー:
対応:
* まずリクエストが到達しているか?(ECSのサービス起動時に指定したセキュリティグループを確認)
* ECS側はサービスが起動しているか?(CloudWatchのログを確認する)
* TargetGroupのヘルスチェックで指定されているポートはコンテナにマッピングされているか?サービスの利用しているポートはあっているか?
ポイント: VPCリンクを作成する。ログインしているユーザーに複数の権限が必要(VPCエンドポイントの作成更新削除・アクセス許可の変更)
体感で5分以上かかります。
ポイント:APIメソッドには統合タイプと接続タイプの2種類の概念がある。
しかし、コンソールだと本当に分かりづらい....
デプロイをすれば完成です!
API Gateway のプライベート統合のNetwork Load Balancerを設定する
API Gateway プライベート統合で API をビルドする
Steps
- NLBの構築
- ECSのサービスの構築
- API Gatewayの構築
- API Gateway → NLBのつなぎこみ
- 動作確認
0. 下ごしらえ
プライベートサブネットとセキュリティグループはあらかじめ準備しておきます。(私自身がVPCに疎いので、ここで 1. NATをIGWがルーティングされていないSubnetに配置 2. ECSのセキュリティグループのInboundのソースをセキュリテイグループに指定 というミスをしました)
1. NLBの構築
ポイント: 気が抜けてるとデフォルトのVPCでLB作成してしまいがち。VPC間違えるとECSとつなぎこむ時に作り直しで時間ロスします。発見。ターゲットグループを構築するときは、IPアドレスをとBeRegisteredにしておける。
2. ECSのサービスの構築
こういうちょっとしたテストの時に便利なnginx。注意点として、デプロイ先のSubnetがOutboundの通信を許可している(Dockerイメージを引っ張れる)必要がある。
(私はここでNat Gatewayをprivate subnetに置いていることに気がつくこともしばしば...)
ポイント:
* 実はサブネットの指定は1つでもOK
* NLB/ALBを採用する場合はサービスディスカバリはONにしなくてOK
ポイント: TaskがいつまでたってもPENDINGに見えるときは、Stoppedのタスクを開いて原因調査すべし。
* よく目にするエラー:
CannotPullContainerError: API error (500): Get https://111122223333.dkr.ecr.us-east-1.amazonaws.com/v2/: net/http: request canceled while waiting for connection"
ポイント: この時点でTargetGroupのヘルスチェック結果を確認すること。
よく目にするエラー:
None of these Availability Zones contains a healthy target. Requests are being routed to all targets.
対応:
* まずリクエストが到達しているか?(ECSのサービス起動時に指定したセキュリティグループを確認)
* ECS側はサービスが起動しているか?(CloudWatchのログを確認する)
* TargetGroupのヘルスチェックで指定されているポートはコンテナにマッピングされているか?サービスの利用しているポートはあっているか?
3. API Gatewayの構築
ポイント: VPCリンクを作成する。ログインしているユーザーに複数の権限が必要(VPCエンドポイントの作成更新削除・アクセス許可の変更)体感で5分以上かかります。
ポイント:APIメソッドには統合タイプと接続タイプの2種類の概念がある。
しかし、コンソールだと本当に分かりづらい....
デプロイをすれば完成です!
参考資料
API Gateway のプライベート統合のNetwork Load Balancerを設定するAPI Gateway プライベート統合で API をビルドする
コメント
コメントを投稿