Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
Docker初めての方への
ECSとFargate♪
自己紹介
Introduction
Name: HisayukiMori
Company: Cloud9 Holdings Inc.
Post : CTO
Community : JAWS-UG 名古屋,JP-Stripe
Facebook : 森 久由...
Agenda
今日のレシピ
・Dockerってなんだろう?
・Dockerってどんなメリットあるの?
・ECSって何してくれるの?
・ECSを使うとどうHappyになるの?
・Fargateってなに?
・EC2とFargateの違いは?
・まとめ
今日の目的
・初めての方に🌟Docker素晴らしい!🌟
って思ってもらう事
Docker使うようになって3ヶ月ほどですが
初めての方に🌟Docker素晴らしい!🌟って
思ってもらう事を目的とします。
Docker
そもそもDockerって何?
What ‘s Docker
・Container型の仮想環境を作成、配布、実
行するためのOSS Platform
・MiddlewareのInstallや各種環境設定をCode
化して管理可能
・仮想環境作成や起動は速く、性能劣化が
ほとん...
仮想マシンとの違い
・仮想MachineはHostMachine上でHypervisorを
利用しGuest OSを動かして、その上で
Middlewareなどを動かす。
・DockerはHostMachineのKernelとProcessを利...
ContainerのProcess
仮想Machine Container
Infrastructure as Code
・構成はすべてcode化する→Dockerfile
・構成管理はほとんど不要になった
・DockerImageを共有することで、同じ環境が
作れる
・どこでも、誰でも、OS関係なく
・構成変更もDo...
ImageとContainer
・DockerImageはDockerfileをbuildすることで
出来るContainer雛形
・DockerImageはRegistryで共有可能
→DockerHubやECR
・DockerImageをD...
Dockerを使えば1Serverに複数役割を当てられる
1ServerにWebもAppもDBServerも配置できる
しかも、別環境として立ち上がっている
まぁ、実際こういう構成は作りますが
Dockerの良いところ
・Resourcesの有効活用
・ポータビリティ
・Stateless
・Speed(高速な起動)
・柔軟性
・再利用性が高い
DockerImageを配布することで
完全な同一環境を作成可能
イミュータブルな環境構築
・DockerfileはGithubでVersion管理可能
・DockerImageはECRやDockerHubで
Version管理可能(tag付けも)
・同一DockerImageからは同一環境の構築が
必ず出来...
注意点
・DockerContainer内に起動中に保存した
ファイルは停止と同時に消える
→正確にはProcessを切ったら
・そのためHOST側portと繋いで、ファイル
保存などはHOST側にする必要あり
・ファイル同様に起動後に変更した...
僕も数ヶ月前までDockerfile書くのに
アレルギーありました
使ってみると便利すぎて手放せなくなります
Happyになること多くないです❓(*´▽ ´*)
ECS
ECSってどんな事してくれるの❓
What ‘s ECS
・DockerContainerのOrchestrationService
・どのServerでどのContainerを実行するか管理
・ServerResourcesの状況に応じた配置戦略
・大量のServerでCon...
まずはECSの用語説明から
Cluster
・ECSでのGroup定義
Cluster
・ECSでのGroup定義
あまり語ることがない💦
Task
・実際にインスタンス上で動くContainer
・TaskはTaskDefinitionsを元に作られる
・Container実行や停止が行える
Task
・実際にインスタンス上で動くContainer
・TaskはTaskDefinitionsを元に作られる
・Container実行や停止が行える
あまり語ることがない💦
Task Definitions
・Taskについての定義
・どのContainer使うの?いくつ設定する?
・CPUどれくらい?Memoryどれくらい?
・内部Volume使う?使わない?
・logはどこに吐く?
・環境変数はなに設定する?
...
Service
・ECSの中枢定義
・どのTask使うの?
・Platformのversionは?
・どのClusterで、いくつ配置する?
・HealthCheckは?
・どのVPC?
・ELBどれつかう?
・Scalingどうする? 等など...
ECSがあると何がHappy❓(*´▽ ´*)
なぜContainerServiceが必要か
これらの作業を”自分たち”で行うことからの開放
・Serverが増えたときに他のServerと同じ設定
→これはEC2でAMI作っておけばよいかも
・ContainerImageをすべてのServe...
例えばEC2をHostにして、
ContainerをScalingしたい場合
ScaleするEC2に毎回Docker Image入れて
起動させます?
あとDocker Image更新したら・・・
まぁ、Containerを使う上でほぼ必須です💦
Happyになること多くないです❓(*´▽ ´*)
Fargate
What ‘s Fargate
・正式にはAWS FargateforECS
・Containerの実行環境
・Containerの運用、Container内のApplication開発
にFocus出来るようにしたService
EC2とFargateの違い
・もうServerすら意識する必要がない
・パッチ適用などの定期業務から開放
・気にするのはCPUと利用Memory
・あとAutoScaling時のContainerを何台にする
か
→HOSTインスタンスは気に...
Fargateのメリット
・インスタンス管理が不要
・ClusterLevelでのResourcesの過不足は
考慮しなくていい
・TaskLevelでSeamlessなScalingが可能
・EC2の場合Containerが動いて無くても
E...
つまり
HOSTInstanceのScalingは
気にしなくて良い!!
ストレージについて①
・重要データは外部ストレージへ
→S3やRDSなど
・現時点ではEBSやEFSを直接マウント出来ない
・レイヤーストレージはTaskにつき
MAX10Gまで
→但しDockerImageの容量も含む
→Container間...
ストレージについて②
・ボリュームストレージはTask内で4G
・複数のContainerをまたいで保存可能
・TaskDefinitionでボリューム定義をして、
Container定義でマウントする
但し、レイヤーストレージもボリュームス
...
Logについて
・あとから参照するものはContainer内
には残さないこと
→消滅します/(^o^)\
・CloudWatch Logsに吐き出す
→LogGroupは作っておく必要あり
・Task実行Rollに忘れずにLog書き込み権限を...
Metricsについて
・最初から用意されているのはServiceレベルの
CPU/メモリ使用率のみ
・TaskやContainerの詳細情報を得るための
エンドポイントが用意されている
・但し、アクセス権限はTask内で動いている
Conta...
環境変数について
・Task定義にて環境変数を設定可能
→DockerImageは不変だが、環境変数は
環境ごとに変わることには注意
・機密情報はSystemManagerのParameterStoreへ
Fargateの注意点
・WindowsContainerは使えない
・GPUサポートなし
・Containerインスタンスにログインは出来ない
・docker execなどのデバッグは不可
・ホスト側とコンテナ側が同一portのみ設定可能
・...
開発者がContainerとApplicationのみに集中できる!
これかなりHappyじゃないですか❓(*´▽ ´*)
まとめ
Summary
・Docker超便利
・ECSでContainer管理を自動化しましょ!
・FargateでServer管理から開放されましょう!
Happy❓(*´▽ ´*)
ご清聴ありがとうございました⭐
20180925 docker ecs_fargate
20180925 docker ecs_fargate
20180925 docker ecs_fargate
20180925 docker ecs_fargate
20180925 docker ecs_fargate
20180925 docker ecs_fargate
20180925 docker ecs_fargate
20180925 docker ecs_fargate
20180925 docker ecs_fargate
Prochain SlideShare
Chargement dans…5
×

1

Partager

Télécharger pour lire hors ligne

20180925 docker ecs_fargate

Télécharger pour lire hors ligne

2018/09/25のJAWS-UG 名古屋で発表した資料です。

20180925 docker ecs_fargate

  1. 1. Docker初めての方への ECSとFargate♪
  2. 2. 自己紹介
  3. 3. Introduction Name: HisayukiMori Company: Cloud9 Holdings Inc. Post : CTO Community : JAWS-UG 名古屋,JP-Stripe Facebook : 森 久由生 Twitter : @hisayuki_mori
  4. 4. Agenda
  5. 5. 今日のレシピ ・Dockerってなんだろう? ・Dockerってどんなメリットあるの? ・ECSって何してくれるの? ・ECSを使うとどうHappyになるの? ・Fargateってなに? ・EC2とFargateの違いは? ・まとめ
  6. 6. 今日の目的 ・初めての方に🌟Docker素晴らしい!🌟 って思ってもらう事
  7. 7. Docker使うようになって3ヶ月ほどですが
  8. 8. 初めての方に🌟Docker素晴らしい!🌟って 思ってもらう事を目的とします。
  9. 9. Docker
  10. 10. そもそもDockerって何?
  11. 11. What ‘s Docker ・Container型の仮想環境を作成、配布、実 行するためのOSS Platform ・MiddlewareのInstallや各種環境設定をCode 化して管理可能 ・仮想環境作成や起動は速く、性能劣化が ほとんどない ・技術ではなく仕様
  12. 12. 仮想マシンとの違い ・仮想MachineはHostMachine上でHypervisorを 利用しGuest OSを動かして、その上で Middlewareなどを動かす。 ・DockerはHostMachineのKernelとProcessを利用 →そのためGuestOSを必要とせず、Host Machine のResourcesを共有できる。 ・1つのOS上で複数のApplicationを分離した 環境で動かすことが可能
  13. 13. ContainerのProcess 仮想Machine Container
  14. 14. Infrastructure as Code ・構成はすべてcode化する→Dockerfile ・構成管理はほとんど不要になった ・DockerImageを共有することで、同じ環境が 作れる ・どこでも、誰でも、OS関係なく ・構成変更もDockerfileの修正のみで可能 ・変更したDockerfileでDockerImageをbuild
  15. 15. ImageとContainer ・DockerImageはDockerfileをbuildすることで 出来るContainer雛形 ・DockerImageはRegistryで共有可能 →DockerHubやECR ・DockerImageをDockerEngine上で動かすと、 実行環境のDockerContainerが立ち上がる ・同時に複数Containerを立ち上げることも可能
  16. 16. Dockerを使えば1Serverに複数役割を当てられる
  17. 17. 1ServerにWebもAppもDBServerも配置できる
  18. 18. しかも、別環境として立ち上がっている
  19. 19. まぁ、実際こういう構成は作りますが
  20. 20. Dockerの良いところ ・Resourcesの有効活用 ・ポータビリティ ・Stateless ・Speed(高速な起動) ・柔軟性 ・再利用性が高い DockerImageを配布することで 完全な同一環境を作成可能
  21. 21. イミュータブルな環境構築 ・DockerfileはGithubでVersion管理可能 ・DockerImageはECRやDockerHubで Version管理可能(tag付けも) ・同一DockerImageからは同一環境の構築が 必ず出来る 開発環境で動作してるContainerと同じ DockerImageをそのまま本番環境へ配置する ことが出来る。
  22. 22. 注意点 ・DockerContainer内に起動中に保存した ファイルは停止と同時に消える →正確にはProcessを切ったら ・そのためHOST側portと繋いで、ファイル 保存などはHOST側にする必要あり ・ファイル同様に起動後に変更した設定な ども停止と同時に戻る →こっちも正確にはProcessを切ったら
  23. 23. 僕も数ヶ月前までDockerfile書くのに アレルギーありました
  24. 24. 使ってみると便利すぎて手放せなくなります
  25. 25. Happyになること多くないです❓(*´▽ ´*)
  26. 26. ECS
  27. 27. ECSってどんな事してくれるの❓
  28. 28. What ‘s ECS ・DockerContainerのOrchestrationService ・どのServerでどのContainerを実行するか管理 ・ServerResourcesの状況に応じた配置戦略 ・大量のServerでContainerを実装できる
  29. 29. まずはECSの用語説明から
  30. 30. Cluster ・ECSでのGroup定義
  31. 31. Cluster ・ECSでのGroup定義 あまり語ることがない💦
  32. 32. Task ・実際にインスタンス上で動くContainer ・TaskはTaskDefinitionsを元に作られる ・Container実行や停止が行える
  33. 33. Task ・実際にインスタンス上で動くContainer ・TaskはTaskDefinitionsを元に作られる ・Container実行や停止が行える あまり語ることがない💦
  34. 34. Task Definitions ・Taskについての定義 ・どのContainer使うの?いくつ設定する? ・CPUどれくらい?Memoryどれくらい? ・内部Volume使う?使わない? ・logはどこに吐く? ・環境変数はなに設定する? ・更新するごとに強制的にRevisionUP
  35. 35. Service ・ECSの中枢定義 ・どのTask使うの? ・Platformのversionは? ・どのClusterで、いくつ配置する? ・HealthCheckは? ・どのVPC? ・ELBどれつかう? ・Scalingどうする? 等など・・・
  36. 36. ECSがあると何がHappy❓(*´▽ ´*)
  37. 37. なぜContainerServiceが必要か これらの作業を”自分たち”で行うことからの開放 ・Serverが増えたときに他のServerと同じ設定 →これはEC2でAMI作っておけばよいかも ・ContainerImageをすべてのServerに配布 ・Server増えたときには新規Serverにも ・ContainerImage更新したら再配布 ・HostのCPU、Memoryに応じたContainer配置 ・Host/Containerの死活監視
  38. 38. 例えばEC2をHostにして、 ContainerをScalingしたい場合
  39. 39. ScaleするEC2に毎回Docker Image入れて 起動させます?
  40. 40. あとDocker Image更新したら・・・
  41. 41. まぁ、Containerを使う上でほぼ必須です💦
  42. 42. Happyになること多くないです❓(*´▽ ´*)
  43. 43. Fargate
  44. 44. What ‘s Fargate ・正式にはAWS FargateforECS ・Containerの実行環境 ・Containerの運用、Container内のApplication開発 にFocus出来るようにしたService
  45. 45. EC2とFargateの違い ・もうServerすら意識する必要がない ・パッチ適用などの定期業務から開放 ・気にするのはCPUと利用Memory ・あとAutoScaling時のContainerを何台にする か →HOSTインスタンスは気にしなくてOK 一応、Serverlessの一貫だと思ってる
  46. 46. Fargateのメリット ・インスタンス管理が不要 ・ClusterLevelでのResourcesの過不足は 考慮しなくていい ・TaskLevelでSeamlessなScalingが可能 ・EC2の場合Containerが動いて無くても EC2の料金がかかっていたが、実際に 使ったResources分しかかからない
  47. 47. つまり
  48. 48. HOSTInstanceのScalingは 気にしなくて良い!!
  49. 49. ストレージについて① ・重要データは外部ストレージへ →S3やRDSなど ・現時点ではEBSやEFSを直接マウント出来ない ・レイヤーストレージはTaskにつき MAX10Gまで →但しDockerImageの容量も含む →Container間での書き込みは不可
  50. 50. ストレージについて② ・ボリュームストレージはTask内で4G ・複数のContainerをまたいで保存可能 ・TaskDefinitionでボリューム定義をして、 Container定義でマウントする 但し、レイヤーストレージもボリュームス トレージも停止とともにデータが消滅する
  51. 51. Logについて ・あとから参照するものはContainer内 には残さないこと →消滅します/(^o^)\ ・CloudWatch Logsに吐き出す →LogGroupは作っておく必要あり ・Task実行Rollに忘れずにLog書き込み権限を 付けましょう →Logが吐き出されなくなります
  52. 52. Metricsについて ・最初から用意されているのはServiceレベルの CPU/メモリ使用率のみ ・TaskやContainerの詳細情報を得るための エンドポイントが用意されている ・但し、アクセス権限はTask内で動いている Containerの中からのみ
  53. 53. 環境変数について ・Task定義にて環境変数を設定可能 →DockerImageは不変だが、環境変数は 環境ごとに変わることには注意 ・機密情報はSystemManagerのParameterStoreへ
  54. 54. Fargateの注意点 ・WindowsContainerは使えない ・GPUサポートなし ・Containerインスタンスにログインは出来ない ・docker execなどのデバッグは不可 ・ホスト側とコンテナ側が同一portのみ設定可能 ・DockerHubのPrivateRepositoryは使えない →使えるようになりました。 ・常時起動で利用する場合はEC2よりも少々お高い
  55. 55. 開発者がContainerとApplicationのみに集中できる!
  56. 56. これかなりHappyじゃないですか❓(*´▽ ´*)
  57. 57. まとめ
  58. 58. Summary ・Docker超便利 ・ECSでContainer管理を自動化しましょ! ・FargateでServer管理から開放されましょう!
  59. 59. Happy❓(*´▽ ´*)
  60. 60. ご清聴ありがとうございました⭐
  • katz515

    Sep. 26, 2018

2018/09/25のJAWS-UG 名古屋で発表した資料です。

Vues

Nombre de vues

384

Sur Slideshare

0

À partir des intégrations

0

Nombre d'intégrations

5

Actions

Téléchargements

1

Partages

0

Commentaires

0

Mentions J'aime

1

×