Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ECS移設におけるShoryuken導入の経緯と葛藤について / ginzarails_vol...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
リンクアンドモチベーション
PRO
June 18, 2021
Technology
1.3k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ECS移設におけるShoryuken導入の経緯と葛藤について / ginzarails_vol34_presentation
銀座Rails#34 登壇資料
リンクアンドモチベーション
PRO
June 18, 2021
More Decks by リンクアンドモチベーション
See All by リンクアンドモチベーション
非開発組織のDX推進 ―― AI時代こそ「要件定義」が勝負
lmi
PRO
0
42
全社員がAIを「使う」の次へ ーノンエンジニア1,500人が安全に業務を作り変えるゴールデンパスとガードレール
lmi
PRO
2
1.8k
2年で50%しか進まなかった1,500ファイルの型付けを、3週間で片付けた話
lmi
PRO
0
100
「React でいいじゃん」と思ってた私が、「Vue 熱いじゃん」ってなった話
lmi
PRO
1
370
「AIがあれば越境できる」と思ったら、 AI Slopの山ができた
lmi
PRO
1
420
上司のダメ出しを全部AIに食わせ続けたら、 最強の相棒になってきた話
lmi
PRO
0
60
ペーペーのPdMがドペーペーの開発者になったら、見えた世界
lmi
PRO
0
68
AIに仕事を任せたら、レビューが増えた
lmi
PRO
0
70
AIが迷わず動ける環境をつくったら、 RPA開発が爆速になった話 / 20260819 田町.ai #2 LT大会
lmi
PRO
0
36
Other Decks in Technology
See All in Technology
Why Agent Cost Needs Observability
nttcom
0
170
事業課題から技術的負債に向き合う
sansantech
PRO
2
2.4k
Lambda MicroVMsは常駐サーバーの代わりに なるか? Kiro Crew を動かして検証してみた / Kiro Crew on Lambda MicroVMs
k_adachi_01
2
230
高負荷プロダクション環境におけるAWS Lambdaのリアル 〜スケールとコストを左右する実行ライフサイクルの技術仕様〜
maimyyym
2
640
認知負荷を吸収し、プロダクトをまたぐPR Preview基盤の設計事例
taiki45
2
360
リアーキテクチャ後の障害ゼロを目指したShadow Testingの取り組み
nihonbuson
PRO
1
180
AIエージェントを安全で速い現場監督にする:Jev・Obsidian・メタハーネス
x5gtrn
PRO
0
120
GoのInterface内部構造から学ぶ!最高パフォーマンスを出すコード設計
yappli_developers
1
300
手を動かして実感する、Kiro が変える開発体験
inariku
0
370
AIに書かせて、プラットフォームで縛る ― EKSプラットフォームで実践した責任境界と権限設計
elmodev09
0
610
作って終わりじゃないサーバーレス 〜9年運用する大規模EC物流API基盤の設計・運用のリアル〜
zozotech
PRO
0
540
AI感のないAWS構成図をAIエージェントに描かせたい!
sagochiko
2
400
Featured
See All Featured
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
920
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
540
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
240
Testing 201, or: Great Expectations
jmmastey
46
8.3k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
420
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
The browser strikes back
jonoalderson
0
1.7k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
440
It's Worth the Effort
3n
188
29k
Transcript
ECS移設におけるShoryuken導入の 経緯と葛藤について 株式会社リンクアンドモチベーション 岸本直樹
自己紹介 氏名: 岸本直樹 出身 経歴 職歴 趣味・特技 愛知県名古屋市 2019年 リンクアンドモチベーション入社
2019年 モチベーションクラウド新機能開発 2020年 SREチーム JOIN 2020年 セキュリティ強化対応 2021年 ECS移設対応 TikTok鑑賞・Apex
今日話すこと ECS移設に伴い、 非同期処理のライブラリを 見直すことになりました。 その過程で起きた 意思決定と課題についてお話します。
ECS移設の背景
ECS移設の背景
ECS移設の背景 ICE BLOCK INK BLOT INTER LINK IDLE LINK 期待:
高 習熟度: 低 | 弱み 期待: 低 習熟度: 低 | やらない 期待: 高 習熟度: 高 | 強み 期待: 低 習熟度: 高 | やらない 2. 変更のリードタイム 1. デプロイ頻度 期待 習熟度 3. 平均修復時間(MTTR) 4. 変更失敗率 14. ソースコードの明確さ 6. インシデントレート Nothing Low Middle High High Middle Low Nothing 7. インシデント再発防止 12. セキュリティリスク 18. 疎結合アーキテクチャ 19. モニタリング 20. セキュリティシフトレフト 8. 生産性に影響する不具合
ECS移設の背景 12. セキュリティリスク Before After リリース作業の リードタイム 2時間-3時間 MTTR(切り戻し) 1時間
リリース作業の リードタイム 30分 ※1/6に短縮 MTTR(切り戻し) 10分 ※1/6に短縮 ▼想定アウトカム/先行指標
ECS移設の背景 12. セキュリティリスク Before After リリース作業の リードタイム 2時間-3時間 MTTR(切り戻し) 1時間
リリース作業の リードタイム 30分 ※1/6に短縮 MTTR(切り戻し) 10分 ※1/6に短縮 ▼想定アウトカム/先行指標 デプロイ頻度 10回/月 メンテナンス時間 6時間/月 デプロイ頻度 20回/月 ※2倍に増加 メンテナンス時間 0時間 ※メンテフリー ▼想定アウトカム/遅行指標
ECS移設における課題 これまでは非同期処理に、 EB用のactive-elastic-jobというgemを利用。 ECS移設に伴い、代替するgemを検討することになる。 https://github.com/active-elastic-job/active-elastic-job
Worker要件整理 主な要件 概要 詳細 ジョブ実行の担保 • リトライ処理 • ロストリスク低減 •
エラーハンドリング パフォーマンス • 最大同時ジョブ処理数の担保 概要 詳細 コスト • 移行コスト • メンテナンスコスト Must Want
非同期処理要件整理 Workerの比較 Worker Queuing リトライ処理 (must) ロストリスク (must) エラーハンドリング (must)
パフォーマンス (want) 移行/運用コスト (want) Sidekiq Redis ◯ △(※) ※Sidekiq Pro では担保される ◯ ◯ △ Resque Redis ☓ ☓ ◯ △ △ Shoryuken AWS SQS ◯ ◯ △(※) ※一部課題あり ◯ ◯ 主にロストリスクとコスト(移行/運用)の観点でShoryukenが選択肢にあがった。
Shoryukenとは?
Shoryukenとは? 概要: 「AWS SQS」からジョブ取り出すワーカーを 簡単に作成することができるGem メリット: ・ジョブが失われるリスクがない ・Active Jobが使える デメリット:
・日本では導入事例や記事が少ない https://github.com/ruby-shoryuken/shoryuken
Shoryuken導入の課題 1.Logging 2. Testing 3. Resource
Shoryuken導入の課題 1.Logging 2. Testing 3. Resource
Shoryuken導入の課題 特定アプリケーションにおけるロギング課題 Active Elastic Job Shoryuken pumaプロセスでエラーをキャッチし、 エラーログをSentryに送信。 sqs daemon
puma EB
Shoryuken導入の課題 特定アプリケーションにおけるロギング課題 Active Elastic Job Shoryuken pumaプロセスでエラーをキャッチし、 エラーログをSentryに送信。 pumaプロセスとは別に、Shoryukenプ ロセスが起動。これまでのエラーハンド
リングではエラーログをSentryに送信で きないことが判明。 sqs daemon puma EB ECS エラー 検知実装 puma
Shoryuken導入の課題 特定アプリケーションにおけるロギング課題 解決方法:エラー発生時にログを出力するよう独自実装 • 関数 • 各エラーに応じて、エラーログ作成
Shoryuken導入の課題 1.Logging 2. Testing 3. Resource
Shoryuken導入の課題 非同期処理のテスト課題 ActiveJobを使用可能→ ActiveJob::TestHelperを使用し、実装 Shoryukenを用いてテストコードを書く際、 Shoryuken Shoryuken pollingから処理実行までを自動テストで担保
Shoryuken導入の課題 1.Logging 2. Testing 3. Resource
Shoryuken導入の課題 リソース効率課題 Shoryukenは1プロセスマルチスレッドベースで設計されているため工夫が必要。
Shoryuken導入の課題 リソース効率課題 Shoryukenは1プロセスマルチスレッドベースで設計されているため工夫が必要。 1. コンテナ数をCPUコア数に合わせる 2.プロセス数をCPUコア数に合わせる プロセス プロセス プロセス インスタンス
コア コア コア CPU docker docker docker データプレーン層 コア コア コア CPU
Shoryuken導入後の結果
Shoryuken導入後の結果 ECS移設後Shoryuken含め、安定稼働 🎉 🎉
Shoryuken導入後の結果 Shoryukenは使いにくい? 1. Shoryuken での設定値の共有がイマイチ 2. 100万トランザクションは簡単に突破しそう 3. 個人で開発された gem
である
Shoryuken導入後の結果
Shoryuken導入後の結果 環境変数を利用することで回避した
Shoryuken導入後の結果
Shoryuken導入後の結果 SQS利用による金額コストは予算内だった
Shoryuken導入後の結果
Shoryuken導入後の結果 複数の企業で利用実績がある
Shoryuken導入後の結果 Shoryukenはオープンソース。 Contributorとして、開発で必要な時は自ら修正できる。
最後に We Are Hiring!! https://www.wantedly.com/companies/lmi