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
休日・夜間のインスタンス自動停止をSREチームで運用してみた
Search
Konishi tatsuhiro
August 27, 2024
Technology
36
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
休日・夜間のインスタンス自動停止をSREチームで運用してみた
SRE meetup 〜サービス事業会社のSREが向き合う課題〜 の発表資料です。
https://wealthnavi.connpass.com/event/325100/
Konishi tatsuhiro
August 27, 2024
More Decks by Konishi tatsuhiro
See All by Konishi tatsuhiro
アラート疲れからの脱却 - リソースタグで仕分けるSlack通知戦略
tatsukoni
1
220
少人数SREチームが、長寿なシステムを構築・運用するための取り組み
tatsukoni
0
28
レガシー共有バッチ基盤への挑戦 - SREドリブンなリアーキテクチャリングの取り組み
tatsukoni
0
570
コンテナイメージ脆弱性検知の実践事例 ~ 基礎から応用まで ~
tatsukoni
0
74
ECSとEFSを組み合わせた Batchサーバー デプロイ方法の模索
tatsukoni
0
75
コンテナイメージを複数のチームで扱うための、ビルドフローの構築・運用
tatsukoni
0
180
手付かずだったSecurity Hub運用を改善した話
tatsukoni
0
47
Other Decks in Technology
See All in Technology
スプシの手作業からの解脱 ~更新はClaude Codeに、見せ方と使い方はGASアプリに任せる~
kentarofujii
0
160
React改造してみた
tsukina_7mochi
0
120
スキマバイトという雇用形態は存在しないので、雇用期間1日のアルバイト契約を事業者とワーカーが結ぶ手続きを支えるのがタイミーなんです
akitoshiga
0
210
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
930
DBについての基礎説明(MySQL編) - コロプラ 2026年度 新卒研修
colopl
0
130
価値について
gree_tech
PRO
0
100
DevelopersIO 2026 知識の地図を描く ─ オントロジーとは何か?
ishikawa_satoru
1
1.7k
QA4AI 2026-Oct 生成AI時代の品質保証
tokuty
1
890
M5Stackで作る BLEマウス GPSログの世界
tomokusaba
PRO
0
440
20261017福岡devIO 「AIは"良いダッシュボード"を作れるか?
jtakeda
0
190
アウトプット初心者、半年間のふりかえり
4o1sobblue
0
440
ウォンテッドリーの最近のプロダクトと技術の紹介
stomk
0
130
Featured
See All Featured
Statistics for Hackers
jakevdp
799
230k
Color Theory Basics | Prateek | Gurzu
gurzu
1
490
Darren the Foodie - Storyboard
khoart
PRO
4
4k
How to make the Groovebox
asonas
2
2.5k
How to train your dragon (web standard)
notwaldorf
96
6.9k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
590
Odyssey Design
rkendrick25
PRO
2
880
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
320
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
59k
Un-Boring Meetings
codingconduct
0
460
Designing Powerful Visuals for Engaging Learning
tmiket
1
610
4 Signs Your Business is Dying
shpigford
187
23k
Transcript
休日・夜間のインスタンス自動停止をSREチー ムで運用してみた 2024年08月27日 株式会社コドモン 小西達大 SRE meetup 〜サービス事業会社のSREが向き合う課題〜
2 経歴 1996年生まれ、大阪育ち。前職でアプリケーションエンジニアとし て従事後、株式会社コドモンのSREチームにジョイン。 関心のある分野はコンテナとセキュリティ。 自己紹介 小西 達大 こにし たつひろ
3 Mission
4 すべての先生に 子どもと向き合う 時間と心のゆとりを こんなプロダクトを開発しています メインプロダクトは、保育・教育施設向けWebアプリケーション。 保護者と施設のやり取りを支えるモバイルアプリケーションや、施設職員向けモバイル版 アプリケーション、外部サービスと連携するAPIなども開発しています。
5
6 今日話すこと 休日・夜間のインスタンス停止のすすめ インスタンス自動停止の基本的な実装方法 SREチームで運用するために工夫している点 1 2 3
7 休日・夜間のインスタンス停止のすすめ
8 CONFIDENTIAL - © 2022 CoDMON Inc. 8 休日・夜間のインスタンス停止の概要 •
土日祝・夜間など人が使わない時間帯で、従量課金されるインスタンス群を 停止することで、AWSコスト削減をねらう • EC2・RDS・ECS(停止ではなく稼働するタスク台数を0にする)などで実施 可能
9 CONFIDENTIAL - © 2022 CoDMON Inc. 9 コスト削減効果(例:Aurora MySQL)
運用方式 \ DBインスタンスクラス db.t4g.medium db.t4g.large db.r5.xlarge デフォルト(オンデマンドインスタ ンスを常時稼働) $81.36 $162 $504 リザーブドインスタンス購入(1年 間全額前払い) $59.16 $118.3 $284 土日24時間・平日00:00~08:00 イ ンスタンスを停止 $39.77 $79.2 $246.4 Aurora MySQL DBインスタンス1台を東京リージョンで運用した際の 月額金額比較 ※1カ月を30日・土日8日・祝日なし として計算 参照:https://aws.amazon.com/jp/rds/aurora/pricing/
10 CONFIDENTIAL - © 2022 CoDMON Inc. 10 休日・夜間のインスタンス停止の使いどころ •
リザーブドインスタンス・Savings Plans よりも高い費用削減効果が得られ る可能性がある ◦ RI・SPの費用節減率や、停止可能時間にもよるので計算が必要 • 運用(本番)環境はリザーブドインスタンス・Savings Plansを活用してコスト 削減し、開発環境では休日・夜間のインスタンス停止を活用する など使い分 けが重要
11 インスタンス自動停止の基本的な実装方法
12 CONFIDENTIAL - © 2022 CoDMON Inc. 12 インスタンス自動停止の基本的な実装方法 •
EventBridge Scheduler を用いて簡単に実装可能 ◦ 任意のスケジュール日時でAPIを実行することができる
13 CONFIDENTIAL - © 2022 CoDMON Inc. 13 EventBridge Schedulerから自動停止/起動を実施する
EC2 RDS ECS StartInstances StopInstances StartDBCluster / StartDBInstance StopDBCluster / StopDBInstance UpdateService ↓入力値 { "Cluster": "<ECSクラスター名>", "Service": "<ECSサービス名>", "DesiredCount": 0 / 任意のタスク数 }
14 CONFIDENTIAL - © 2022 CoDMON Inc. 14 複数のインスタンスを実行対象にしたい場合 •
RDS・ECSではEventBridge Schedulerのターゲットに複数のリソースを指 定することができない... ◦ AWS Step Functionsを利用して、複数リソースに対してAPIを実行可能 実行対象リソースを入力値で渡す 複数リソースに対してAPI実行
15 SREチームで運用するために工夫している点
16 CONFIDENTIAL - © 2022 CoDMON Inc. 16 前提 •
開発環境Auroraの自動停止について取り上げる • 各チームごとにAurora DBクラスターが存在し、それらの自動停止/起動を SREチームで運用している ◦ Aurora DBクラスターの新設・削除などは各チームに委ねられているので、SRE チームが全て把握はしていない
17 工夫1:多数のAurora DBクラスターを休日・夜間 に自動停止させる
18 CONFIDENTIAL - © 2022 CoDMON Inc. 18 やりたいこと •
各開発チームが所有するAurora DBクラスターを抜け漏れなく自動停止/起動 させたい ◦ ただし、特定のAurora DBクラスターを自動停止対象から除外したいケースも発 生するので、柔軟に対応できるようにしたい
19 CONFIDENTIAL - © 2022 CoDMON Inc. 19 実現方法 {
"Ignore_DbClusterIdentifiers": [ "対象外のAurora DBクラスター識別子名", … ] } 自動停止対象外のAurora DBクラス ター識別子名を入力値として渡す 全てのAurora DBクラスター 名を動的に取得 対象外DBはスキップ 対象DBは停止/起動API実行 対象かどうか確認
20 CONFIDENTIAL - © 2022 CoDMON Inc. 20 実現方法 •
最初に全てのAurora DBクラスター名を動的に取得しているので、新規DBが 増えても抜け漏れが発生しない • 対象外のAurora DBクラスター識別子名を渡す入力値箇所はコード管理して おり、柔軟に対応可能
21 工夫2:土日だけでなく、祝日もAuroraを自動停 止させる
22 CONFIDENTIAL - © 2022 CoDMON Inc. 22 やりたいこと •
土日だけでなく、祝日もAuroraを自動停止したい ◦ 祝日かどうかを判定する仕組みが必要
23 CONFIDENTIAL - © 2022 CoDMON Inc. 23 実現方法 •
AWS Systems Manager Change Calendar を利用する ◦ サードパーティのカレンダー(Google Calendars・Microsoft Outlook Calendars …)をインポートして、祝日を取り込む ◦ GetCalendarState というAPIを呼び出すことで、実行日が祝日かどうか判定可能
24 CONFIDENTIAL - © 2022 CoDMON Inc. 24 実現方法 ・月~金
08:00 自動起動 ・月~金 00:00 自動停止 実行日が祝日の場合、08:00 の自動起動をスキップ → 祝 日もAuroraを停止状態に
25 CONFIDENTIAL - © 2022 CoDMON Inc. 25 実現方法 ・月~金
08:00 自動起動 ・月~金 00:00 自動停止 実行日が祝日の場合、08:00 の自動起動をスキップ → 祝 日もAuroraを停止状態に Change Calendar更新作業が手間な場 合は、外部APIを実行して祝日取得 ~ 判 定する方法もある
26 まとめ
27 CONFIDENTIAL - © 2022 CoDMON Inc. 27 まとめ •
休日・夜間のインスタンス停止は、AWSコスト削減に効果がある • 自動停止/起動の仕組みは簡単に実装でき、要件に合わせてカスタマイズも可 能
28 最後に
29 コドモン採用ページ 開発ブログ コドモンでは一緒に働きたい仲間を募集しています!
None