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