LoginSignup
17
11

More than 3 years have passed since last update.

[AWS] Amazon ECS(EC2タイプ)のちょっと長めのチュートリアル(第2回)

Last updated at Posted at 2019-08-27

※本記事は Amazon ECS(EC2タイプ)のちょっと長めのチュートリアル(第1回) の続きです。

前回は、ECRにイメージをプッシュするところまで行いました。今回はECSクラスターの作成までを行います。

注:今回からAWS利用料が発生します。このチュートリアルでは ELB 1台 と、t3.microのEC2 2台 を作成しています。

2) ECSクラスター作成の前に・・・VPC等の作成

ECSクラスターとは、ECSにおけるコンテナの実行環境( ≒ ここでは自分で管理する複数のEC2インスタンス)です。

クラスターだけの状態は簡単な方の図ではこれだけなのですが、
image.png

実際の構成図の方ではこうなります。コンテナが動いていないだけで、実行環境としてはほぼ完成となります。この図では、セキュリティグループとロールも追記しています。
image.png

ここではクラスター作成の前に、VPC、セキュリティグループ、ロール、キーペア、ELB(結構数があります・・・)を作成しておきます。
中にはポータルのECS新規作成ウィザード中に作成可能なものもあるのですが、UIがちょっと分かりづらいのと、初見では何が作成されているか分かりづらいところがあるので手動で作成します。

VPC作成

ECSクラスターを実行するVPCを作成します。ELBとEC2を作成できるだけのIPアドレスが必要ですが、他には特別な手順はありません。ここでは /26 アドレスを割り当て、アベイラビリティゾーン(AZ)を2つ使用します。

VPC作成:

image.png

サブネット(AZ 1つ目)作成:作成したVPC内に /27アドレスで作成

001.png

サブネット(AZ 2つ目)作成:1つ目とは別のAZを指定し、/27アドレスで作成

002.png

インターネットゲートウェイ作成:

image.png

作成したインターネットゲートウェイをVPCにアタッチ:

003.png

ルートテーブルにインターネットゲートウェイ追加:

004.png

セキュリティグループ作成

セキュリティグループは、ELB用のものと、インスタンス用のものが2つ必要です。
今回は、第1回で作成したテスト用のnginxコンテナを使うので、アクセス元は狭く設定しておきます。

ELB用セキュリティグループ :マイIPからのTCP 8080のみ許可

005.png

インスタンス用セキュリティグループ:マイIPからSSH接続と、先ほど作成したELB用セキュリティグループからのTCP 8080のみ許可

006.png

ロール作成

ロールも、インスタンス用のものと、タスク用のもので2つ必要です。
実運用ではコンテナに必要な機能(通信)によって設定する必要がありますが、ここではそれぞれ用意されているデフォルトポリシをアタッチします。

インスタンス用ロール:ロールの作成から、AWSサービス → Elasitc Container Serviceを選択します。

image.png

画面下に進み、ユースケースの選択で"EC2 Role for Elasitc Container Service"を選択して次のステップに進みます。

image.png

デフォルトで "AmazonEC2ContainerServiceforEC2Role" が選択されているので、次に進みます。

01.png

ウィザードの最後に、ロール名を入力して作成します。

02.png

2つめの タスク用ロール も同様に作成します。ウィザード中、ユースケースの選択で"Elasitc Container Service Task"を選択して次のステップに進みます。

image.png

ポリシの選択画面で、"AmazonECSTaskExecutionRolePolicy" を選択して次に進みます。

image.png

後はウィザードの最後に、ロール名を入力して完了となります。

image.png

キーペア作成

EC2インスタンスの作成に必要なキーペアを作成しておきます。

007.png

ELB作成

手動作成の最後はELBの作成です。ELBの作成メニューで、Application Load Balancerを選択します。

03.png

プロトコル/ポートにHTTP 8080を指定し、今回作成したVPCを指定。

008.png

セキュリティグループは、先に作成した ELB用のセキュリティグループ を選択します。

009.png

ターゲットの種類でIPを選択し、プロトコル/ポートにHTTP 8080を指定。

06.png

ターゲットはECSタスクになるので、手順5:ターゲットの登録では何も登録せず先に進みます。

image.png

後は確認画面で作成を押して完了です。

010.png

3) ECSクラスター作成

ようやく、ECSクラスター作成に進みます。クラスターの新規作成メニューで「EC2 Linux+ネットワーキングを作成」を選択します。

image.png

クラスターの設定で必要な情報を入力します。
- クラスター名 : 任意
- プロビジョニングモデル : オンデマンドインスタンス
- EC2インスタンスタイプ : t3.micro
- インスタンス数 : 2
- EC2 Ami Id : Amazon Linux 2
- EBSストレージ : 22
- キーペア : 事前に作成したキーペアを指定
- VPCとサブネット : 事前に作成したVPCとサブネット(2つ)を指定
- セキュリティグループ : 事前に作成した インスタンス用セキュリティグループ を指定
- コンテナインスタンス IAM ロール : 事前に作成した インスタンス用ロール を指定

011.png
012.png

「作成」ボタンを押すと作成されます。

確認

作成後、「クラスターの表示」を選択します。

013.png

表示されたクラスターの情報で「ECSインスタンス」タブを選択すると、インスタンスが作成されたことが確認できます。

014.png

第3回でコンテナ起動しますが、それまではインスタンス費用がからないよう一時的に台数を0にしておきます。「ECSインスタンスのスケール」ボタンを押し、必要数を0に変更します。
015.png

第2回のまとめ

図は再掲となりますが、今回作成したものを構成図に追記するとこのようになります。ECSの新規作成ウィザードではAuto Scaling Groupのところが作成され、周辺部分を手動で作成しました。
image.png

コンソールのAuto Scaling Groupのメニューを見ると、通常のASGと同様に作成されたもの(指定した名称の前後に文字列が付加されています)が確認可能です。

016.png

次回はいよいよ、サービスとタスクを作成してコンテナを起動してみます。

Link

参考資料

17
11
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
11