Slide 1

Slide 1 text

今からでも遅くない。 ECSで始めるコンテナ運用 2020/07/03 Shimakawa.Jukiya

Slide 2

Slide 2 text

2 今日のメインで出てくる話 Amazon Elastic Container Service (Amazon ECS) Amazon ECR AWS Fargate

Slide 3

Slide 3 text

3 コンテナ???

Slide 4

Slide 4 text

4 このセッションのターゲット - コンテナがなんとなくいいものとしか思っていない - コンテナやってみたいけど何から始めていいかわからない - 難しい話はおいておいてまずはコンテナを体験したい

Slide 5

Slide 5 text

5 このセッションでお伝えしたいこと まずはECSでコンテナを体験してほしい Amazon Elastic Container Service (Amazon ECS)

Slide 6

Slide 6 text

6 お話すること - コンテナを使う理由 - コンテナの動かし方 - ECSでコンテナを動かす - ECSの運用を考える

Slide 7

Slide 7 text

7 - コンテナを使う理由 - コンテナの動かし方 - ECSでコンテナを動かす(ECSとは?) - ECSの運用を考える

Slide 8

Slide 8 text

8 そもそもコンテナとは サーバー ホストOS 仮想化ソフトウェア ゲスト OS ゲスト OS ゲスト OS アプリC アプリB アプリA 仮想マシン(VM) サーバー ホストOS コンテナ Runtime アプリC アプリB アプリA コンテナ 仮想マシン(VM)とコンテナを比較してみる

Slide 9

Slide 9 text

9 コンテナを使う理由 - 場所を問わずに実行したい - どこで実行しても同じ環境ができる - OSレベルで完全分離 コンテナイメージ

Slide 10

Slide 10 text

10 - コンテナを使う理由 - コンテナの動かし方 - ECSでコンテナを動かす(ECSとは?) - ECSの運用を考える

Slide 11

Slide 11 text

11 コンテナの動かし方(Dockerの場合) - コンテナの実行方法 サーバ コンテナイメージ イメージレジストリ (Docker Hub等) ダウンロード コンテナ

Slide 12

Slide 12 text

12 コンテナの動かし方(Dockerの場合) - アプリも一緒にインストールしておきたい。 サーバ コンテナビルド イメージレジストリ (Docker Hub等) ubuntu を ダウンロード コンテナ コンテナイメージ DockerFileがある ディレクトリで実行

Slide 13

Slide 13 text

13 コンテナへの繋げ方(Dockerの場合) - コンテナ名を指定してコンテナの中に入ることができる (あまりやるべきではない)

Slide 14

Slide 14 text

14 - コンテナを使う理由 - コンテナの動かし方 - ECSでコンテナを動かす - ECSの運用を考える

Slide 15

Slide 15 text

15 ECSとは? Amazon Elastic Container Service (Amazon ECS)

Slide 16

Slide 16 text

16 ECSとは Amazon Elastic Container Service (Amazon ECS) https://aws.amazon.com/jp/ecs/ - AWSのコンテナオーケストレーションサービス - 数千個のコンテナでも迅速に起動 - 負荷に応じた自動スケーリング - 各AWSサービスとの連携 - 高い可用性

Slide 17

Slide 17 text

17 ECSとは Amazon Elastic Container Service (Amazon ECS) https://aws.amazon.com/jp/ecs/ - AWSのコンテナオーケストレーションサービス - 数千個のコンテナでも迅速に起動 - 負荷に応じた自動スケーリング - 各AWSサービスとの連携 - 高い可用性 Dockerコマンドの細かいオプションを知らなくても大丈夫。 ECSが解決してくれる。

Slide 18

Slide 18 text

18 ECSで登場する用語、サービス - AWSのコンテナイメージレジストリ - コンテナに関する情報を記載したもの(複数のコンテナの指定も可能) - dockerコマンドで行う操作をGUIでできる。 - タスク定義に基づいて起動されたタスク群のこと - 維持するタスクの数、起動タイプ(EC2/Fargate)、各AWSサービスとの 連携を設定したもの - 環境の境目、タスクの実行を制御 Amazon Elastic Container Registry タスク定義 サービス タスク クラスター

Slide 19

Slide 19 text

19 ECSで登場する用語、サービス Amazon Elastic Container Registry タスク定義 サービス クラスター - イメージの場所 - ネットワーク設定 - CPU/Memory - IAMロール - ログドライバ - などなど 参照 - タスクの起動数 - ELBへの登録 - 起動タイプの選択 - などなど EC2 / Fargate タスク(群) コンテナ

Slide 20

Slide 20 text

20 起動タイプの違い(EC2とFargate) Amazon EC2 AWS Fargate - ECS用に事前構成されたAMIからEC2を起動する - ECSコンテナエージェントが中で動いていて、エージェント がECSと通信してコンテナを管理する。 - AWSマネージドサービス - サーバの管理不要 - コンテナの管理に集中できる

Slide 21

Slide 21 text

21 EC2起動タイプを使用する際の考慮点 Amazon EC2 - EC2とコンテナ両方のスケーリングを意識する必要がある。 - AutoScalingとサービスの管理 - ※Capacity Providerで解決できる場合がある。 - OS、ECSコンテナエージェント等の更新作業 - リリース時にサーバ停止のタイミングを考慮する必要がある。

Slide 22

Slide 22 text

22 Fargate起動タイプを使用する際の考慮点 - 一時ローカルボリュームが約20GB制限 - (プラットフォームバージョン 1.4の場合) - EC2に比べざっくり20%ほどコストが高い - (リソースの単純比較) - Fargate Spotの利用でコストは下げられる AWS Fargate https://dev.classmethod.jp/articles/compare-fees-for-fargat- and-ec2-2019-1/

Slide 23

Slide 23 text

23 ECSを体験するなら 今回はFargateでECSを体験 AWS Fargate

Slide 24

Slide 24 text

24 作成イメージ(既存イメージを使用)

Slide 25

Slide 25 text

25 作成イメージ(自分で作成したイメージを使用)

Slide 26

Slide 26 text

26 - コンテナを使う理由 - コンテナの動かし方 - ECSでコンテナを動かす - ECSの運用を考える

Slide 27

Slide 27 text

27 ECS運用の第一歩 -まずはDockerfileをgitでバージョン管理する -docker build~ECRまでのプッシュをCodeBuildでやって みる

Slide 28

Slide 28 text

28 ECS運用の第一歩 -まずはDockerfileをgitでバージョン管理する -docker build~ECRまでのプッシュをCodeBuildでやって みる https://dev.classmethod.jp/articles/20170225-codebuild-docker/

Slide 29

Slide 29 text

29 ほかにも!

Slide 30

Slide 30 text

30 まとめ -ECSはコンテナ入門ツールとして使える - いきなり運用ではなくまずは触って感覚を掴んでみる - そのあと→現サービスに適用できるか考えてみる

Slide 31

Slide 31 text

No content