背景
私自身、開発が中心の仕事内容でしたが最近は
運用やデプロイ周りのタスクが出てきました。
その中でもRDSを触ることが多くなってきましたが、以下のような内容を
AWS様から進められました。
というわけで、blue/greenデプロイメントを実際に試してみた!
。。というシンプルな記事になります。
概要
Blue/Greenデプロイメントとは?
Blue/Greenデプロイメントは、ソフトウェアのデプロイメント手法の一種です。
システムのアップデートや新機能のリリースをスムーズかつ安全に行うために使われたりします。
本番環境におけるアプリケーションやサービスのリリースにも使用されます。
Blue/Greenについて
Blue/Greenデプロイメントでは、次の2つの環境が利用されます。
-
Blue環境(本番環境):
本番環境として稼働している状態。
ユーザートラフィックはこの環境に向けられる。 -
Green環境(ステージング環境):
新しいバージョンのアプリケーションやサービスがデプロイされた環境を指す。
Blue環境とは別に構築され、テストや検証が行われた後、
本番環境への切り替えが行われる。
試しにデプロイしてみよう!
1. 適当にデータベースを作成しよう
デプロイ用に何かしらデータベースを作成しましょう!
画像上部に記載されてますが、アップグレード中のダウンタイム最小限に抑えることを
目的として、AWSが推奨してるっぽいですねえ。
データベース作成参考:
2.Blue/Green デプロイメントの作成
手順1で作成したデータベースを選択し、
「アクション」から「ブルー/グリーンデプロイの作成-新規」を押下。
次は識別子を命名します。
「_(アンダースコア)」など識別子に使えない文字列や記号に注意!
下記添付画像参照
最後にストレージやコストを確認し、問題なければ
「ステージング環境の作成」を押下して作成実行!
下記エラーが出たら。。
作成したデータベースは、バックアップが存在しないと
blue/greenデプロイメントできないみたいです。。
その場合は、データベースに戻り
「アクション」→「バックアップを有効にする」を押下してバックアップを作成しましょう。
※バックアップ作成には10分程度かかりその間は手順を進められないことに注意。。
3. 作成後の確認
データベースを選択し、Blue/Green デプロイメントの詳細を見てみましょう。
各タブには、Blueデプロイ用のセクションとGreenデプロイ用のセクションが存在します。
グリーン環境の RDS DB インスタンスは変更を加えることが可能です!
4. 切り替えをしてみよう
Green 環境に必要な変更を行ったら、
Blue/Green デプロイメントのデータベースを選択し、
「アクション」→「切り替え」を選択して切り替えを実行してみましょう!
Blue環境とGreen環境の設定を確認して。。
タイムアウトも設定します。
切り替えに指定した期間よりも長い時間がかかる場合、
変更はロールバックされることに注意!
設定に問題ないことを確認したら、「切り替え」を押下すると完了です!
切り替えを実行すると、下記のようにステータスが「切り替え」になります!
5. 実行確認
数分後に切り替えが完了しました!
Blue環境名に「old」がついており、Green環境が新しい本番データベースということになります。
手順自体はそんなに時間もかからず難しくないですね!
注意点
・旧Blueの環境から、Green環境を再度つくることはできない
・切り替え後に切り戻しはできない
参考文献
・RDSのBlue/Greenデプロイメントを試してみた。
・Amazon RDS DB インスタンスの作成