Upgrade to Pro — share decks privately, control downloads, hide ads and more …

第84回 雲勉【オンライン:初心者向け】ECS入門 ~ CloudFront + ELB + ECS FargateでWebサイトを公開 ~

Y.Sumikura
September 16, 2022

第84回 雲勉【オンライン:初心者向け】ECS入門 ~ CloudFront + ELB + ECS FargateでWebサイトを公開 ~

Y.Sumikura

September 16, 2022
Tweet

More Decks by Y.Sumikura

Other Decks in Technology

Transcript

  1. 0. 自己紹介 2 松田 啓佑 • 所属 ◦ クラウドインテグレーション事業部 構築第2セクション

    • 普段の業務 ◦ AWSを中心としたインフラ設計/構築/運用 ◦ NewRelic/Datadogを利用した監視の設計/実装 • 好きなAWSサービス ◦ ECS ◦ StepFunctions
  2. 本日のアジェンダ 4 - 0. 自己紹介 - 1. ECS、Fargateとは(19:05-19:25) - 2.

    ECS Fargate、ELB、CloudFrontを使用してWebサイトを公開する (19:25-50) - 3. 質疑応答 (19:50-20:00)
  3. 1. ECS、Fargateとは 11 AWSのオーケストレーションサービス • ECS(Elastic Container Service) ◦ 小/中規模ワークロード向け

    ◦ AWS独自ソフトウェアがベース • EKS(Elastic Kubernetes Service) ◦ 大規模ワークロード向け ◦ Kubernetesがベース
  4. 1. ECS、Fargateとは 12 • ECSとは ◦ AWSが提供するフルマネージドコンテナオーケストレーションサービス ◦ オーケストレーション =

    管理 ◦ コンテナをいい感じに管理してくれるサービス • Fargateとは ◦ ECSで利用可能なサーバレスコンテナ実行環境 ◦ ECSの基盤となるインスタンスの管理をオフロードする ◦ つまり管理者はインスタンスの運用から解放される
  5. 1. ECS、Fargateとは 13 • AWSのコンテナサービスはコントロールプレーンとデータプレーンの2つで構成される • コントロールプレーン = ECS、データプレーン =

    Fargate • データプレーンには2種類ある [コントロールプレーン] コンテナを管理する機能 [データプレーン] コンテナが稼働する リソース環境
  6. 1. ECS、Fargateとは 14 [ データプレーン EC2 ] • インスタンスを管理する必要がある •

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

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

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

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

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

    サービス ECSの構成要素 [サービス] - 起動タイプを指定(Fargate or EC2) - タスク実行数を定義 - タスク数を維持 - ELBと連携 サービス = タスクの管理人
  12. 1. ECS、Fargateとは 21 コンテナの実行方法 ECSにおいてコンテナを実行させる方法は2つ • タスクから実行 ◦ コンテナが終了したら、タスクも終了 ◦

    バッチ処理などにて利用する • サービスから実行 ◦ 指定したタスク数を維持する ◦ ELBなどの他サービスとの連携が可能 ◦ Webアプリケーションなどの常時起動処理にて利用する
  13. 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ディストリビューションの作成
  14. 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ディストリビューションの作成
  15. 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
  16. 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ディストリビューションの作成