![見出し画像](https://assets.st-note.com/production/uploads/images/41682219/rectangle_large_type_2_0fd9d7ac43fbea27a70e36dc7a146c0e.jpeg?width=800)
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へ移動します
下記画面から「VPCを作成」をクリックして作成画面へ移動します
作成画面へ遷移したら、VPCの名前とCIDRブロックを設定します
今回は「ecs-demo」「192.168.30.0/24」としておきますが任意のもので大丈夫です
「VPCを作成」をクリックします
作成に成功したら下記のような画面に遷移します
VPC作成はここまでとなります
【手順2】サブネットの作成
次にサブネットを作成します
ダッシュボードからサブネットを選択し、下記画面からサブネット作成を行っていきます
VPCを選択します
プルダウンから先ほど作成したecs-demoのVPCを選択します
名前は「ecs-demo-public-ap-northeast-1a」としました(単にパブリックサブネット=インターネットと接続しますよということを名前で示したかったからです)
アベイラビリティゾーンは「ap-northeast-1a」、CIDRブロックは「192.168.30.0/25」としておきますが任意のもので構いません
設定し終えたら「サブネットを作成」をクリックします
サブネット作成に成功した場合下記画面へ遷移します
サブネット作成はここまでとなります
【手順3】インターネットゲートウェイの作成
次にインターネットゲートウェイを作成していきます
VPCはそのままではインターネット接続できないのでここで設定してあげる必要があります
なのでインターネットゲートウェイは作成するだけでなく、VPCにアタッチすることまで忘れないように行います
名前をつけ、「インターネットゲートウェイの作成」をクリックします
インターネットゲートウェイの作成が完了しました
続いてVPCへのアタッチを行っていきますので「VPCへアタッチ」をクリックします
下記画面へ遷移するので作成したVPCを選択します
「インターネットゲートウェイのアタッチ」をクリックします
インターネットゲートウェイの作成及びVPCへのアタッチはここまでとなります
【手順4】ルートテーブルの作成
手順3でVPCにインターネットゲートウェイをアタッチしました
次にサブネット内の通信がどの宛先のネットワークに対して、どのコンポーネント(EC2とかIGWのことで今回はIGW)に転送されてほしいかを設定するルートテーブルを作成します
「ルートテーブルの作成」をクリックします
名前を「ecs-demo-public-ap-northeast-1a-rt」として、作成したVPCを選択します
名前タグをつけ、「作成」をクリックします
ルートテーブルの一覧画面で作成したルートテーブルが正常に作成されていることを確認できます
作成したルートテーブルを選択し、画面下部に出てくるルートタブを選択します
「ルートの編集」をクリックします
下記画面へ遷移します
現在は「192.168.30.0/24」(VPC内)のルーティング許可(ターゲットがlocal)というデフォルト設定だけが存在しています
VPC内からVPC内への通信は可能という状態です(当然)
「ルートの追加」をクリックし、インターネットゲートウェイを追加します
「0.0.0.0/0」を設定し、0.0.0.0/0のターゲット=インターネットゲートウェイを設定できるようにします
ターゲットのプルダウンでInternet Gatewayを選択します
プルダウンでInternet Gatewayを選択すると作成したインターネットゲートウェイが表示されるのでそれを選択します
「ルートの保存」をクリックして設定した内容を保存します
ルート編集が完了しました
次に編集したルートをサブネットと関連付けていきます
「サブネットの関連付け」タブをクリックします
タブ内の「サブネットの関連付けの編集」をクリックします
作成したサブネットを選択します
「保存」をクリックします
これでパブリックサブネットとすることができました
ルートテーブルの作成及び設定は以上となります
最後に
本記事ではECSでHello Worldするための前準備を行いました
実はECSのクラスタ作成画面からVPCを作成することもできますが、VPCの勉強も兼ねて事前に作ろうとしています
次回はようやくECSを使用する部分になります
この記事が気に入ったらサポートをしてみませんか?