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 07, 2024
Technology
65
0
Share
AWSのコンテナ環境まとめ
少し前に作成したAWSでコンテナを動かすときに使えるサービスまとめです。
みどり
November 07, 2024
More Decks by みどり
See All by みどり
Amazon GuardDuty Malware Protection for Amazon S3を使おう
ryder472
2
250
Amazon GuardDuty Malware Protection for Amazon S3のここがすごい!
ryder472
1
300
Amazon Location Serviceを使ってラーメンマップを作る
ryder472
2
790
個人でもIAM Identity Centerを使おう!(アクセス管理編)
ryder472
4
920
個人でもIAM Identity Centerを使おう!(ID管理編)
ryder472
0
160
Other Decks in Technology
See All in Technology
15年メンテしてきたdotfilesから開発トレンドを振り返る 2011 - 2026
giginet
PRO
2
260
TUNA Camp 2026 京都Stage ヒューリスティックアルゴリズム入門
terryu16
0
650
脳が溶けた話 / Melted Brain
keisuke69
1
1.2k
How to install a gem
indirect
0
2k
Kiro Meetup #7 Kiro アップデート (2025/12/15〜2026/3/20)
katzueno
2
280
不確実性と戦いながら見積もりを作成するプロセス/mitsumori-process
hirodragon112
1
170
QA組織のAI戦略とAIテスト設計システムAITASの実践
sansantech
PRO
1
300
互換性のある(らしい)DBへの移行など考えるにあたってたいへんざっくり
sejima
PRO
0
520
ハーネスエンジニアリング×AI適応開発
aictokamiya
3
1.3k
Sansanの認証基盤を支えるアーキテクチャとその振り返り
sansantech
PRO
1
140
第26回FA設備技術勉強会 - Claude/Claude_codeでデータ分析 -
happysamurai294
0
320
開発チームとQAエンジニアの新しい協業モデル -年末調整開発チームで実践する【QAリード施策】-
kaomi_wombat
0
290
Featured
See All Featured
Crafting Experiences
bethany
1
100
Designing for Timeless Needs
cassininazir
0
180
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
420
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
Art, The Web, and Tiny UX
lynnandtonic
304
21k
Making the Leap to Tech Lead
cromwellryan
135
9.8k
Building Adaptive Systems
keathley
44
3k
[SF Ruby Conf 2025] Rails X
palkan
2
880
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.8k
GraphQLとの向き合い方2022年版
quramy
50
14k
RailsConf 2023
tenderlove
30
1.4k
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つ