まえがき
こちらの記事の続編です。
目的
VueとSpringで作成したプロジェクトの構築手順の備忘録。 備忘録のため、詳細な説明を省略している部分があります。
前提
環境
やること
注意
冗長化構成を作成することでサーバーを起動状態にしているとこれまでの倍の料金がかかるため注意が必要です
構成
なぜ冗長化するのか?
webサーバーおよびDBサーバーが冗長化されていない場合、現在配置しているアベイラビリティゾーン(以下、AZ)で何かしら障害が発生した場合にサービスが完全に停止してしまうから。AWSのベストプラクティスとしてこれらの冗長化は定められています。
実際のビジネスの現場で考えると、1時間あたり数百万円動くようなサービスならば数時間の停止がうん百万、うん千万円の損失を与えてしまうと想像すると笑い事じゃなくなるので絶対やっておく必要がありそうです。。。
実装
Webサーバーの冗長化
ナビゲーションペインからEC2を選択し、Webサーバーのインスタンスを選択
アクションからイメージの作成を選択
添付画像のような感じでイメージを作成する
- そこからはデフォルトで、セキュリティグループは既存のセキュリティグループを使用
それ以降もデフォルト設定で進み、最後にキーペアの指定を間違えないように行いインスタンスを作成
添付画像のようにwebサーバーが二つ、それぞれ異なるAZに作成されていることを確認
- 最後にターゲットグループに追加
- 既存のEC2インスタンスを停止して、アプリケーションのURLにアクセスして画面が正常に表示されることが確認できたら完了です。
RDSの冗長化
RDSを選択し、使用しているDBを選択
変更ボタンから添付画像の項目を変更
変更を適用
設定タブからマルチAZが有効になっていることを確認
- 一応DBインスタンスをフェイルオーバーを有効にして再起動し、AZが切り替わっていることを確認して完了です(作成直後は反映されないこともあるため、その場合は数時間がおいて確認)
フェイルオーバーとは:予備も一緒に動かしている(ホットスタンバイ)システムにおいて、メインサーバーに障害が発生したときに自動的に予備サーバーに切り替えてくれる。 フェイルオーバーの目的は「サービスの継続稼働のための最小ダウンタイムの実現」にあります。
今回はここまでです。 お付き合い頂きありがとうございました!