Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Cookpad Lounge #4 SRE 座談会 コンテナ中心の構成からサーバーレスへの展望 / From containers to serverless
Kohei Suzuki
June 16, 2021
Technology
0
330
Cookpad Lounge #4 SRE 座談会 コンテナ中心の構成からサーバーレスへの展望 / From containers to serverless
https://cookpad.connpass.com/event/215427/
Kohei Suzuki
June 16, 2021
Tweet
Share
More Decks by Kohei Suzuki
See All by Kohei Suzuki
少人数でも運用できるインフラ作り / Operating infrastructure with less effort
eagletmt
1
2.2k
Cookpad Tech Kitchen #20 Amazon ECS の安定運用 / Building a steady ECS infrastructure
eagletmt
1
2.2k
クックパッドでの Webアプリケーション開発 2017 / Web application development in Cookpad 2017
eagletmt
20
9.1k
ECS を利用したデプロイ環境
eagletmt
12
5.8k
ActiveRecord 3.2 -> 4.1
eagletmt
3
1.3k
クックパッドにおける Rubyの活用
eagletmt
0
440
複数DBとRails
eagletmt
14
6.6k
R/W Splitting in Rails
eagletmt
2
1.2k
Other Decks in Technology
See All in Technology
2022年度新卒技術研修「良いコードの書き方」講義
excitejp
PRO
0
300
SlackBotで あらゆる業務を自動化。問い合わせ〜DevOpsまで #CODT2022
kogatakanori
0
790
ソフトウェアテスト 2022 / Software Testing 2022
ak1210
1
1.8k
JAWS-UG re:Habilitaion 報告 / JAWS-UG OITA rehabilitation
hiranofumio
0
120
誰が正解を知っているのか / Who knows the right answer
takaking22
1
230
Azure Arc Virtual MachineとAzure Arc Resource Bridge / VM provisioning through Azure portal on Azure Stack HCI (preview)
sashizaki
0
120
20220622_FinJAWS_あのときにAWSがあったらこうできた
taketakekaho
0
110
OpsJAWS Meetup21 システム運用アンチパターンのすすめ
yoshiiryo1
0
1.4k
Meet passkeys
satotakeshi
1
110
Lessons Learned from Scaling Infrastructure as Code
joatmon08
0
790
DeepL の用語集が(いつのまにか)日本語に対応してたので試してみた
irokawah0
0
120
データ分析で切り拓け! エンジニアとしてのデータ分析職キャリア戦略
ksnt
0
110
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
780
250k
BBQ
matthewcrist
74
7.9k
Building Flexible Design Systems
yeseniaperezcruz
310
34k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
269
11k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
100
5.9k
Optimizing for Happiness
mojombo
365
63k
A Tale of Four Properties
chriscoyier
149
21k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
19
1.4k
Building Adaptive Systems
keathley
25
1.1k
Music & Morning Musume
bryan
35
4.2k
Fireside Chat
paigeccino
12
1.3k
Documentation Writing (for coders)
carmenhchung
48
2.6k
Transcript
Cookpad Lounge #4 コンテナ中心の構成からサーバーレスへの展望
アプリケーション実行基盤
アプリケーション実行基盤 - ほとんどが ECS - リバースプロキシ、Rails アプリ、Go・Java・Python アプリ、Chatbot、etc. - Kuroko2、Barbeque
を使ってオフラインジョブをスケジュールし ECS タスクを起動 - https://techlife.cookpad.com/entry/2016/09/09/235007 - 一部 Lambda - API Gateway + Lambda + DynamoDB のようないわゆるサーバレスアプリ - Alexa Skill のようなケースも - 海外のチームでは EKS の導入も進んでいる
ECS コンテナインスタンス - ほとんどが EC2 - ほとんどがスポットインスタンス、一部オンデマンドインスタンス - 一部 に
Fargate (Spot) - CPU やメモリを多く必要とするバッチジョブ - 機械学習系に多い - ファイルシステムの I/O が非常に激しいケースなど
EC2 インスタンス (月別)
課題感 - ほとんどのワークロードはコンテナに乗ったし、スポットインスタンスもかなり活 用できている - 本当にすべてのアプリがコンテナを使うことが最適なのか? - スタッフがたまに平日の昼間にアクセスするような社内アプリを 24時間365日動き続けるコンテ ナで捌く必要があるのか
? - バッチジョブのキャパシティ予測は非常に難しく、 EC2 インスタンスのオートスケールをがんばる より Lambda で実行したほうが安定する上に安価ではないか ?
コンテナ化、スポット化のその先
コンテナ化、スポット化のその先 - 改善したいこと: - (とくに小規模、スタッフ向けのサービスの ) コスト最適化 - 運用負荷の軽減 -
ECS から EKS に移行したい…… ではなく - サーバレスの技術を部分的に取り込んでいくことが重要なのではないか
サーバレスとは 自分の考え: - リソースではなく使用に対する料金体系であること - ELB、EC2、RDS、ElastiCache ではなく API Gateway、Lambda、DynamoDB、そして SQS
等 - 使われなければ料金がかからない - リソースのメンテナンスをせずに済むもの - EC2、RDS、ElastiCache は定期的にメンテナンスが発生するし、バージョンアップも必要 - メンテナンスタスクを言語のランタイムやライブラリの更新程度に抑えたい
サーバレスへの展望 - 部分的にサーバレスを導入したい - レシピサービス (cookpad.com) の全トラフィックをサーバレスで ! とかやっても大変なだけで旨 みは小さい
- バッチジョブを実行する基盤の運用負荷を減らしたい - EventBridge でスケジュールして SQS や SNS を通しつつ Lambda でバッチ処理できないか - Kuroko2、Barbeque の負担を減らせないか - オートスケールに悩まずに実行できないか
既存インフラとの連携 - サービスメッシュを活用できない - Lambda Extension でどうにかできる? - App Mesh
の Lambda 連携の話はどうなっているんだろう …… https://github.com/aws/aws-app-mesh-roadmap/issues/33 - gRPC サーバを作れない - API Gateway の機能追加か gRPC 向けの API Gateway っぽいサービスが欲しい
サーバレスアプリの運用 - デプロイはどうしよう - CDK に注目していて、CDK でデプロイするケースが増えてきている - モニタリングはどうしよう -
AWS が提供する building block を色々組み合わせたシステムになりがち (a.k.a. ピタゴラス イッチ) - CloudWatch Logs 見るの大変じゃない ? - 主要なメトリクスを一覧できるダッシュボードが自動でほしい - ECS 環境では hako-console で実現できている https://techlife.cookpad.com/entry/2019/07/24/113835
サーバレスアプリの開発 - 手元での開発どうしよう - コンテナサポートと Lambda Runtime Interface Emulator (RIE)
で楽になってきている - SAM CLI が CDK をサポートし始めて sam local invoke 等を使えるようになった - 本番デプロイ前の動作確認はどうしよう - つい先日の公式ブログ記事で sandbox developer account にデプロイする方法が紹介されて いる https://aws.amazon.com/blogs/compute/getting-started-with-serverless-for-developers-p art-5-sandbox-developer-account/ - クックパッドにも dev アカウントと呼ばれている開発者なら誰でも自由に使える AWS アカウント があり、そこにデプロイして動作確認することもある
We are hiring https://cookpad.jobs