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のコンテナサービスについてざっくりまとめてみる
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
つくぼし
November 09, 2022
Technology
1
2.6k
(今更ながら)AWSのコンテナサービスについてざっくりまとめてみる
つくぼし
November 09, 2022
Tweet
Share
More Decks by つくぼし
See All by つくぼし
CDKで始めるTypeScript開発のススメ
tsukuboshi
1
1.4k
Mastraに入門してみた ~AWS CDKを添えて~
tsukuboshi
0
1.2k
Amazon Bedrock GenUハンズオン座学資料 #2 GenU環境でRAGを体験してみよう
tsukuboshi
0
690
Amazon Bedrock GenUハンズオン座学資料 #1 GenU環境で生成AIを体験してみよう
tsukuboshi
0
1.3k
AWSエンジニアに捧ぐLangChainの歩き方
tsukuboshi
5
2.1k
世界の中心でApp Runnerを叫ぶ ~Aurora DSQLを添えて~
tsukuboshi
0
830
初めてのGPTs ~ネコ派を〇〇派に変える技術~
tsukuboshi
0
840
Amplify Gen 2ではじめる 生成AIアプリ開発入門
tsukuboshi
1
1.7k
AWSで構築するパターン別RAG構成解説
tsukuboshi
5
8.7k
Other Decks in Technology
See All in Technology
[AEON TECH HUB #24] お客様の長期的興味の理解に向けて
alpicola
0
130
楽しく学ぼう!ネットワーク入門
shotashiratori
1
380
vLLM Community Meetup Tokyo #3 オープニングトーク
jpishikawa
0
280
最強のAIエージェントを諦めたら品質が上がった話 / how quality improved after giving up on the strongest AI agent
kt2mikan
0
130
白金鉱業Meetup_Vol.22_Orbital Senseを支える衛星画像のマルチモーダルエンベディングと地理空間のあいまい検索技術
brainpadpr
2
280
OCI技術資料 : コンピュート・サービス 概要
ocise
4
54k
製造業ドメインにおける LLMプロダクト構築: 複雑な文脈へのアプローチ
caddi_eng
1
550
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
8
7.2k
メタデータ同期に潜んでいた問題 〜 Cache Stampede 時の Cycle Wait を⾒つけた話
lycorptech_jp
PRO
0
150
情シスのための生成AI実践ガイド2026 / Generative AI Practical Guide for Business Technology 2026
glidenote
0
180
JAWS Days 2026 楽しく学ぼう! 認証認可 入門/20260307-jaws-days-novice-lane-auth
opelab
10
1.7k
kintone開発のプラットフォームエンジニアの紹介
cybozuinsideout
PRO
0
850
Featured
See All Featured
The Curse of the Amulet
leimatthew05
1
9.8k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
210
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
82
Prompt Engineering for Job Search
mfonobong
0
180
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
140
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
670
Building an army of robots
kneath
306
46k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
61
52k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Typedesign – Prime Four
hannesfritz
42
3k
Transcript
1 JAWS-UG朝会 #39 (今更ながら)AWSのコンテナサービス についてざっくりまとめてみる 2022.11.9
・名前 - つくぼし ・所属 - クラスメソッド株式会社 AWS事業本部 - コンサルティング部 ソリューションアーキテクト
・好きなAWSサービス - AWS CLI ・SNS/ブログ - Twitter(@tsukuboshi0755) - DevelopersIO(つくぼし) 自己紹介
今日話すこと 1. コンテナとは?(おさらい) 2. AWSのコンテナ主要サービス 3. AWSのコンテナ関連サービス 4. 最後に
1. コンテナとは?(おさらい)
注意! しばらくAWSとは全く関係ない説明が続きます。 ご容赦ください。
コンテナって何者? そもそも...
AWS公式によるコンテナの説明 コンテナを使用すると、アプリケーションのコード、構成、依存関係を単一のオブ ジェクトにパッケージ化できます。サーバーにインストールされたオペレーティン グシステムを共有し、リソースが分離したプロセスとして実行され、環境に関係な く、迅速で信頼性も高く、一貫性のあるデプロイを保証しています。 公式ドキュメント:コンテナ - 詳細 - Amazon
AWS
コンテナをググるとよく見る図 仮想化ソフトウェア (ハイパーバイザー) OS ハイパーバイザー仮想化 ミドルウェア アプリケーション OS ミドルウェア アプリケーション
コンテナ仮想化 コンテナ管理ソフトウェア (Docker等) ミドルウェア アプリケーション ミドルウェア アプリケーション OS VM VM Container Container
「ちょっと何言ってるか分からない」
コンテナの歴史を知ろう! コンテナをきちんと理解するには?
コンテナ仮想化の元祖をご存じですか?
コンテナ仮想化の元祖をご存じですか? chroot
chrootとは? • 1979 年 UNIX Version 7 で登場したコンテナ(的機能)の元祖 • chroot
をしたディレクトリがルートディレクトリとして扱われ、そ れより上位のディレクトリは見えなくなる • 元々の用途は、ビルドシステムをクリーンなルートディレクトリ で実行するため • 外部からchroot配下のディレクトリに侵入された際に、指定さ れたディレクトリ外へのアクセスも防げる
chrootの具体例 / /alpha /beta /gumma /beta/a /beta/b /gumma/a chroot chroot
chrootの具体例 / /alpha / / /a /b /a File System
File System chroot chroot
chrootからコンテナ仮想化への発展 • より厳密に仮想ファイルシステムとして分離できるpivot_rootが登場 ◦ chrootはルートディレクトリ配下から比較的容易に抜け出せてしまう が、pivot_rootはほぼ抜け出せなくなっている • pivot_rootで分離した仮想ファイルシステムを、VMと似たような形で扱い たい→コンテナ仮想化(Docker等)で実現 ◦
NameSpaceでユーザIDやプロセスID、NW等を分離 ◦ cgroupでプロセス毎にCPU/メモリを付与
コンテナ仮想化の具体例 / / / /a /b /a File System File
System pivot_root pivot_root
コンテナ仮想化の具体例 / / / /a /b /a Container Container pivot_root
pivot_root IP:10.0.0.1 CPU:1vCPU Memory:4GB IP:10.0.0.2 CPU:0.25vCPU Memory:1GB
高機能な仮想ファイルシステム つまりコンテナとは?(個人的見解)
2. AWSのコンテナ主要サービス
コンテナレジストリ と コンテナオーケストレーション AWSにおける主要なコンテナサービスといえば...
コンテナレジストリとは? • コンテナイメージ(動作環境テンプレート)を保管する機能 ◦ コンテナイメージのバージョン管理や配布が実施可能 ◦ インターネット非公開のプライベートレジストリと、公開されるパブリックレ ジストリが存在する • 代表的なプライベートレジストリ
◦ Docker Registory ◦ Amazon ECR • 代表的なパブリックレジストリ ◦ Docker Hub ◦ Amazon ECR Public
AWSのコンテナレジストリサービス分類 プライベート パブリック ECR ECR Public pub
Amazon ECR(Elastic Container Registry) • AWSが提供する、マネージドプライベートコンテナレジスト リサービス • アクセスには、AWSの認証情報が必要 •
自前でプライベートコンテナレジストリ用のインフラ環境を 構築/運用する必要がない • ECSやIAM等のAWSサービスとの連携が容易
Amazon ECR Public • AWSが提供する、マネージドパブリックコンテナレジストリ サービス • AWSの認証情報なしでアクセス可能 • イメージPull回数制限が存在しないため、CodeBuild等で
Docker Hubを使用する事で発生する`Too Many Requests` エラーを回避可能 • Docker Hubの代替手段として利用できる pub
コンテナオーケストレーションとは? • 複数のサーバをまたいで、コンテナを管理する機能 ◦ コンテナを起動するサーバを決定する ◦ 一部のサーバが停止した際に、コンテナを別サーバで再起動する • 代表的なコンテナオーケストレーションツール ◦
Kubernetes ◦ Docker Swarm ◦ (AWS ECS)
AWSのコンテナオーケストレーションサービス分類 起動タイプ コンテナ プラットフォーム EC2 Fargate ECS ECS on EC2
ECS on Fargate EKS EKS on EC2 EKS on Fargate
Amazon ECS(Elastic Container Service) • AWSが提供する、AWS独自のマネージドコンテナオーケ ストレーションサービス • AWSサービスとの連携が容易 •
バージョンアップは不要 • AWS及びオンプレミス(ECS Anywhere)で使用可能だが、 他クラウド(GCP/Azure等)では使用不可
Amazon EKS(Elastic Kubernetes Service) • AWSが提供する、Kubernetesがベースのマネージドコンテ ナオーケストレーションサービス • Kubernetes関連ツールとの連携が可能 •
Kubernetesのバージョンアップが必要(半年に1度) • Kubernetesについては、AWS、オンプレミス、他クラウド (GCP/Azure等)全てで使用可能
AWS Fargate • コンテナ用のサーバ管理が不要な起動タイプ • クラスター基盤であるEC2を運用する必要がない • 最近はECS ExecやFirelens等の便利な機能が充実 •
EC2起動タイプと比較して、一部制限があるため注意 (GPU使用不可、Windowsコンテナ使用不可等)
3. AWSのコンテナ関連サービス
ECR/ECS/EKS以外のコンテナサービスを知ってますか? App Runner Proton Copilot Cloud Map App Mesh
AWS App Runner • AWSが提供する、マネージドコンテナデプロイサービス • コンテナイメージURI、サービス名、CPU/メモリ、ポート番 号を指定するだけで簡単にデプロイ可能 • VPC/ECS/ALBといったコンテナ基盤が隠蔽され、管理する
必要がない
AWS Proton • AWSが提供する、デプロイワークフローツール • ECSクラスターやNW、DBを含む環境テンプレートと、ECS サービスやCI/CDパイプラインを含むサービステンプレー トの2種類に分けてデプロイを管理 • インフラ基盤担当とアプリケーション担当に分かれて、コ
ンテナ基盤を柔軟に運用できる
AWS Copilot • Amazon ECSを構築するための専用CLIツール • 通常のAWS CLIよりも抽象度が高く、数コマンドでECS環境 を構築可能 •
CI/CDパイプラインもECS環境と合わせて作成できるので 便利
AWS Cloud Map • AWSが提供する、マネージドサービスディスカバリサービ ス • サービスディスカバリ≒特定の識別子から、IPアドレス等 の接続情報を参照解決する機能(例:DNS) •
コンテナ毎に内部DNS名が付与され、名前解決による通 信が可能となる(内部向けALBがいらない)
AWS App Mesh • AWSが提供する、マネージドサービスメッシュサービス • サービスメッシュ≒マイクロサービスアーキテクチャでのコ ンポーネント同士の通信を制御する機能(例:Istio) • 大規模なコンテナ基盤システムにおいて、コンテナ同士の
通信に課題がある場合に用いられる
4. 最後に
まとめ • コンテナ≒高機能な仮想ファイルシステム(個人的 見解) • ECR/ECS/EKSといったコンテナ主要サービスを提供 • App Runner/Proton/Copilot/Cloud Map/App
Meshと いったコンテナ関連サービスも充実
カジュアル面談(Meety)の宣伝 Twitter(@tsukuboshi0755)でピン留めしてます
参考文献 • コンテナ - 詳細 - Amazon AWS • 歴史から紐解くLinuxカーネルのコンテナ機能
• コンテナランタイムはじめの一歩 • 2021年コンテナ最前線〜今AWSでコンテナホスト するならなにが現実解なのか?〜
42