Slide 1

Slide 1 text

第84回 雲勉 2022/09/15 アイレット株式会社 ECS入門 ~ CloudFront + ELB + ECS FargateでWebサイトを公開 ~

Slide 2

Slide 2 text

0. 自己紹介 2 松田 啓佑 ● 所属 ○ クラウドインテグレーション事業部 構築第2セクション ● 普段の業務 ○ AWSを中心としたインフラ設計/構築/運用 ○ NewRelic/Datadogを利用した監視の設計/実装 ● 好きなAWSサービス ○ ECS ○ StepFunctions

Slide 3

Slide 3 text

本日のゴール 3 - ECSとFargateが何かを理解する - ECSを利用した基本的なシステム構築手法をイメージできるようになる

Slide 4

Slide 4 text

本日のアジェンダ 4 - 0. 自己紹介 - 1. ECS、Fargateとは(19:05-19:25) - 2. ECS Fargate、ELB、CloudFrontを使用してWebサイトを公開する (19:25-50) - 3. 質疑応答 (19:50-20:00)

Slide 5

Slide 5 text

5 1. ECS、Fargateとは

Slide 6

Slide 6 text

1. ECS、Fargateとは 6 ● ECSとは ○ AWSが提供するフルマネージドコンテナオーケストレーションサービス ○ オーケストレーション = 管理

Slide 7

Slide 7 text

1. ECS、Fargateとは 7 オーケストレーションがない世界(管理対象1つ) 管理対象が少なければ問題はないが....

Slide 8

Slide 8 text

1. ECS、Fargateとは 8 オーケストレーションサービスがない世界(管理対象複数) 対象が増えると管理が煩雑になり、オペレーションミス発生などを招いてしまう!

Slide 9

Slide 9 text

1. ECS、Fargateとは 9 オーケストレーションがある世界 面倒な管理作業はオーケストレーションサービスにお任せ!

Slide 10

Slide 10 text

1. ECS、Fargateとは 10 ● ECS(Elastic Container Service)とは ○ AWSが提供するフルマネージドコンテナオーケストレーションサービス ○ オーケストレーション = 管理 ○ コンテナをいい感じに管理してくれるサービス

Slide 11

Slide 11 text

1. ECS、Fargateとは 11 AWSのオーケストレーションサービス ● ECS(Elastic Container Service) ○ 小/中規模ワークロード向け ○ AWS独自ソフトウェアがベース ● EKS(Elastic Kubernetes Service) ○ 大規模ワークロード向け ○ Kubernetesがベース

Slide 12

Slide 12 text

1. ECS、Fargateとは 12 ● ECSとは ○ AWSが提供するフルマネージドコンテナオーケストレーションサービス ○ オーケストレーション = 管理 ○ コンテナをいい感じに管理してくれるサービス ● Fargateとは ○ ECSで利用可能なサーバレスコンテナ実行環境 ○ ECSの基盤となるインスタンスの管理をオフロードする ○ つまり管理者はインスタンスの運用から解放される

Slide 13

Slide 13 text

1. ECS、Fargateとは 13 ● AWSのコンテナサービスはコントロールプレーンとデータプレーンの2つで構成される ● コントロールプレーン = ECS、データプレーン = Fargate ● データプレーンには2種類ある [コントロールプレーン] コンテナを管理する機能 [データプレーン] コンテナが稼働する リソース環境

Slide 14

Slide 14 text

1. ECS、Fargateとは 14 [ データプレーン EC2 ] ● インスタンスを管理する必要がある ● インスタンスを柔軟に設定/調整することができる [ EC2 ] [ Fargate ] [ データプレーン Fargate ] ● インスタンスの管理が不要! ● EC2に比べて若干コストが高い

Slide 15

Slide 15 text

1. ECS、Fargateとは 15 [ データプレーン EC2 ] ● インスタンスを管理する必要がある ● インスタンスを柔軟に設定/調整することができる [ EC2 ] [ Fargate ] [ データプレーン Fargate ] ● インスタンスの管理が不要 ● EC2に比べて若干コストが高い 特別な理由がない限りは Fargateを使うべし!

Slide 16

Slide 16 text

1. ECS、Fargateとは 16 - クラスター - タスク - タスク定義 - サービス ECSの構成要素

Slide 17

Slide 17 text

1. ECS、Fargateとは 17 - クラスター - タスク - タスク定義 - サービス ECSの構成要素 [クラスター] - サービスとタスクを分離するための論理グループ - 実行環境やIAM権限の境界線 クラスター = ただの箱

Slide 18

Slide 18 text

1. ECS、Fargateとは 18 - クラスター - タスク - タスク定義 - サービス ECSの構成要素 [タスク] - アプリケーションの実行単位 - 1つ以上のコンテナから構成される - (同じタスクのコンテナは同じホスト上で稼働する ) タスク = アプリケーションを実行するコンテナ群

Slide 19

Slide 19 text

1. ECS、Fargateとは 19 - クラスター - タスク - タスク定義 - サービス ECSの構成要素 [タスク定義]  - タスクを構成するテンプレート - アプリケーションを構成する 1つ以上のコンテナを定義する - JSON形式で記述される タスク定義 = タスクの金型

Slide 20

Slide 20 text

1. ECS、Fargateとは 20 - クラスター - タスク - タスク定義 - サービス ECSの構成要素 [サービス] - 起動タイプを指定(Fargate or EC2) - タスク実行数を定義 - タスク数を維持 - ELBと連携 サービス = タスクの管理人

Slide 21

Slide 21 text

1. ECS、Fargateとは 21 コンテナの実行方法 ECSにおいてコンテナを実行させる方法は2つ ● タスクから実行 ○ コンテナが終了したら、タスクも終了 ○ バッチ処理などにて利用する ● サービスから実行 ○ 指定したタスク数を維持する ○ ELBなどの他サービスとの連携が可能 ○ Webアプリケーションなどの常時起動処理にて利用する

Slide 22

Slide 22 text

1. ECS、Fargateとは 22 ECSで稼働するアプリケーションの更新方法

Slide 23

Slide 23 text

1. ECS、Fargateとは 23 ECSで稼働するアプリケーションの更新方法 タスク定義の新しいリビジョンを作成して、サービスにてリビジョンの指定を更新する

Slide 24

Slide 24 text

24 2. ECS Fargate、ELB、CloudFrontを使用してWebサイトを公開する

Slide 25

Slide 25 text

2. ECS Fargate、ELB、CloudFrontを使用してWebサイトを公開する 25 ◆実施すること NGINXコンテナをECS Fargate上で稼働させ、CloudfrontとALBを利用して インターネットにWebサーバを公開する! ◆ゴール WebブラウザからCloudfrontのエンドポイントに接続したら、NGINXのWebサイトが ブラウザに表示される!

Slide 26

Slide 26 text

2. ECS Fargate、ELB、CloudFrontを使用してWebサイトを公開する 26 - 0. 事前準備 - 1. 構築 - 1.1 コンテナイメージの作成、ECRへPUSH - 1.2 ALBの作成 - 1.3 クラスターの作成 - 1.4 タスク定義の作成 - 1.5 サービスの作成 - 1.6 Cloudfrontディストリビューションの作成

Slide 27

Slide 27 text

2. ECS Fargate、ELB、CloudFrontを使用してWebサイトを公開する 27 成果物

Slide 28

Slide 28 text

2. ECS Fargate、ELB、CloudFrontを使用してWebサイトを公開する 28 - 0. 事前準備 - 1. 構築 - 1.1 コンテナイメージの作成、ECRへPUSH - 1.2 ALBの作成 - 1.3 クラスターの作成 - 1.4 タスク定義の作成 - 1.5 サービスの作成 - 1.6 Cloudfrontディストリビューションの作成

Slide 29

Slide 29 text

2. ECS Fargate、ELB、CloudFrontを使用してWebサイトを公開する 29 ネットワーク周りのリソースを作成する - VPC - インターネットGW - サブネット(ルートテーブル) - Public x 2 - デフォルトルート : インターネットGW - Private x 2 - デフォルトルート:NAT GW - NAT GW - セキュリティグループ - ALB用 - Ingress : 80 : ALL - Egress : ALL : ALL - ECS用 - Ingress : 80 : from ALB sg - Egress : ALL : ALL

Slide 30

Slide 30 text

2. ECS Fargate、ELB、CloudFrontを使用してWebサイトを公開する 30 - 0. 事前準備 - 1. 構築 - 1.1 コンテナイメージの作成、ECRへPUSH - 1.2 ALBの作成 - 1.3 クラスターの作成 - 1.4 タスク定義の作成 - 1.5 サービスの作成 - 1.6 Cloudfrontディストリビューションの作成

Slide 31

Slide 31 text

31 3. 質疑応答