【ECS&Fargate】AWSでさくっとコンテナ体験!
どもです。LOVELESSの服はとても可愛いので是非チェックして欲しいsaisaiです。
本日はAWSのコンテナサービスであるECS、その中のコンテナオーケストレーションサービスのFargetを使用してさくっとコンテナを立ち上げてブラウザからアクセスしてみたいと思います。
設定は最低限のものですので完全に初心者向けです。僕と同じコンテナ入門者のサービスに触れるきっかけになればと思います。
タスク定義を作成
それでは早速始めましょう。まずはAWSコンソール画面ECSページに移動します。
![](https://graff-it-i.com/wp-content/uploads/2021/02/fdb010249f4741d28d2306d27c2206f0.png)
まずはタスク定義を作成します。タスク定義とは、運用するコンテナの情報を取りまとめたものです。左側の"タスク定義"より作成画面に移行できます。
![](https://graff-it-i.com/wp-content/uploads/2021/02/270cda2895f7e4c37b4a13bb37f3f85c-1024x486.png)
新しいタスク定義を作成していきます。
![](https://graff-it-i.com/wp-content/uploads/2021/02/f72a711fc4bd6d028dbe53f1b24004b6-1024x503.png)
コンテナの運用には"EC2を介しての運用"と"Fargateによる運用"があります。FargateはEC2と違いサーバの管理が必要ないマネージドサービスになります。少し料金は割高ですが、運用が容易なこちらを今回は使用していきます。
![](https://graff-it-i.com/wp-content/uploads/2021/02/4b6a912bb22b25ab6c20fdc7544fc794-1024x682.png)
タスク定義名を入力します。タスクロールはコンテナに他のAWSサービスへのアクセス許可を与えたい場合に使用します。今回は特に選択しないでおきましょう。
![](https://graff-it-i.com/wp-content/uploads/2021/02/0fae1df4ac9780c0e0a2872ec34ade5f.png)
タスクサイズでコンテナに割り当てるリソースを定義します。今回はお試しなので最小サイズに設定しておきましょう。
![](https://graff-it-i.com/wp-content/uploads/2021/02/0fa82c2bb8b0fd8f78f525d7b174ab21.png)
コンテナ名と使用するDockerイメージを選択します。今回はhttpイメージを使用しましょう。
![](https://graff-it-i.com/wp-content/uploads/2021/02/09342c1914486354578ff52e3e4b8e73.png)
あとはデフォルトのまま作成しましょう。
![](https://graff-it-i.com/wp-content/uploads/2021/02/601a3dcd9b39dc4d03bb21fa747822d5.png)
これでタスク定義の作成は完了です。
クラスターの作成
次にクラスターを作成します。クラスターとは、実際にコンテナを稼働させるEC2群です。
画面左側よりクラスターを選択してください。
![](https://graff-it-i.com/wp-content/uploads/2021/02/139a4d3c358be4f8dafd68a2655064d9-1024x610.png)
続いてクラスターの作成をクリック。
![](https://graff-it-i.com/wp-content/uploads/2021/02/ba035bf3954a62be7d37cb4fa2722c4b-1024x441.png)
“ネットワーキングのみ"を選択して次のステップに進みます。Fargateでコンテナを運用する場合はネットワークの定義のみで済むところも運用を簡易化させてくれています。
![](https://graff-it-i.com/wp-content/uploads/2021/02/71a83c3aed6a42fcb9ff6e5121a565c4.png)
それではクラスター作成に必要な情報を定義していきます。まずはクラスター名を入力します。続いてVPCですが、今回は新しく作成しましょう。CIDRやIPはデフォルトのままクラスターを作成してください。
![](https://graff-it-i.com/wp-content/uploads/2021/02/d0836f609410ab5f0692969ecd04ec0d.png)
クラスターの表示から無事クラスターが作成されているかを確認しておいてください。
![](https://graff-it-i.com/wp-content/uploads/2021/02/309b261519c5c41e24453ffc382938b1-1024x640.png)
サービスの作成
次にサービスを作成します。サービスはコンテナ作成する際"どのタスク定義を使用するのか"や"起動しておきたい数はどれくらいか"あるいは"ELBやAutoScalingの設定"などを定義するものです。早速作成していきましょう。"サービス"タブより作成をクリックしてください。
![](https://graff-it-i.com/wp-content/uploads/2021/02/158c7335274b29907558288066811963.png)
サービスの設定をしていきます。起動タイプは"FARGATE"、タスク定義は先ほど作成したものを選択します。同様にクラスターも先ほど作成したものを選択してください。サービス名は任意のものを入力してください。
![](https://graff-it-i.com/wp-content/uploads/2021/02/b4d7f528f28b61f6ce2f5ee21da3c891.png)
デプロイメントタイプは特にどちらでも問題ありませんが、今回はローリングアップデートを選択しておきます。コンテナを新しいバージョンにアップデートする際、どのようにデプロイするかはここで決定します。
![](https://graff-it-i.com/wp-content/uploads/2021/02/d1ec91d7b40eb5b17753fbfd93a2c433.png)
ネットワーク構成には先ほど作成したVPC・サブネットを使用します。セキュリティグループは今回はデフォルトで作成されているものを使用しましょう。パブリックIPは自動で割り当てられるようにしておきます。
![](https://graff-it-i.com/wp-content/uploads/2021/02/59a42924e99c56549fe3a45e20ce706f.png)
AutoScalingを利用してサービスの必要数を指定することもできますが、今回は設定しないでおきます。
![](https://graff-it-i.com/wp-content/uploads/2021/02/ebcc39828cb956b203f368bd1b5a6d90.png)
設定内容が確認できますので、一通り確認しサービスを作成しましょう。
![](https://graff-it-i.com/wp-content/uploads/2021/02/8d02b14a634914b5ddedc08c04e935df.png)
これでサービスが作成されました。
実際にアクセスしてみる
それでは実際にアクセスしてみましょう。タスク名をクリックしてください。
![](https://graff-it-i.com/wp-content/uploads/2021/02/fdb73d044bf7a99ad1241f167e18845b.png)
パブリックIPアドレスが記載されているのでこちらを利用してブラウザからアクセスしてみましょう。
![](https://graff-it-i.com/wp-content/uploads/2021/02/437188a5a0d3b92a52c6e33ca0f76d74.png)
無事デフォルトのページが現れましたら、成功です!
![](https://graff-it-i.com/wp-content/uploads/2021/02/9e03316f68123aca312ccc16928bc5e1.png)
ひとこと
今回はAWSのコンテナ運用サービスであるECS及びFargateを利用し最小限の設定でコンテナを立ち上げてみました。
ここまで一通り触ってきた皆様なら分かるように実際には様々な設定でコンテナを運用することができます。今回使用しなかった設定項目もこれからどんどん使用してよりECR・Fargateの知識を深めていきたいと思います。
ECRを利用したイメージ管理にも挑戦したいですね!
ここまで読んでいただきありがとうございました!
-saisai-
↓本日のオススメ教材