【学習記録】ECS+ALB構築

今日はECSの構築方法を復習しました。
こちらの動画の内容です。良質な動画でありがたいです。

www.youtube.com

動画の内容を自分なりに書き起こすだけでも少し理解が深まるし、しかも気合いと時間だけ用意してやればやるほど一定のレベルまではスキル上げれるはずと考えてるので、歩みを止めず一歩ずつ頑張ります。

以下にECSの作成方法を箇条書きで書きます。

クラスター作成

ECSのクラスターテンプレートでFargateを選択 f:id:JunpeiNakasone:20210127063447p:plain

クラスター名を入力し、VPCの作成にチェックを入れる(この時点で自分で作ったVPCは指定できない?) f:id:JunpeiNakasone:20210127064017p:plain

Create clusterをクリックするとクラスターが作成される f:id:JunpeiNakasone:20210127064037p:plain

タスク作成

ECSのタスク作成画面からFargateを選択
f:id:JunpeiNakasone:20210127064201p:plain

タスク名を入力し、ロールにecsTaskExecutionRoleを選択 f:id:JunpeiNakasone:20210127064420p:plain

タスクサイズでタスクメモリは0.5GB、タスクCPUは0.25vCPUに設定 f:id:JunpeiNakasone:20210127064645p:plain

AddContainerをクリックしてコンテナを追加
コンテナ名を入力し、ECRに置いてあるイメージURLを指定 f:id:JunpeiNakasone:20210127065222p:plain ポートマッピングはコンテナイメージでEXPOSEしているのと同じポートを指定

今のところポートマッピングの動きがまだよくわかっていませんが、ホストからの通信はここでポートマッピングするポートに来るらしい。
FargateはAWSのマネージドサービスなのでホストにアクセスすることはない、みたいだけどFargateの仕組みなんとなくしかわかってないので勉強して理解していきたい。

作成ボタンをクリックしてタスクを作成する
f:id:JunpeiNakasone:20210127065814p:plain

サービス作成

クラスターの画面のServicesタブからCreateをクリック
f:id:JunpeiNakasone:20210127223322p:plain

サービスの作成画面でLaunch typeのFARGATEを選択し、タスク定義、クラスターを先に作成したものに設定、サービス名は任意、タスク数は冗長化のため2つにする
f:id:JunpeiNakasone:20210127223633p:plain

Deployment typeはローリングアップテートにしてNextをクリック
f:id:JunpeiNakasone:20210127223813p:plain

ネットワークの設定画面で、先に作成していたmyvpcを選択し、プライベートサブネット二つを選択する(ECSコンテナにはALBからのみアクセスできるように後から設定する)

セキュリティグループはデフォルトでhttpがどこからでも(0.0.0.0/0)アクセスできるようになっており、ひとまずそのままでOK(後からALBのみ通すよう変更する)

ヘルスチェックの間隔は30秒にしておき、Load balancingはApplication Load Balancerを選択
f:id:JunpeiNakasone:20210127224432p:plain

この時点でまだALBは作成されていないので、ALB作成ページに移動して作成する

ロードバランサーの種類選択画面で左のApplication Lad Balancerをクリック
f:id:JunpeiNakasone:20210127224652p:plain

ロードバランサー設定画面でNameを入力し(任意)、Schemeをinternet-facing、IP address typeをipv4に設定する(Schemeとip address typeの設定内容についてはよくわかっていないので要勉強)

f:id:JunpeiNakasone:20210127225246p:plain

Avvailability Zonesで先に作成していたmyvpcを選択し、パブリックサブネットを二つ選択する(インターネットからのアクセスはALBに向くようにするため)
f:id:JunpeiNakasone:20210127225354p:plain

Step 3のConfigure Security Groupまで進み、セキュリティグループを設定する
外部からALBにアクセスできるようにするためHTTPで80番ポートを0.0.0.0/0に設定
f:id:JunpeiNakasone:20210127225949p:plain

Step4 Configure RoutingでALBからの通信のルーティングを設定する 新しいターゲットグループを作成し、Nameは任意、Target typeはIP、ProtocolはHTTP、Health CheckはHTTPで/healthに送るように設定。

Target typeがまだよくわかっていませんが、IPにするのはFARGATEで割り振られているIPと接続できるようにするため?要勉強です。

次のRegister Targetsは空のままでOK(ECSはタスクに動的にIPアドレスを割り振るため?)

設定に問題がないことを確認してCreateでALBの作成完了です。
f:id:JunpeiNakasone:20210127231130p:plain

f:id:JunpeiNakasone:20210127231200p:plain

長くなったので残りは次の記事に書きます。