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

今からでも遅くない。ECSで始めるコンテナ運用 #devio2020

今からでも遅くない。ECSで始めるコンテナ運用 #devio2020

コンテナをまだ使ったことない方に向けて、ECSを活用したコンテナの始め方、運用についてお伝えいたします。

■Developers.IO 2020 CONNECTのイベントページ
https://classmethod.jp/m/devio_2020_connect/

Fad0d157244126a95094c26f2857d164?s=128

jukiya330

July 03, 2020
Tweet

Transcript

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

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

    AWS Fargate
  3. 3 コンテナ???

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

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

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

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

  8. 8 そもそもコンテナとは サーバー ホストOS 仮想化ソフトウェア ゲスト OS ゲスト OS ゲスト

    OS アプリC アプリB アプリA 仮想マシン(VM) サーバー ホストOS コンテナ Runtime アプリC アプリB アプリA コンテナ 仮想マシン(VM)とコンテナを比較してみる
  9. 9 コンテナを使う理由 - 場所を問わずに実行したい - どこで実行しても同じ環境ができる - OSレベルで完全分離 コンテナイメージ

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

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

    コンテナ
  12. 12 コンテナの動かし方(Dockerの場合) - アプリも一緒にインストールしておきたい。 サーバ コンテナビルド イメージレジストリ (Docker Hub等) ubuntu

    を ダウンロード コンテナ コンテナイメージ DockerFileがある ディレクトリで実行
  13. 13 コンテナへの繋げ方(Dockerの場合) - コンテナ名を指定してコンテナの中に入ることができる (あまりやるべきではない)

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

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

  16. 16 ECSとは Amazon Elastic Container Service (Amazon ECS) https://aws.amazon.com/jp/ecs/ -

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

    AWSのコンテナオーケストレーションサービス - 数千個のコンテナでも迅速に起動 - 負荷に応じた自動スケーリング - 各AWSサービスとの連携 - 高い可用性 Dockerコマンドの細かいオプションを知らなくても大丈夫。 ECSが解決してくれる。
  18. 18 ECSで登場する用語、サービス - AWSのコンテナイメージレジストリ - コンテナに関する情報を記載したもの(複数のコンテナの指定も可能) - dockerコマンドで行う操作をGUIでできる。 - タスク定義に基づいて起動されたタスク群のこと

    - 維持するタスクの数、起動タイプ(EC2/Fargate)、各AWSサービスとの 連携を設定したもの - 環境の境目、タスクの実行を制御 Amazon Elastic Container Registry タスク定義 サービス タスク クラスター
  19. 19 ECSで登場する用語、サービス Amazon Elastic Container Registry タスク定義 サービス クラスター -

    イメージの場所 - ネットワーク設定 - CPU/Memory - IAMロール - ログドライバ - などなど 参照 - タスクの起動数 - ELBへの登録 - 起動タイプの選択 - などなど EC2 / Fargate タスク(群) コンテナ
  20. 20 起動タイプの違い(EC2とFargate) Amazon EC2 AWS Fargate - ECS用に事前構成されたAMIからEC2を起動する - ECSコンテナエージェントが中で動いていて、エージェント

    がECSと通信してコンテナを管理する。 - AWSマネージドサービス - サーバの管理不要 - コンテナの管理に集中できる
  21. 21 EC2起動タイプを使用する際の考慮点 Amazon EC2 - EC2とコンテナ両方のスケーリングを意識する必要がある。 - AutoScalingとサービスの管理 - ※Capacity

    Providerで解決できる場合がある。 - OS、ECSコンテナエージェント等の更新作業 - リリース時にサーバ停止のタイミングを考慮する必要がある。
  22. 22 Fargate起動タイプを使用する際の考慮点 - 一時ローカルボリュームが約20GB制限 - (プラットフォームバージョン 1.4の場合) - EC2に比べざっくり20%ほどコストが高い -

    (リソースの単純比較) - Fargate Spotの利用でコストは下げられる AWS Fargate https://dev.classmethod.jp/articles/compare-fees-for-fargat- and-ec2-2019-1/
  23. 23 ECSを体験するなら 今回はFargateでECSを体験 AWS Fargate

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

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

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

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

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

  29. 29 ほかにも!

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

  31. None