見出し画像

ECS&ECR 第二回(VPC作成〜ルートテーブル作成まで)

前回の記事でDockerイメージをECRにプッシュするところまで行いました

準備は整ったので記事を複数に分けてECSでコンテナを作成・起動してHello Worldするところまで行いたいと思います

本記事ではまず前提条件となるVPC〜ルートテーブル作成のネットワーク周りまでを行います



【前提1】ECS on EC2 / ECS on Fargate違いは?

違いはECSのコンテナ起動モードがEC2かFargateかという部分となります

じゃあそれによってどんな違いが生まれるかというと、

EC2の場合、コンテナ起動したは良いがリソースが余ってしまった場合無駄になってしまうことがあります(つまり余計なリソースにも課金が発生)

加えてコンテナをスケールさせたい場合はその土台となるEC2インスタンスのスケールも考慮しなければならなかったりします

Fargateの場合、上記のような考慮は必要とせず、コンテナのスケールに合わせて土台部分もスケールされるためインスタンス管理が不要となります

(書いてあることを見るとFargateのほうがいいじゃんと思いますが、EC2はSSH接続できてFargateはできないという違いがあります

つまりはトラブルシューティングの調査がしやすいらしいです)


※ECS料金は起動モードによって値段は変わりますが、使ったコンテナ分の従量課金となります。詳しくはAWSの公式を御覧ください



【前提2】Hello Worldするまでの手順

VPCの作成
↓
サブネットの作成
↓
インターネットゲートウェイの作成
↓
ルートテーブルの作成
↓
ECSクラスタの作成
↓
ECSタスク定義の作成
↓
コンテナ起動で動作確認​

本記事ではルートテーブルの作成までを行います

(ネットワーク周りの設定が多いですが、これはインターネット越しにブラウザからHello Worldしたいからです)



【手順1】VPCの作成

まずはVPCの作成を行います

マネージメントコンソールトップ画面からVPCを検索し、下記赤枠のVPCへ移動します

画像1


下記画面から「VPCを作成」をクリックして作成画面へ移動します

画像2


作成画面へ遷移したら、VPCの名前とCIDRブロックを設定します

今回は「ecs-demo」「192.168.30.0/24」としておきますが任意のもので大丈夫です

画像3


「VPCを作成」をクリックします

画像4


作成に成功したら下記のような画面に遷移します

VPC作成はここまでとなります

画像5



【手順2】サブネットの作成

次にサブネットを作成します

ダッシュボードからサブネットを選択し、下記画面からサブネット作成を行っていきます

画像6


VPCを選択します

画像7


プルダウンから先ほど作成したecs-demoのVPCを選択します

画像8


名前は「ecs-demo-public-ap-northeast-1a」としました(単にパブリックサブネット=インターネットと接続しますよということを名前で示したかったからです)

アベイラビリティゾーンは「ap-northeast-1a」、CIDRブロックは「192.168.30.0/25」としておきますが任意のもので構いません

設定し終えたら「サブネットを作成」をクリックします

画像9


サブネット作成に成功した場合下記画面へ遷移します

サブネット作成はここまでとなります

画像10



【手順3】インターネットゲートウェイの作成

次にインターネットゲートウェイを作成していきます

VPCはそのままではインターネット接続できないのでここで設定してあげる必要があります

なのでインターネットゲートウェイは作成するだけでなく、VPCにアタッチすることまで忘れないように行います

画像11


名前をつけ、「インターネットゲートウェイの作成」をクリックします

画像12


インターネットゲートウェイの作成が完了しました

続いてVPCへのアタッチを行っていきますので「VPCへアタッチ」をクリックします

画像13


下記画面へ遷移するので作成したVPCを選択します

画像14

画像15


「インターネットゲートウェイのアタッチ」をクリックします

画像16


インターネットゲートウェイの作成及びVPCへのアタッチはここまでとなります

画像17



【手順4】ルートテーブルの作成

手順3でVPCにインターネットゲートウェイをアタッチしました

次にサブネット内の通信がどの宛先のネットワークに対して、どのコンポーネント(EC2とかIGWのことで今回はIGW)に転送されてほしいかを設定するルートテーブルを作成します


「ルートテーブルの作成」をクリックします

画像18


名前を「ecs-demo-public-ap-northeast-1a-rt」として、作成したVPCを選択します

画像19


名前タグをつけ、「作成」をクリックします

画像20

画像21


ルートテーブルの一覧画面で作成したルートテーブルが正常に作成されていることを確認できます

画像22


作成したルートテーブルを選択し、画面下部に出てくるルートタブを選択します

画像23


「ルートの編集」をクリックします

画像24


下記画面へ遷移します

現在は「192.168.30.0/24」(VPC内)のルーティング許可(ターゲットがlocal)というデフォルト設定だけが存在しています

VPC内からVPC内への通信は可能という状態です(当然)

「ルートの追加」をクリックし、インターネットゲートウェイを追加します

画像25


「0.0.0.0/0」を設定し、0.0.0.0/0のターゲット=インターネットゲートウェイを設定できるようにします

ターゲットのプルダウンでInternet Gatewayを選択します

画像26


プルダウンでInternet Gatewayを選択すると作成したインターネットゲートウェイが表示されるのでそれを選択します

画像27


「ルートの保存」をクリックして設定した内容を保存します

画像28

画像35


ルート編集が完了しました

画像30


次に編集したルートをサブネットと関連付けていきます

「サブネットの関連付け」タブをクリックします

画像31


タブ内の「サブネットの関連付けの編集」をクリックします

画像32


作成したサブネットを選択します

画像33


「保存」をクリックします

画像34


これでパブリックサブネットとすることができました

ルートテーブルの作成及び設定は以上となります

画像35



最後に

本記事ではECSでHello Worldするための前準備を行いました

実はECSのクラスタ作成画面からVPCを作成することもできますが、VPCの勉強も兼ねて事前に作ろうとしています

次回はようやくECSを使用する部分になります

この記事が気に入ったらサポートをしてみませんか?