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
みどり
November 07, 2024
Technology
0
23
AWSのコンテナ環境まとめ
少し前に作成したAWSでコンテナを動かすときに使えるサービスまとめです。
みどり
November 07, 2024
Tweet
Share
More Decks by みどり
See All by みどり
Amazon GuardDuty Malware Protection for Amazon S3のここがすごい!
ryder472
1
130
Amazon Location Serviceを使ってラーメンマップを作る
ryder472
2
270
個人でもIAM Identity Centerを使おう!(アクセス管理編)
ryder472
4
490
個人でもIAM Identity Centerを使おう!(ID管理編)
ryder472
0
98
Other Decks in Technology
See All in Technology
ビジネスと現場活動をつなぐソフトウェアエンジニアリング~とあるスタートアッププロダクトの成長記録より~
mizunori
0
210
リーダブルテストコード 〜メンテナンスしやすい テストコードを作成する方法を考える〜 #DevSumi #DevSumiB / Readable test code
nihonbuson
11
5.8k
組織貢献をするフリーランスエンジニアという生き方
n_takehata
1
1k
Classmethod AI Talks(CATs) #15 司会進行スライド(2025.02.06) / classmethod-ai-talks-aka-cats_moderator-slides_vol15_2025-02-06
shinyaa31
0
170
君も受託系GISエンジニアにならないか
sudataka
1
370
AWSでRAGを実現する上で感じた3つの大事なこと
ymae
3
1k
現場の種を事業の芽にする - エンジニア主導のイノベーションを事業戦略に装着する方法 -
kzkmaeda
2
1.5k
事業継続を支える自動テストの考え方
tsuemura
0
300
Kubernetes x k6 で負荷試験基盤を開発して 負荷試験を民主化した話 / Kubernetes x k6
sansan_randd
2
730
これからSREになる人と、これからもSREをやっていく人へ
masayoshi
6
4.1k
君はPostScriptなウィンドウシステム 「NeWS」をご存知か?/sunnews
koyhoge
0
720
7日間でハッキングをはじめる本をはじめてみませんか?_ITエンジニア本大賞2025
nomizone
2
1.4k
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.5k
Making the Leap to Tech Lead
cromwellryan
133
9.1k
YesSQL, Process and Tooling at Scale
rocio
171
14k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.8k
What's in a price? How to price your products and services
michaelherold
244
12k
How STYLIGHT went responsive
nonsquared
98
5.3k
We Have a Design System, Now What?
morganepeng
51
7.4k
Building Better People: How to give real-time feedback that sticks.
wjessup
366
19k
Automating Front-end Workflow
addyosmani
1367
200k
RailsConf 2023
tenderlove
29
1k
Product Roadmaps are Hard
iamctodd
PRO
50
11k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
20
2.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つ