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
どちらかだけじゃもったいないかも? ECSとEKSを適材適所で併用するメリット、運用課題とそれ...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
tk3fftk
February 28, 2025
Technology
1.1k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
どちらかだけじゃもったいないかも? ECSとEKSを適材適所で併用するメリット、運用課題とそれらの対応について
JAWS DAYS 2025
https://jawsdays2025.jaws-ug.jp/sessions/A-12
tk3fftk
February 28, 2025
More Decks by tk3fftk
See All by tk3fftk
Claude Team Plan導入・ガイド
tk3fftk
0
250
地域 SRE コミュニティ最前線 - ホンマでっかSRE勉強会
tk3fftk
0
290
どこまでゆるくて許されるのか
tk3fftk
0
540
セキュリティの専門家じゃなくてもできる。「セキュリティ意識」をアップデートして サプライチェーン攻撃への耐性を高めよう。
tk3fftk
5
1.2k
TROCCOで始めるクラウドコストを民主化するためのFinOps
tk3fftk
3
710
障害対応のRunbookは作った、でも本当に動くの? AWS FIS で EKS の AZ 障害を再現してみた
tk3fftk
1
170
AWSの資格って役に立つの?
tk3fftk
2
410
ヘルシーSRE
tk3fftk
2
370
セキュアなAI活用のためのLiteLLMの可能性
tk3fftk
5
3.1k
Other Decks in Technology
See All in Technology
MIRU 2026 チュートリアル
keisuke198619
0
620
クラウドを使う側から、作る側へ / 大吉祥寺.pm 2026前夜祭
fujiwara3
8
2k
AIQAのナレッジ構築について
qatonchan
1
140
Claude Code並行開発環境の ムダ‧ムラ‧ムリを見直した話
muranakaaa
2
400
DevOps Agentで運用判断をチーム資産にする~Agent InstructionsとAgent Skillを継続的に育てる~
fujioka6789
0
200
データ組織の転換期 一足飛びしない段階的戦略
leveragestech
PRO
0
140
13年運用タイトルのサーバーサイドが辿り着いた現在地 ― モンスターストライクにおける技術・組織・AI活用から得た知見
mixi_engineers
PRO
1
400
データエンジニアこそ組織のオントロジーに向き合うべき — 問いに答えるAIから、事業を動かすAIへ
gappy50
7
3.1k
実践が先生だった— 新卒サーバーエンジニア1年目のリアル
mixi_engineers
PRO
0
230
AI駆動開発は個人技からチーム戦へ:組織でAIを使いこなすための実践設計
moongift
PRO
0
410
【CEDEC2026】『GRANBLUE FANTASY: Relink - Endless Ragnarok』のバトル制作事例 ~最高のキャラゲーを目指して~
cygames
PRO
0
110
Redmine 7.0 新機能・機能強化解説(OSC2026京都ダイジェスト版)
vividtone
1
120
Featured
See All Featured
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
270
How GitHub (no longer) Works
holman
316
150k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
420
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
How to Talk to Developers About Accessibility
jct
2
470
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
590
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
470
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Transcript
どちらかだけじゃもったいないかも? ECSとEKSを適材適所で併用するメリット、運用課題とそれらの対応について primeNumber Inc. Hiroki Takatsuka (@tk3fftk) ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a
1
1. はじめに 2. ECSとEKSの一般的な話 3. TROCCO®について 4. TROCCO® on ECS
“and” EKS 5. まとめ 6. EKS Auto Mode 目次 ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a 2
髙塚広貴 (@tk3fftk) 株式会社primeNumber プロダクト開発本部 Head of SRE • ヤフー株式会社 (2016
~ 2022) ◦ CI/CDプラットフォーム Screwdriver.cd SREチームの スクラムマスターやEM • 株式会社primeNumber (2022 ~ ) ◦ TROCCO®/COMETA®のSRE, EM, たまにSecurity • 猫🐈 ◦ アルくん (アビシニアン ♂ 4歳) 自己紹介 ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a 3
ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a 4 今日の発表で伝えたいこと • ワークロードによってはECS “and” EKSの選択肢もありかも? ◦
絶対良い、ではなくあくまで選択肢の提示🚀 ▪ ECS “and” EKSでサービス提供しているTROCCO®の運用経験を通じて説明します • ECS “and” EKSのアーキテクチャについて「アーキテクチャConference 2024」 における弊社CTO室中根さんの発表の一部を深堀りする connecting the dots ◦ PaaSとSaaSの境目で信頼性と開発速度を両立する 〜TROCCO®のこれまでとこれから〜
ECSとEKSの一般的な話 ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a 5
• 単純な構成で動かすなら運用管理はかなりシンプル • フルマネージド型のコンテナオーケストレーションサービス ◦ コンテナの配置・スケジューリングをAWSが完全に管理 ◦ ≒ 開発者はアプリケーション開発に集中できる •
他AWSサービスとの統合が容易 ◦ Elastic Load BalancingやCloudWatchと連携し、自動スケーリングや監視 ◦ IAMによるきめ細かいアクセス制御やVPCとの統合でセキュリティを強化 • 複数のデプロイ先オプション ◦ Amazon EC2, AWS Fargate, ECS Anywhere [おさらい] Amazon Elastic Container Service (ECS) ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a 6
• 拡張性が高くオープンソースのエコシステムも利用できるが、管理は複雑 • マネージド Kubernetes (k8s) サービス ◦ Control PlaneはAWSが完全管理
◦ インプレースアップデートに対応 ◦ k8s主要コンポーネントやAWSサービスとの連携のためのコンポーネントは EKSアドオンとして提供され、管理が容易 • 複数のデプロイ先オプション ◦ Amazon EC2, AWS Fargate, Hybrid Node, EKS Anywhere, Auto Mode… ※ EKSのロゴは ですがECS との差分がKだけなのでk8sのロゴ を使います [おさらい] Amazon Elastic Kubernetes Service (EKS) ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a 7
AWSの見解としては以下の通り • ざっくり「シンプルだが拡張性が低いECS」vs「複雑だが拡張性が高いEKS」 • どちらかが全面的に優れているわけではない ◦ 「AWSでのコンテナサービスの選択は、二者択一である必要はありません」 ◦ 「ワークロード特性や好みで使い分けて。コンテナ化されてたら一方通行じゃないし」 ref:
Amazon ECS vs Amazon EKS: making sense of AWS container services (2020年の記事だからやや古いけど) ECS vs EKS ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a 8
ものすごーく単純化して比較表にしてみるとこんな感じ ECS vs EKS ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a 9 ECS EKS
拡張性 低 高 👍 学習コスト 低 👍 高 運用コスト 低 👍 高
ワークロードによっては、併用することで EKSの高い拡張性を享受しつつ学習コストや運用コストをカバーできるのでは? ECS ECS and EKS EKS 拡張性 低 高
👍 高 👍 学習コスト 低 👍 中 高 運用コスト 低 👍 中 高 ECS “and” EKS は…? ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a10
TROCCO®について ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a11
TROCCO® について ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a 点在するデータの「統合」を自動化 「統合」を軸にデータ基盤の構築や運用を支援するSaaSプロダクト データをビジネスに活用するまでのステップ 12
メインの機能であるデータ転送について ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a13
UIで転送の設定を作成 ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a14 TROCCO®のUIフォーム データ転送機能の概要
TROCCO®のUIフォーム 転送実行時に、入力情報を元にEmbulkのYAMLを作成 ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a15 Embulkのconfig.yml データ転送機能の概要
ジョブ実行の単位でコンテナが立ち上がり、終了時に破棄 ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a16 データ転送機能の概要 データ転送ジョブのフロー TROCCO®のジョブ画面 PaaSとSaaSの境目で信頼性と開発速度を両立する 〜TROCCO®のこれまでとこれから〜
TROCCO®のジョブ基盤のワークロード特性 ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a17 データ転送機能の概要 • 一日あたり20万以上のデータ転送ジョブが実行される • 毎時00分と30分にスパイク (スケジュール設定されやすいため)
• 1日の中では午前1時頃がピーク • 24/365でジョブが動いている ここが約1日
TROCCO®のアーキテクチャ概観と アーキテクチャ改善の歴史について ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a18
• ユーザーがジョブの設定を行うAPI/UI • データ転送ジョブを実行するジョブ基盤 TROCCO®は大きく2つのコンポーネントに分けられる ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a19 アーキテクチャ概観 アーキテクチャ概観を抽象化したもの
• TROCCO®はAPI/UIのトラフィックは比較的少ないサービス • 一方、ジョブ基盤は高い信頼性を求められる ◦ 常に何かしらのジョブが動いている状態 ◦ 指定した時間にジョブが動くことの保証 ◦ 基盤起因でジョブが失敗しないこと
...など コアの価値提供したい(≒差別化したい)部分はジョブ基盤 ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a20
体制や技術的背景により、サービスローンチ当初はECSを使っていた ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a21 PaaSとSaaSの境目で信頼性と開発速度を両立する 〜TROCCO®のこれまでとこれから〜 より
コアの価値提供したい部分をEKSに移行してスケーラビリティを高める ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a22 PaaSとSaaSの境目で信頼性と開発速度を両立する 〜TROCCO®のこれまでとこれから〜 より抜粋 スケールアウト スケールイン デプロイ
Before (ECS) After (EKS) ECS Task数 = 同時実行可能数 SQSへの流量を見てスケールアウトするなど試行錯誤 起動に時間がかかる 実行中のジョブがノード上に存在すると スケールインできない Lambdaを使ったりと原始的な手法で試行錯誤 実行に長時間かかっているジョブがあると、 そのECSタスクをローリングアップデートできず デプロイが一向に完了しない Cluster Autoscalerにより Jobを立ち上げるための Nodeリソースがないとスケールアウト Nodeが空いているとスケールイン 実行中のJobがある場合にも完了を待つ イメージタグを変えるだけでデプロイ可能に 実行中のJobがある場合にも影響を受けない
流れとしては「EKSに統一」となりそうだけど… ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a23
EKSへの統一は見送り ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a24 PaaSとSaaSの境目で信頼性と開発速度を両立する 〜TROCCO®のこれまでとこれから〜 より
EKS統一を見送った結果どうなったか ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a25
• ECS “and” EKSに移行した話は、筆者目線だと入社前に行われた話 • 筆者はオンプレk8sの世界から来たため入社時の感覚としては”EKSに統一したい”側 • 先のスライドの通り積極的に統一するモチベーションはなく、リソースも限られてい るので優先度は上がらずそのままで運用 •
運用を続けていくなかで「この構成意外とありかも…」となってきた💡 ECS “and” EKSってTROCCO®のワークロードにマッチしているのでは🤔 ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a26
TROCCO® on ECS “and” EKS ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a27
1. ジョブ基盤という単一の目的を持つEKSクラスタになる 2. ジョブ基盤の負荷がAPI/UIに直接的な影響を与えない (逆も同様) 3. inboundアクセスなしのPrivate Subnetに閉じているため信頼境界になる ECSとEKSを併用することで、EKSはコアの価値提供(ジョブ基盤)に特化できる ハッシュタグ:#jawsdays2025
#jawsug #jawsdays2025_a28
• EKS Version更新はジョブ基盤のことだけ考えればOK ◦ EKSカナリアリリースの仕組みを作った際にもAPI/UIのことは考慮不要だった • クラスタのスケーリングもジョブ基盤としてのリソースだけ見積もればよい • 運用ツールやちょっと動かしたい系も載せちゃえ、とならない ◦
3. のネットワーク分離の話も関連 ECSとEKSを併用することで、EKSはコアの価値提供(ジョブ基盤)に特化できる ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a29 1. ジョブ基盤という単一の目的を持つEKSクラスタになる
• EKSに統一していた場合、ノイジーネイバーが発生する可能性 ◦ 例: APIに高負荷がかかってスケールしたため、ジョブの起動が遅れる ◦ 例: 大量にジョブが動いていたため、APIがスケールできずエラー/デグレ発生 • ECS側にFargate
Spotを入れてtaskが中断されても実行中のジョブは影響なし ECSとEKSを併用することで、EKSはコアの価値提供(ジョブ基盤)に特化できる ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a30 2. ジョブ基盤の負荷がAPI/UIに直接的な影響を与えない (逆も同様)
• 一時的にではあるが、ジョブ基盤はユーザーが転送したいデータを保持する ◦ 外部からk8sリソースやNodeへアクセスできてしまうと情報漏洩リスク増 ◦ TROCCO®のVPCからのアクセスを許可して利用してもらうケースもある • ジョブ基盤に特化することでinboundアクセスを無くせている ◦ ネットワークレベルでの分離になるので、セキュリティ上の考慮事項を大幅削減
▪ (セキュリティチェックシートもコワクナイ) ECSとEKSを併用することで、EKSはコアの価値提供(ジョブ基盤)に特化できる ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a31 3. inboundアクセスなしのPrivate Subnetに閉じているため信頼境界になる
学習コスト・運用コストについて ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a32
• ECSがあることで、開発チームがクラウドインフラを触る敷居を下げられている ◦ 全員がいきなりEKSを扱えるようになる必要はない • EKSに関わる必要がある人を減らすことで、コスト増を抑えられている 学習コスト増…?いいえ、必ずしもそうではありません ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a33
全員がEKSをいきなり触るのは難しい ECSがあると段階を踏める
ECSはEKSと比較すると学習コストはかなり低い • シンプルな構成かつすでに動いているものがあるならなおさら低い ◦ TROCCO®ではecspressoを使っており、JSONを見ればある程度当たりがつく • ⚠ ただし、複雑なことをやろうとするとECSも学習コストが高くなってくる ◦ EKS(k8s)のほうがオープンソースのエコシステムが整っている
▪ オートスケールやサービスメッシュなど ▪ k8sであれば学習した内容の可搬性もある ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a34
ECSは運用コストもかなり低い ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a35 • Platform Versionのアップグレードも気づけば終わっているレベル • おかね的にもEKSと比べると安いので、スケーリングは多少大味でも良い ◦
TROCCO®ではリソース利用率ベースのオートスケールのみ ◦ オートスケールを作り込むコスト < 常時task数を増やす が合理的な場合もある • ⚠ ただし、複雑なことをやろうとするとECSも運用コストが高くなってくる
CI/CD (リリース) パイプラインについて ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a36
• ECSとEKSで動いているアプリのバージョンに差分があるタイミングで問題が発生す ることがある ◦ EKSに統一していたとしても発生する可能性のある問題 • ECSとEKSそれぞれにデプロイが必要なのでリリース/ロールバックに時間がかかる ◦ ロジックも2重で必要 ECSとEKSで動いているコンポーネントの依存関係を意識する必要がある
ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a37 リリースパイプライン(抜粋)
• TROCCO®ではSSM Parameter StoreをECSとEKSから参照している • それぞれクレデンシャルの更新反映タイミングが違う ◦ ECS: Update Service時に更新
◦ EKS: External Secrets OperatorでSecretsを定期更新、Pod再起動時に反映 👉 頻繁に更新するものではないため、ドキュメントを用意して運用でカバー ECSとEKS間のクレデンシャルの更新反映タイミングを意識する必要がある ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a38
CI/CDパイプラインは これから改善したいポイントのひとつ🚀 ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a39
まとめ ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a40
• TROCCO®はAPI/UIとジョブ基盤で構成されジョブ基盤に高い信頼性が要求される • 状況に応じた技術選定を行った結果、ECS “and” EKSのアーキテクチャが生まれた • ECSとEKSを併用することで、EKSはコアの価値提供(ジョブ基盤)に特化 • ECSとEKSを併用することで、学習・運用コストは抑えられる
• ECSとEKSを併用する場合、CI/CDパイプラインは検討の余地あり ワークロードによってはECS “and” EKSの選択肢もありかも? ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a41
こだわりや先入観を一度手放して、 日々変化していくプロダクトや状況に合わせて 技術選定を継続的に実施するのがよさそう💪 ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a42
EKS Auto Mode ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a43
• 2024年12月1日 (AWS re:Invent 2024) にリリースされたEKSの新機能 • つらいインフラ管理のほとんどが自動化される ◦ EKSバージョン更新、ノードスケーリング、EKSアドオン管理など
• Karpenterがデフォルトで含まれており、スケーリングはKarpenterベース ◦ KarpenterではEC2 APIを直接実行するためインスタンスの起動が高速 ◦ Karpenter自体もAuto Modeの管理対象なので管理不要 ▪ ユーザーはKarpenter設定用のマニフェストを書いてapplyするだけ ◦ ⚠ 何もPodが動いていなければ、0台までスケールインする • ⚠ Auto Modeで起動されたEC2インスタンスに対して追加コスト(12%)が発 生 • ⚠ EC2インスタンスのAMI指定やSSH接続等はできない [おさらい] EKS Auto Mode ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a44
• すでにマネジメントコンソールからの作成だとデフォルトで選択されている ◦ これから改善に注力されるであろうことは明らか [おさらい] EKS Auto Mode ハッシュタグ:#jawsdays2025 #jawsug
#jawsdays2025_a45
EKS Auto Mode はTROCCO®的にはこれからに期待🚀 ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a46 TROCCO®のジョブ基盤には(まだ)不向き • AMIが指定できない
👉 転送ジョブ用コンテナイメージを含むゴールデンAMIが指定不可 • 自動でノードがアップデートされる 👉 転送ジョブは途中で止めてしまうと問題があるが、強制終了する可能性 • 最低台数0台までスケールイン 👉 転送ジョブのリソース要求が始まる前にノードを用意しておきたい ▪ 常にover provisioningしておけばいいが、認知負荷↑ • 通常クラスタよりおねだんが高い💸 👉 ECS on Fargate部分を移行するにも too much
さいごに ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a47
48 We Are Hiring ! primeNumberではプロダクトづくりに携わるさまざまな職種を絶賛募集しております! まずは、お気軽にカジュアル面談からでも! (ボドゲカジュ面もあるよ🎲) 募集職種 ・Product
SRE ・Corporate SRE ・ソフトウェアエンジニア ・QAエンジニア ・エンジニアリングマネージャー ・PdM/PMM ・テクニカルライター ・デザイナー 採用サイト
None
EOP ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a50