Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWSコンテナサービス入門 / nds60-jaws-ug
Search
Hayato Imai
June 22, 2019
Technology
0
2.9k
AWSコンテナサービス入門 / nds60-jaws-ug
Hayato Imai
June 22, 2019
Tweet
Share
More Decks by Hayato Imai
See All by Hayato Imai
Kubernetes撤退、 その後のはてなの取り組み / kubernetes meetup tokyo number 52
hayajo
9
7.2k
Mackerelにおける Cloud Nativeへの取り組みと チームへ与えた変化 / CloudNative Days Tokyo 2020
hayajo
2
1.4k
MackerelにおけるKubernetes利用の取組みとこれから / Kubernetes Meetup Tokyo #22
hayajo
20
9.6k
Mackerelチームのコンテナ開発における戦略とこれから / 190722-cndt2019
hayajo
1
1.8k
コンテナのメトリクスと モニタリングパターン / 190320-sakura-event
hayajo
6
1.6k
Mackerelコンテナエージェントによる コンテナ監視について / Mackerel Meetup #13 Tokyo
hayajo
1
9k
Docker for Mac/Windows ではじめる Kubernetes / NDS55 Docker with Kubernetes
hayajo
16
14k
Terrafromで構築するマルチクラウドプラットフォームインフラストラクチャ / NDS53 Terraform
hayajo
0
400
Ncatをつかおう / Use Ncat
hayajo
1
3.6k
Other Decks in Technology
See All in Technology
SpiderPlus & Co. エンジニア向け会社紹介資料
spiderplus_cb
0
780
いま現場PMのあなたが、 経営と向き合うPMになるために 必要なこと、腹をくくること
hiro93n
9
6.6k
深層学習と3Dキャプチャ・3Dモデル生成(土木学会応用力学委員会 応用数理・AIセミナー)
pfn
PRO
0
450
新しいスケーリング則と学習理論
taiji_suzuki
10
3.8k
技術に触れたり、顔を出そう
maruto
1
130
AWSサービスアップデート 2024/12 Part3
nrinetcom
PRO
0
120
Git scrapingで始める継続的なデータ追跡 / Git Scraping
ohbarye
5
430
生成AI × 旅行 LLMを活用した旅行プラン生成・チャットボット
kominet_ava
0
150
2025年に挑戦したいこと
molmolken
0
130
🌏丸い地球を効率的に平たくする 〜🗺️地図の幾何学とWeb地図技術〜
syotasasaki593876
0
140
I could be Wrong!! - Learning from Agile Experts
kawaguti
PRO
8
3.2k
20241228 - 成為最強魔法使!AI 實時生成比賽的策略 @ 2024 SD AI 年會
dpys
0
350
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
244
12k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.2k
Making the Leap to Tech Lead
cromwellryan
133
9k
GraphQLとの向き合い方2022年版
quramy
44
13k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Agile that works and the tools we love
rasmusluckow
328
21k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
26
1.9k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
113
50k
Transcript
AWSコンテナサービス入門 NDS第60回 JAWS-UG長岡第3回
自己紹介 • @hayajo (id:hayajo_77) • 株式会社はてな • Mackerelチーム SRE
今日のゴール • コンテナとは何かを理解する • AWSのコンテナサービスの特性を理解する
話すこと • コンテナの基礎知識 • コンテナ運用の課題 • AWSコンテナサービスの紹介
話さないこと • アプリケーションのコンテナ化の手順 • コンテナ実行環境の構築、運用方法
コンテナとは?
コンテナ • OSリソースを隔離・制限したプロセス • 仮想マシンのようなサンドボックスを実現
コンテナが隔離・制限するもの • PID、マウントテーブル、ネットワークなどを隔離 • CPU、メモリ、I/Oなどを制限 • 権限を細分化して制限 see also. 「コンテナ技術入門
- 仮想化との違いを知り、要素技術を触って学ぼう」 https://employment.en-japan.com/engineerhub/entry/2019/02/05/103000
Docker • 複数コンテナのライフサイクル管理 • Dockerイメージの管理 ◦ アプリケーションと依存関係をパッケージ化 ◦ コンテナのルートファイルシステムとして利用 ◦
環境の一貫性、再現性を実現
プロセス コンテナ VM 仮想化 メモリ OS ハードウェア Isolation 低 高
フットプリント 小 大 プロセス・コンテナ・VM
None
なぜコンテナか • Consistency • Portability • Isolation • Efficiency
コンテナの運用
Dockerのスコープ • シングルホストのコンテナ ◦ ホストがダウンしたらそれまで • 冗長性、可用性を高めるには ◦ 複数ホストでのコンテナ運用が必要 ◦
Dockerのスコープ外
コンテナの運用 • ライフサイクル管理 • デプロイ • ヘルスチェック • モニタリング •
スケーリング • スケジューリング • ネットワーキング • 構成管理 etc.
運用の自動化が必要 • 信頼性の向上 • 運用負荷の軽減
AWSのコンテナサービス
コンテナ運用を自動化するAWSサービス • AWS Elastic Beanstalk (EB) • Amazon Elastic Container
Service (ECS) • Amazon Elastic Kubernetes Service (EKS)
AWS Elastic Beanstalk (EB)
EB • PaaS ◦ インフラの手間を削減し、サービス開発に注力する • ウェブサービスを提供するために必要なコンポーネントを一元管理 ◦ ネットワーク(VPC)、ロードバランサ(ELB)、VM(EC2)、データベース (RDS)、モニタリング(CloudWatch)
など
Dockerもサポート • Single Container (Docker) ◦ 単一のコンテナをデプロイ • Multi Container
(ECS) ◦ 依存関係にある複数のコンテナをまとめてデプロイ ◦ ECSのTaskとして実行
スケーリング • EC2単位でスケーリング ◦ Amazon EC2 Auto Scaling • コンテナ/Task単位ではスケールできない
◦ EC2インスタンスとコンテナ/Taskは1対1の関係 ◦ VMなのでスケールの速度はそれなり
EBを選択する理由 • インフラの構築、運用の手間を削減したい • 頻繁にスケールする必要がない • 独立したサービスとして完結できる • コンテナを使い始めたばかり
Amazon Elastic Container Service (ECS)
ECS • コンテナオーケストレーションサービス • コンテナの宣言的管理 • 柔軟なスケジューリングとスケーリング • Service →
Task → Container というトポロジをとる ◦ スケールの最小単位はTask ▪ 依存関係にある複数のコンテナをまとめた論理的単位
コンテナオーケストレーション? • コンテナの運用を自動化する
コントロールプレーンとデータプレーン • コントロールプレーン ◦ コンテナを管理する場所 • データプレーン ◦ コンテナが稼働する場所 コントロールプレーン
デプロイ、スケジューリング、スケーリング、コンテ ナの構成管理 データプレーン コンテナの実行、状態のフィードバック
in ECS • コントロールプレーン ◦ ECS • データプレーン ◦ EC2起動タイプ
◦ Fargate起動タイプ コントロールプレーン データプレーン
EC2起動タイプ • データプレーンとしてEC2インスタンスによるクラスタを構築する • EC2インスタンスはユーザーが構築・管理する必要がある ◦ キャパシティ管理、セキュリティ対策が必要 ◦ ecs-agentのアップデート
Fargate起動タイプ • フルマネージドのデータプレーン ◦ コンテナホストの管理不要 ◦ コンテナだけに注力できる • コンテナに直接アタッチできないためデバッグが難しい “また、FargateコンテナにSSHして、内部の情報を確認できるようにするなども予定している”
https://www.atmarkit.co.jp/ait/articles/1906/19/news022.html
ECSを選択する理由 • すでにAWSで稼動しているシステムのコンテナ化 • マイクロサービスも視野に入れている • コスト最適化
EC2起動タイプ vs Fargate起動タイプ
EC2起動タイプを選択する理由 • 大規模ワークロードで実行コストを最適化したい ◦ リザーブドインスタンスやスポットインスタンスを活用
Fargate起動タイプを選択する理由 • 大規模ワークロードで運用コストを最適化したい • 小規模ワークロードでときどき負荷が高くなる • 負荷が小さい • バッチ処理
Amazon Elastic Kubernetes Service (EKS)
EKS • Kubernetesのマネージドサービス • フルマネージドのコントロールプレーンを提供 • データプレーンはユーザーが構築・管理する ◦ ECS/EC2起動タイプと同じような感じ ◦
Fargate for EKSに期待 https://github.com/aws/containers-roadmap/issues/32
コントロールプレーン EKS データプレーン
Kubernetes? • OSSのコンテナオーケストレーションツール • 高い拡張性 ◦ インフラの拡張、APIの拡張 • 充実したエコシステム
ref. Cloud Native Landscape https://github.com/cncf/landscape
EKSのバージョンライフサイクル ref. Amazon EKS バージョンライフライクルの更新 https://aws.amazon.com/jp/blogs/news/updates-to-amazon-eks-version-lifecycle/
EKSを選択する理由 • オンプレでKubernetesを運用してい(る|た)が運用負担を減らしたい • Kubernetesのエコシステムを利用したい • 運用を積極的に自動化したい • ベンダーロックインの回避 •
冗長性、可用性を更に高めたい
各サービスの特性
Simplicity Convenience Flexibility EB ECS EKS
まとめ
まとめ • コンテナはOSを仮想化してリソースを分割する • コンテナの冗長性、可用性を高めるには運用の自動化が必要 • AWSには特性の異なる複数のコンテナ運用自動化サービスがある
(そもそも) コンテナ運用に至るまでの道のり
ref. Cloud Native Landscape https://github.com/cncf/landscape
サービス目的と成長、運用を考慮した 無理のないコンテナ運用を。