障害復旧を目的としたAWS利用
障害復旧を目的としたAWS利用
信頼性
ディザスタリカバリ(システム障害が発生した際に、システムを迅速に復旧するための仕組み)を用意することも、信頼性向上のためには必要だ。構成パターンとしては、大きく4つの方法がある。
1つ目は、「バックアップ&リストア」という方法だ。バックアップファイルのみを別のリージョンに退避しておく考え方である。2つ目は、「パイロットライト」という方法。これは、停止した状態のサーバーを別のリージョンに用意しておき、障害発生時に立ち上げるというものである。
非常時の際に、サービスを迅速に別のリージョンに展開したい場合には、「ウォームスタンバイ」という方法が効果的だ。これは、平常時は最小限のリソースでサーバーを起動しておき、非常時にサーバーをスケールさせるというものである。また、より信頼性を高めるには、常時複数のリージョンを用いてサービスを提供する「マルチサイト」という方法が用いられる。
優れたアーキテクチャを生むAWSベストプラクティス。運用者が守るべき5つの柱 (1/2):CodeZine(コードジン)
パイロットライトを実装するのは以下の通り。
(1)アドレスをインスタンスに紐づけるまたはElastic Load Balancingを利用してトラフィックを複数のインスタンスに分散させる。
(2)CNAMEでEC2インスタンスやElastic Load Balancingを指定するようにDNSレコードを更新する。
※CNAMEレコードは正規ホスト名に対する別名を定義するレコード。
特定のホスト名を別のドメイン名に転送する時などに利用します。
※正規ホスト名はAレコードが登録されている必要があります。
※特定のファイルやサブディレクトリを指定する事はできません。
※ホスト名なしのCNAMEレコードは登録することができません。
※パイロットライト環境では定期的に変更されるデータベースをレプリケートする必要がある。このため本番データベースをRDSに継続的に複製する。
https://aws.koiwaclub.com/wp-content/uploads/2018/09/AWS_Disaster_Recovery_01242012.pdf#page=11
※Lambda関数はデータベースの変更をレプリケートするのに信頼性が低い。