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
Amazon Aurora Serverless v2 移行への道
Search
CREATIVE SURVEY Inc.
July 04, 2023
Technology
0
210
Amazon Aurora Serverless v2 移行への道
第31回 ちょっぴり DD / AWS Dev Day 2023 Tokyo 延長戦の資料です。
CREATIVE SURVEY Inc.
July 04, 2023
Tweet
Share
More Decks by CREATIVE SURVEY Inc.
See All by CREATIVE SURVEY Inc.
クリエイティブサーベイ社でのStreamlit活用事例
creativesurvey
0
64
STI導入で開発スピードアップ!一元管理で外部連携をスムーズに
creativesurvey
0
25
新規機能の開発における_早く価値を届ける開発の取り組み.pdf
creativesurvey
0
99
入社1ヶ月目でSREチームの方針と あり方を見直している話
creativesurvey
0
950
データマネジメント新年会 〜去年のしくじりを共有し、正月ボケを解消する〜
creativesurvey
1
280
Agile Tech Talk vol.1 「プロダクトの革新を支えた開発組織づくり」
creativesurvey
0
38
フルリモート経験しかない エンジニアがはじめてのRubyKaigiにオフラインで 参加してみた
creativesurvey
0
110
【Sansan元開発責任者×フォーデジットCEO】エンジニアの"非連続なキャリア"へのチャレンジ
creativesurvey
0
270
CREATIVE SURVEY Inc. / Company Profile
creativesurvey
0
8.2k
Other Decks in Technology
See All in Technology
開発パフォーマンスを最大化するための開発体制
ham0215
2
450
Compose Compiler Metricsを使った実践的なコードレビュー
tomorrowkey
1
220
どうするコスト最適化のトレードオフ
tetsuyaooooo
1
550
R3のコードから見る実践LINQ実装最適化・コンカレントプログラミング実例
neuecc
2
210
プロンプトエンジニアリングでがんばらない-Agentic Workflow へ-近藤憲児
kenjikondobai
4
980
一生覚えておきたい「システム開発=コミュニケーション」〜初めての実務案件振り返りLT〜
maimyyym
1
170
Building a RAG-poweredAI chat appwith Python and VS Code
pamelafox
0
110
TechFeed Experts Night#27 〜 フロントエンドフレームワーク最前線 (Svelte)
baseballyama
1
540
Cracking the KubeCon CfP
inductor
2
250
GrafanaMeetup_AmazonManagedGrafanaのアクセス制御機能とマルチテナント環境下でのアクセス制御について
daitak
0
260
GraphQL 成熟度モデルの紹介と、プロダクトに当てはめた事例 / GraphQL maturity model
mh4gf
7
1.4k
Postman v10リリース後を振り返る / Looking back at Postman v10 after release
yokawasa
1
160
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
6.9k
The Cost Of JavaScript in 2023
addyosmani
16
3.9k
Side Projects
sachag
451
41k
Optimizing for Happiness
mojombo
370
69k
GraphQLの誤解/rethinking-graphql
sonatard
50
9.2k
Bash Introduction
62gerente
604
210k
Designing for humans not robots
tammielis
248
25k
What the flash - Photography Introduction
edds
64
11k
RailsConf 2023
tenderlove
4
540
Bootstrapping a Software Product
garrettdimon
PRO
302
110k
Product Roadmaps are Hard
iamctodd
44
9.7k
jQuery: Nuts, Bolts and Bling
dougneiner
59
7.1k
Transcript
第31回 ちょっぴり DD / AWS Dev Day 2023 Tokyo 延長戦
Amazon Aurora Serverless v2 移行への道 2023.06.29
自己紹介 鈴木康寛 クリエイティブサーベイ株式会社 CTO 2013年にSansan入社。 webアプリケーションエンジニアとして、 Eightの開発に従 事。サーバーレスアーキテクチャを用いた、リコメンデー ションサービスに関して、 2017
AWS Dev Dayにて登 壇。 その後、エンジニアリングマネージャーの経験を経て、昨 年6月より現職。 yasuzukisan
None
今年よりSansanグループに参画
ミッション 顧客の声を機会に変える
アンケートサービスの特性 大規模なスパイク
スケーラビリティとの戦い 2022/6: CTO就任 2022/6〜: 諸々の技術的負債への対応 • Ruby/Rails/MySQLバージョンアップ • 開発環境のコンテナ化 •
CI / CDパイプライン整備によるデプロイの自動化 2022/12: EC2ベースからECS on Fargateベースになり、オートスケーリン グが可能に
データベースの変遷 2022/6〜: MySQLバージョンアップ • 5.7から8.0へ • DATETIME型の比較で明示的にCASTが必要だった • 上記対応をして5.7系の環境に事前にバックポート 2022/12:
RDS for MySQL から Amazon Auroraへ移行 • Aurora MySQL version 3.02.1
Auroraの利用状況 • プロビジョニングされたインスタンス • インスタンスタイプ: db.r6g.4xlarge 平常時はCPU負荷10%以下
DBもオートスケーリング できないか? 🤔
Aurora Serverless v2
要件の確認 • Serverless V1よりもスケーリングの応答性が高く、高可用性 • Aurora MySQL version 3.02.1 のため、移行可能
• 同等性能(ACU換算)では、プロビジョニングされたインスタンスよりも 高価 ◦ アンケートサービスの特性にマッチ
切り替え方法は? • Amazon Aurora Blue/Green Deployments • 昨年のRe:Inventで発表 ◦ 使えるなら使いたい
• 1分程度のダウンタイムで本番DBへ昇格 ◦ 顧客影響を最小限に
ということで、 無事移行できました 🎉
Blue/Greenデプロイメントの事前準備 • サービスの停止を伴うもの ◦ binlogの設定を変更 ▪ `binlog_format`のパラメータ値をMIXEDに変更 • サービスの停止を伴わないもの ◦
Blue/Green の構成 ▪ Green環境を Serverless v2に変更 ◦ Terraformの微修正 ▪ 構成管理上の軽微なもの
Blue/Green環境構築コスト • 一時的にGreen環境のインスタンスを立ち上げる必要がありコストが かかる 準備作業により、コ スト増 移行後
Blue/Greenデプロイメントの実施 • 事前準備を済ませ、AWSコンソール上からスイッチオーバー ◦ 1,2分で切り替え完了し、Serverless v2のDBが適用 • 移行時の苦労話は? ◦ 特に苦労はなかった
◦ Terraform の構成管理についても事前対応のおかげで、運用が 変わることはなかった
移行後の影響(コスト) • 1日あたりの平均コスト ◦ $136 -> $101 (約25.7%削減) 日によっては 移行前よりも増加
移行後コスト減
移行後の影響(パフォーマンス) • SLIとして設定していた、p90, p99のLatencyが悪化 ◦ 事前の性能検証で影響範囲ないと想定 ◦ p99に関してはより顕著な影響 移行後にLatency悪化
移行後の運用 • ACU(Aurora Capacity Unit)について ◦ Serverless v2のキャパシティ単位 ◦ 1ACU当り、2GiBのメモリに相当
◦ 移行前のdb.r6g.4xlarge相当は、64ACU • ACUの設定 ◦ Min ACU: 2 ◦ Max ACU: 64 ▪ 移行前のインスタンスと同等性能に設定
移行後の問題点 • 移行当初の問題 ◦ Min: 0.5ACUにしていたため、負荷に追従しきれなかった ◦ パフォーマンスインサイトの設定を有効にしているため、推奨値の Min ACU:
2に設定 • 定期的にフェイルオーバーが発生 ◦ サービス影響は軽微ではある ◦ サポートに問い合わせ、AWS側の問題である可能性 ◦ Auroraのバージョンが若干古いことに起因?
今後について • データベースアクセスのチューニングが必要 ◦ 過剰なスペックのDBを利用していたことで問題が隠蔽 • SLIの妥当性検証 ◦ p99のLatencyについて再考が必要 •
フェイルオーバーへの対策 ◦ Auroraのバージョンを最新化(3.03.1)して様子見 ▪ Blue/Greenデプロイメントを活用
まとめ 📝
まとめ • 通常時とピーク時のアクセス特性が大きく異なるアプリケーションにお いてAurora Serverless v2は有用な選択肢 • Blue/Green DeploymentsによるDBの構成変更が容易に •
オートスケールする仕組みだからこそ、DBのパフォーマンスチューニン グは不可避