今日はECSの構築方法を復習しました。
こちらの動画の内容です。良質な動画でありがたいです。
動画の内容を自分なりに書き起こすだけでも少し理解が深まるし、しかも気合いと時間だけ用意してやればやるほど一定のレベルまではスキル上げれるはずと考えてるので、歩みを止めず一歩ずつ頑張ります。
以下にECSの作成方法を箇条書きで書きます。
クラスター作成
ECSのクラスターテンプレートでFargateを選択
クラスター名を入力し、VPCの作成にチェックを入れる(この時点で自分で作ったVPCは指定できない?)
Create clusterをクリックするとクラスターが作成される
タスク作成
ECSのタスク作成画面からFargateを選択
タスク名を入力し、ロールにecsTaskExecutionRoleを選択
タスクサイズでタスクメモリは0.5GB、タスクCPUは0.25vCPUに設定
AddContainerをクリックしてコンテナを追加
コンテナ名を入力し、ECRに置いてあるイメージURLを指定
ポートマッピングはコンテナイメージでEXPOSEしているのと同じポートを指定
今のところポートマッピングの動きがまだよくわかっていませんが、ホストからの通信はここでポートマッピングするポートに来るらしい。
FargateはAWSのマネージドサービスなのでホストにアクセスすることはない、みたいだけどFargateの仕組みなんとなくしかわかってないので勉強して理解していきたい。
作成ボタンをクリックしてタスクを作成する
サービス作成
クラスターの画面のServicesタブからCreateをクリック
サービスの作成画面でLaunch typeのFARGATEを選択し、タスク定義、クラスターを先に作成したものに設定、サービス名は任意、タスク数は冗長化のため2つにする
Deployment typeはローリングアップテートにしてNextをクリック
ネットワークの設定画面で、先に作成していたmyvpcを選択し、プライベートサブネット二つを選択する(ECSコンテナにはALBからのみアクセスできるように後から設定する)
セキュリティグループはデフォルトでhttpがどこからでも(0.0.0.0/0)アクセスできるようになっており、ひとまずそのままでOK(後からALBのみ通すよう変更する)
ヘルスチェックの間隔は30秒にしておき、Load balancingはApplication Load Balancerを選択
この時点でまだALBは作成されていないので、ALB作成ページに移動して作成する
ロードバランサーの種類選択画面で左のApplication Lad Balancerをクリック
ロードバランサー設定画面でNameを入力し(任意)、Schemeをinternet-facing、IP address typeをipv4に設定する(Schemeとip address typeの設定内容についてはよくわかっていないので要勉強)
Avvailability Zonesで先に作成していたmyvpcを選択し、パブリックサブネットを二つ選択する(インターネットからのアクセスはALBに向くようにするため)
Step 3のConfigure Security Groupまで進み、セキュリティグループを設定する
外部からALBにアクセスできるようにするためHTTPで80番ポートを0.0.0.0/0に設定
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の作成完了です。
長くなったので残りは次の記事に書きます。