2023年度、弊社サービス運用に最も貢献した機能は、この機能です!!!
~~~♪♪♪~~~(発表前の音楽)
「Aurora ブルーグリーンデプロイ」!!!
1. ビフォーアフター
Before
- 毎週火曜日は21時30分からアップデート作業
- メンテナンス状態にするためお客さんはサービスが使えない
- 平均でも終わるのは25時くらい
- エンジニアは殆ど全員居てデバッグなどする
- 眠い
After
- 毎週月曜日22時に少しだけ作業
- メンテナンス状態を15分間に短縮
- 火曜日21時でその週のアップデート終わり
- エンジニアは基本日中でデバッグを終える
- 21時から飲みに行ける、幸せ
- 上司(※部長 ※偉い)が最近生まれたBabyが寝る前に家に帰れる、ハッピー
2. ブルーグリーンデプロイのメリデメ
★メリット★
本番DBで数十分~数時間かかっていた巨大テーブルへのDDLを、グリーン環境に流してから切り替えることによって本番DBへの影響時間を切り替えにかかる数分のみに抑えられる。
もともとこれがメンテナンス状態にしなければいけない最大の理由でした。
- DDL中はテーブルまたはレコードにロックがかかるため、サービスの動作に影響が出る可能性がある。
- サービスを使うことによって獲得されるロックの影響で、DDLがスムーズに行われない可能性がある。
ブルーグリーンデプロイではDDLはグリーン環境に流すため、本番サービス稼働中だろうと関係なく実施できます。
★デメリット★
① 数分とはいえAuroraのエンドポイントに接続できない時間が発生するため、サービスがダウンする可能性がある。
→ DBに対するリトライ処理をうまく実装することで、かなり影響を軽減できている(はず)。
② 切り替えた後に残るOld環境を消し忘れる。
しっかり金がかかります(当たり前)。弊社では直近1ヵ月分はPITRでデータ復旧ができるように残しておくので、Old環境ができた際はインスタンスのサイズを落として、約1ヵ月間残したのち削除しています。
誰かが気づくか自動で削除するかしないと、思わぬところで費用がかかっていたことに後から気づく事態になるので、運用はしっかり考えないといけないです。
まとめ
AWSさん、すごいスピードでサービスリリース・アップデート繰り返しているのでさすがだなと思いますが、弊社も負けないようにやっていきます!
最近は新しいサービスで手を動かして試すってことができてないので2024年は頑張りたい