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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
みどり
November 07, 2024
Technology
66
0
Share
AWSのコンテナ環境まとめ
少し前に作成したAWSでコンテナを動かすときに使えるサービスまとめです。
みどり
November 07, 2024
More Decks by みどり
See All by みどり
キーボードは2つに割れ -分割キーボードのすすめ-
ryder472
0
60
Amazon GuardDuty Malware Protection for Amazon S3を使おう
ryder472
2
250
Amazon GuardDuty Malware Protection for Amazon S3のここがすごい!
ryder472
1
310
Amazon Location Serviceを使ってラーメンマップを作る
ryder472
2
800
個人でもIAM Identity Centerを使おう!(アクセス管理編)
ryder472
4
940
個人でもIAM Identity Centerを使おう!(ID管理編)
ryder472
0
160
Other Decks in Technology
See All in Technology
🀄️ on swiftc
giginet
PRO
0
380
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.4k
インフラを Excel 管理していた組織が 3 ヶ月で IaC 化されるまで
geekplus_tech
3
200
"SQLは書けません"から始まる データドリブン
kubell_hr
2
450
Amazon S3 Filesについて
yama3133
2
140
マルチエージェント × ハーネスエンジニアリング × GitLab Duo Agent Platformで実現する「AIエージェントに仕事をさせる時代へ。」 / 20260421 GitLab Duo Agent Platform
n11sh1
0
110
Code Interpreter で、AIに安全に コードを書かせる。
yokomachi
0
6.5k
試されDATA SAPPORO [LT]Claude Codeで「ゆっくりデータ分析」
ishikawa_satoru
0
400
Zero-Downtime Migration: Moving a Massive, Historic iOS App from CocoaPods to SPM and Tuist without Stopping Feature Delivery
kagemiku
0
240
実践ハーネスエンジニアリング:TAKTで実現するAIエージェント制御 / Practical Harness Engineering: AI Agent Control Enabled by TAKT
nrslib
8
1.9k
DevOpsDays2026 Tokyo Cross-border practices to connect "safety" and "DX" in healthcare
hokkai7go
0
160
Master Dataグループ紹介資料
sansan33
PRO
1
4.6k
Featured
See All Featured
Building Adaptive Systems
keathley
44
3k
Speed Design
sergeychernyshev
33
1.6k
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
190
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
250
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Raft: Consensus for Rubyists
vanstee
141
7.4k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.3k
Optimizing for Happiness
mojombo
378
71k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
490
Transcript
AWSのコンテナ環境まとめ 戸井田 理
コンテナ仮想化とは? KVMやHyper-V、ESXiなどの仮想マシン環境と異なり、一般的なLinuxディ ストリビューションを利用してカーネルは共有しつつユーザー 名前空間が分離している実行環境を提供するための技術 LXCやDockerコンテナ、Windowsコンテナなど種類があります。 →今回はWindowsコンテナについては省略します。
LXCとDockerコンテナの違い LXCとDockerコンテナの違いはわかりますか? →LXC(LinuX Container)はOS丸ごとコンテナ仮想化 →Dockerコンテナはアプリケーション単位のコンテナ仮想化 今回はDockerコンテナに注目します。
AWSで動かせるコンテナ環境
AWSで動かせるコンテナ環境 代表的なものをいくつか列挙します。 • Amazon ECS • Amazon EKS • Amazon
Lightsail • AWS Elastic Beanstalk
サービスそれぞれの違い(Amazon ECS) AWSが独自に用意したコンテナオーケストレーションツールを使用 してコンテナを管理します スケーラビリティや初期段階で必要な機能は全て揃っている印象 AWS以外で動く環境はもちろんないのでノウハウは公式とAWS コミュニティに依存
サービスそれぞれの違い(Amazon EKS) Kubernetes(以下k8s)をAWSで最適に動作する環境で管理します コントロールプレーンはマネージドでデータプレーンの面倒だけ見る k8sの豊富なツールやコミュニティから情報を選び利用することが 可能(ただしk8sのディストロはAmazon EKS Distroを使用する) 追加料金(0.10USD/h)とバージョンアップがネック バージョンアップせず延長サポート対象となった場合0.60USD/h
サービスそれぞれの違い(Amazon Lightsail) IAMやELB、ログ管理などを全て隠蔽してコンテナを手軽に使いたい人向 け いわゆるVPSでdockerが動かせるようにしてあるイメージでOK 現時点ではECRにあるイメージは使えず直接Lightsailコンテナ サービスにイメージをpushする必要がある
サービスそれぞれの違い(AWS Elastic Beanstalk) この中で一番歴史があるサービス 基本的にはLightsailと同じようにELB、モニタリング、アプリケーションデプ ロイなどは隠蔽されて使いやすくEC2にデプロイする サービス Lightsailとの違いはLightsailは月額費用が定額だが、Elastic Beanstalk はあくまでEC2などをすべて肩代わりして作ってくれるラッパーに
すぎないのでそれぞれの費用がかかる
AWSで動かせるその他のコンテナ環境 内部的にECSを使ってるものは例えばAWS BatchやAWS App Runnerな どがあります。 Red Hat OpenShift Service
on AWSというサービスもありますが既存シス テムからの移行以外ではコストが高すぎるかと思います。 またEC2上でセルフにコンテナ環境を構築して自前管理するのも方法の一 つです。 AWS Lambdaもコンテナを実行することは可能ですが、今回は省略 します。実行時間が短めなら選択肢に入るかもしれません。
AWSで使えるコンテナ実行環境
AWSで動かせるコンテナ環境 コンテナを実行するマシンは以下の選択肢から選べます。 • Amazon EC2(x86_64 or aarch64(graviton)) • AWS Fargate(x86_64
or aarch64(graviton)) • Amazon (ECS | EKS) Anywhere EC2とFargateはそれぞれスポットインスタンスを選択することも 可能です。またリザーブドインスタンスやSavings Plansを使用することでコ スト減を狙うことも可能です。
実行環境それぞれの違い(Amazon EC2) Amazon EC2は多彩なインスタンスタイプから必要なリソースを自由に選 択できます。 またGPUを必要とする場合現時点で現実的な唯一の選択肢です。 コンテナイメージをEC2内にキャッシュすることでFargateよりも 高速に起動することが可能です。
実行環境それぞれの違い(AWS Fargate) AWS Fargateはサーバーレスなコンテナ実行環境としてEC2で必要なOS やミドルウェア類の管理から解放されます。 必要なvCPUもしくはメモリに連動する料金がかかります。このときvCPUと メモリは対応する選択肢が決まっているので例えば1vCPUの場合選べるメ モリは2GB-8GBの間となります。 もっとメモリが必要な場合vCPUを増やす必要があるのでどちらかのリソー スが過剰になってしまうこともあります。
実行環境それぞれの違い((ECS|EKS)Anywhere) (ECS | EKS) Anywhereは条件を満たすオンプレミスのサーバーにたいし てエージェントをインストールすることでAWS上で管理しているホストと同じ ようにマネージドなコントロールプレーンを使用する ことが可能です。ただし追加料金がかかります。 また、RDSやNLBなどのVPC上のリソースを必要とする場合Direct ConnectやSite-to-Site
VPNなどを使用する必要がある点に注意が必要で す。
実行環境それぞれのコスト比較 条件: cpu: 2vCPU mem:4GiB / x86_64 / 東京リージョン /
30.5日 / オンデマンド / Linux / 1USD=155円 ストレージ、ネットワーク等の費用は計算外とする。 • EC2(c7i.large): 82.2402USD(12,747円) • Fargate: 90.2084USD(13,982円)
コンテナ環境で使えるIaC
インフラ周り AWS CloudFormationやAWS CDK、TerraFormなどを用いて管理すること ができます。 他のAWSのサービスやクラウドベンダーと同様です。
アプリケーション周り EKSの場合、一般的にはAnsibleなどを使用してアプリケーションを デプロイすることが可能です。これは一般的なk8sと同様の運用が できることを意味します。 ECSの場合、面白法人カヤックの開発したOSSの「ecspresso」を用いて管 理することが良いかと思います。
コンテナ環境で使えるストレージ
ストレージ (ECS | EKS)で使用できるストレージは以下の通りです。 • Amazon Elastic Block Store (EBS)
• Amazon Elastic File System (EFS) • Amazon FSx • Amazon S3
ストレージそれぞれの違い(Amazon EBS) オンプレで言うところの内蔵ディスク パフォーマンスと容量のバランスは割と良い EC2のみ対応で、容量拡張に手間がかかってしまう アタッチしているEC2がSPoFになってしまうため注意
ストレージそれぞれの違い(Amazon EFS) オンプレで言うところのNAS 複数のマシンから同時にアクセスすることが可能 AZ跨ぎでのアクセスやFargateからのマウントもOK 信頼性、可用性がEBSよりも高い、従量課金なので使用した分だけお金を 払えば良い EBS(gp3)とEFS(マルチAZ)で約3.75倍EFSのほうが高い EBS(gp3)とEFS(シングルAZ)で約2倍EFSのほうが高い
ストレージそれぞれの違い(Amazon FSx) 4つのファイルシステムから選べるハイパフォーマンスなストレージ • NetApp ONTAP • OpenZFS • Windows
File Server • Lustre 高スループット低レイテンシー、スケーラブルなストレージを選べる EC2のみ対応、コンテナからはバインドマウントする
ストレージそれぞれの違い(Amazon S3) 高信頼性でほぼ無限にスケールするオブジェクトストレージ S3標準クラス、~50TB/month で0.023USD/GBで圧倒的に安い 基本的にAPIを用いてアクセスするのでスループットは他と比較して良くな い オブジェクトストレージなのでファイルサーバー的な使い方は辛い
AWSで使えるコンテナセキュリティ
コンテナセキュリティ コンテナセキュリティを実現するAWSのサービスは以下の2つです。 • Amazon Inspector • Amazon GuardDuty これ以外にもAWS WAF、AWS
Shield、AWS Network Firewallなど コンテナに限らず使用できるサービスやサードパーティの製品などがありま す。
コンテナセキュリティ(Amazon Inspector) Amazon InspectorはECRにpushされたイメージの脆弱性スキャンを行い、 脆弱性を検知した場合EventBridgeと連携してSNSやLambda等を通して 通知することが可能です。 基本スキャンと拡張スキャンの2種類があり、拡張スキャンの方は課金対象 ですがプログラミング言語のパッケージマネージャによってインストールさ れたものも対象となります。 EC2で動いている場合EC2インスタンスもInspectorによってスキャンするこ
とができます。
コンテナセキュリティ(Amazon GuardDuty) Amazon GuardDutyはEKSやECSのランタイムモニタリングをサイドカーコ ンテナによって実現して不審なアクティビティ(e.g. 権限昇格、マイニング)を 検知します。 EC2で動いている場合EBSを対象としてマルウェアスキャンを行うことがで きる他、S3やRDSに対する不審なアクティビティを検知することも可能です。 検知するのみなのでEventBridge+SNSなどで通知することが重要。
コストを許容できるのであれば絶対に有効にするべきサービスの1つ