In Silico

クラウド

AWSの障害対策:マルチAZ・再試行・バックアップの基本

2026/10/17 シリーズ「AWS 入門」 第9回 / 全9回

シリーズAWS 入門全9回
  1. 第1回AWSとは?できることと仕組み、主要サービスをわかりやすく解説
  2. 第2回AWSマルチアカウントとは?分ける理由とOrganizationsの設計
  3. 第3回AWS IAMロールとポリシーの違いとは?使い分けと許可の決まり方
  4. 第4回AWS VPC設計入門:CIDRの決め方とサブネットの分け方
  5. 第5回Amazon EC2とは?インスタンスの起動・料金・タイプの選び方
  6. 第6回AWS Lambdaとは?サーバーレスの仕組みと動かし方の基本
  7. 第7回Amazon S3とは?バケットとオブジェクトの仕組み、料金と公開設定
  8. 第8回AWSデータベースの選び方:RDSとAuroraとDynamoDBの使い分け
  9. 第9回AWSの障害対策:マルチAZ・再試行・バックアップの基本

このシリーズの紹介へシリーズ一覧へ

  • AWS の障害対策
  • マルチ AZ
  • 再試行
  • バックアップ
  • クラウド
  • AWS
  • 信頼性の柱
  • Auto Scaling
  • タイムアウト
  • ジッター
  • 指数バックオフ
  • RTO
  • RPO
  • 災害復旧
  • AWS Backup
  • Route 53
  • フォールバック
  • シャッフルシャーディング
  • セルベースアーキテクチャ
  • Fault Injection Service
  • Well-Architected
  • Amazon Builders' Library
  • パイロットライト
  • ウォームスタンバイ
目次
背景・問い・要点
背景

障害は、システムの一部が止まったり、遅くなったり、誤った結果を返したりすることである。サーバーの故障のほか、ネットワークの不調、ほかのシステム(依存先)の遅れ、操作の誤りも含む。可用性は、システムが使える状態にある時間の割合をいう。冗長化は、同じ働きをするものを複数用意し、一つが止まっても残りで動き続けられるようにすることである。タイムアウトは、相手の応答を待つ時間の上限、再試行は、失敗した呼び出しをもう一度送ることである。

AWS は、障害への備えを、Well-Architected フレームワークの信頼性の柱にまとめている。信頼性の柱は、設計原則の最初に「障害から自動的に復旧する」を置き、復旧の手順を試すこと、一つの大きな資源を複数の小さな資源に置き換えること、容量を推測しないこと、変更を自動化することを並べる1。AWS が自社のサービスをどう作っているかを書いた Amazon Builders’ Library は、タイムアウトと再試行、フォールバック(不調のときに別の仕組みに切り替えること)、影響の範囲の区切り方を、AWS のエンジニアの経験として説明している23。

問い

AWS で作ったシステムを、何に対して、どう備えればよいのか。どこまでを AWS の仕組みに任せられ、どこからを自分で決めるのか。

要点

AWS の障害対策は、障害は起きるという前提から始まる。サーバーやゾーンの故障には、複数のアベイラビリティーゾーンに同じものを置き、ヘルスチェックと Auto Scaling で自動で入れ替える。依存先が遅いときは、タイムアウトで待つのを打ち切り、再試行は一つの層だけで回数を限り、待ち時間を指数的に延ばしてランダムな幅(ジッター)を加える。冗長化は削除や破損まで写すので、データはバックアップで守り、目標復旧時間(RTO)と目標復旧時点(RPO)を決めてから、災害復旧の方式を選ぶ。備えは、実際に障害を起こして試すまで、働くかどうか分からない。

モデル・例示

チケット販売サイトの三つの障害

※ この節の例は、説明のために作った架空のものです。

ライブのチケットを売るサイトを、東京リージョンに作るとする。サイトのアプリは、仮想のサーバーである EC2 のインスタンスを 4 台使って動かす。4 台は Auto Scaling グループ(台数を保ち、壊れたインスタンスを入れ替える仕組み)にまとめ、二つのアベイラビリティーゾーン(リージョンの中で、電源やネットワークを分けたデータセンターの群)に 2 台ずつ置く。どちらのゾーンの 2 台も、それだけで最も混む時間の要求をさばけるようにしておく。前にロードバランサー(届いた要求を複数のサーバーに振り分ける仕組み、ALB)を置く。データベースは RDS for PostgreSQL で、別のゾーンに予備を持つマルチ AZ の構成にする。支払いは、別のチームが運営する決済のサービスを、アプリから呼んで行う。

東京リージョン
ロードバランサー二つのゾーンにまたがる
ゾーン a
app-a1
app-a2
RDS の本体
ゾーン c
app-c1
app-c2
RDS の予備マルチ AZ
枠は東京リージョンと、その中の二つのアベイラビリティーゾーン。どのインスタンスとデータベースがどのゾーンにあるか

この構成で、三つの障害が起きたときに何が起きるかを順に見る。

ゾーン a のインスタンスが止まる

ゾーン a の電源の障害で、app-a1 と app-a2 が要求に応えなくなったとする。ロードバランサーは、登録したインスタンスに定期的に問い合わせて(ヘルスチェック)、応えないものには要求を回さない。担当者は、Auto Scaling グループで、ロードバランサーのヘルスチェックの結果を使う設定を有効にしておいた。既定では、Auto Scaling は EC2 自身の状態の確認だけを見て、ロードバランサーの判断を使わない4。

  1. ロードバランサーゾーン a の 2 台1. ヘルスチェックを送る
  2. ロードバランサー2. 応答が無いので 2 台を異常とし、要求をゾーン c の 2 台だけに回す
  3. Auto Scaling3. 次の定期の確認で、ロードバランサーの判定を見て、2 台を異常とする
  4. Auto Scaling4. 2 台を終了し、代わりを起動する。ゾーン a で起動できなければ、ゾーン c で起動する

Auto Scaling は、異常と判断したインスタンスを新しいものに入れ替えて、決めた台数を保つ5。あるゾーンで起動に失敗すると、ほかの正常なゾーンで起動する6。起動したインスタンスは、Auto Scaling がロードバランサーに自動で登録する7。

同じ電源の障害で、ゾーン a の RDS の本体も止まる。RDS はゾーン c の予備に自動で切り替え、切り替えにはふつう 60〜120 秒かかる8。そのあいだ、注文の書き込みは失敗する。

アプリの台数が足りなくならないのは、代わりの起動が間に合うからではない。ゾーン c の 2 台が、はじめから全部の要求をさばけるからである。AWS は、障害が起きてから資源を足そうとするのでなく、前もって別のゾーンに足りるだけの資源を置いておくよう勧めている。この考え方を静的安定性という9。

決済のサービスが、ときどき応答しなくなる

決済のサービスの一部のサーバーが不調になり、ときどき応答が返らなくなったとする。アプリが応答を待ち続けると、待っている要求がアプリにたまり、決済に関係の無い画面まで遅くなる。担当者は、決済のサービスへの呼び出しに、応答を待つのは 3 秒までというタイムアウトを付けた。打ち切ったら、少し待って 1 回だけ再試行する。待つ時間は、0〜0.2 秒の中からランダムに選ぶ。

  1. app-c1決済のサービス1. 注文番号を付けて、支払いを頼む
  2. app-c12. 3 秒待っても応答が無いので、打ち切る
  3. app-c13. 0〜0.2 秒の中からランダムに選んだ時間だけ待つ
  4. app-c1決済のサービス4. 同じ注文番号で、もう一度頼む
  5. 決済のサービスapp-c15. 支払いを受け付けた

打ち切った呼び出しも、決済のサービスの側では処理が済んでいたかもしれない。だから再試行には、同じ注文番号を付ける。決済のサービスは、同じ番号の依頼を二度受けても、一度しか請求しないように作られているとする。このように、何度送っても、一度送ったときと結果が同じになる操作を、冪等という。冪等でない操作を再試行すると、二重に請求するおそれがある10。

待つ時間をランダムにするのは、一部のサーバーが不調になると、そこで待っていた多くの要求が、3 秒後にそろって打ち切られるからである。全部が同じ間隔で再試行すると、また一度に押し寄せる。2 回目も失敗したら、アプリはそれ以上再試行せず、画面に「しばらくしてからもう一度」と出す。後でやり直すときも、同じ注文番号を使う。

担当者が注文の表を消す

担当者が、作業の誤りで、RDS の注文の表を消したとする。マルチ AZ の予備は、本体と同期して書き写すので11、表を消したことも、予備にそのまま写る。冗長化は、壊れた機械には効くが、誤った操作や壊れたデータまで一緒に写しうる12。

担当者は、RDS の自動のバックアップから、表を消す 1 分前の状態を、新しいデータベースのインスタンスとして復元した。RDS の自動のバックアップは、残す期間の中なら、どの時点の状態にでも戻せる13。戻すときは、元のインスタンスを変えずに、新しいインスタンスを作る14。そのうえで、アプリの接続先を新しいインスタンスに切り替えた。

復元と切り替えのあいだ、サイトは注文を受けられない。また、戻した時点より後に書かれたデータは、新しいインスタンスには入っていない。どれだけの時間止まってよいか、どれだけの時間の分のデータを失ってよいかは、前もって決めておく必要がある。

三つの障害には、それぞれ別の備えが効いた。ゾーンの故障には、ゾーンをまたいだ冗長化と、前もって置いた余裕。依存先の不調には、タイムアウトと、上限のある再試行。データの消失には、バックアップ。以下では、それぞれの仕組みと、AWS がそう勧める理由を順に見る。

AWS で起きる障害と、信頼性の柱の考え方

障害は、影響の及ぶ範囲で分けると考えやすい。

障害の範囲主な備え
一台のインスタンス複数台に分け、異常なものを自動で入れ替える
一つのアベイラビリティーゾーン複数のゾーンに、足りるだけの資源を置く
一つのリージョン全体別のリージョンでの災害復旧
依存先の遅れや過負荷タイムアウト、上限のある再試行
操作の誤りやデータの破損バックアップと、時点を指定した復元

AWS は、ワークロード(一つの目的のために動くシステムのまとまり)のデータと資源を複数のアベイラビリティーゾーンに分け、必要なときはリージョンにも分けるよう勧めている15。各リージョンは、物理的にも論理的にも独立し、三つ以上のアベイラビリティーゾーンを持つ15。

信頼性の柱の設計原則は五つある1。

設計原則意味
障害から自動的に復旧する指標を見張り、しきい値を超えたら自動の処理を動かす
復旧の手順を試す障害を起こして、手順が働くかを確かめる
水平方向にスケールする一つの大きな資源を複数の小さな資源に置き換え、一つの故障の影響を小さくする
容量の推測をやめる必要な量を見て、資源を増やしたり減らしたりする
変更を自動化で管理する設定の変更は、手作業でなく自動化した手順で行う

冗長化と自動の復旧:ELB、Auto Scaling、Route 53

Auto Scaling: Auto Scaling グループは、有効にしたアベイラビリティーゾーンに、インスタンスを同じ数ずつ置こうとする。ゾーンが戻ると、自動で偏りを直す。直すときは、新しいインスタンスを先に起動してから、古いものを終了する16。

インスタンスが異常かどうかは、ヘルスチェックで決める。既定のヘルスチェックは、EC2 の状態の確認で、たまに失敗しただけでは何もしない。ロードバランサーのヘルスチェックの結果は、既定では使わない。有効にすると、ロードバランサーが異常と報告したインスタンスを、Auto Scaling が次の定期の確認で異常とし、入れ替える4。AWS は、障害を見つけたら自動の処理で直し、クラウドでは、再起動するときに資源ごと入れ替えるのがよいとしている17。

Route 53: Route 53 は、AWS の DNS(名前からサーバーのアドレスを引く仕組み)のサービスで、ヘルスチェックも持つ。決めた間隔(10 秒か 30 秒)で、インターネットの上から相手に要求を送り、届くか、使えるかを確かめる1819。確かめるサーバー(ヘルスチェッカー)のうち 18% を超える数が正常と報告すれば、正常とみなす19。フェイルオーバー(異常なときに予備へ切り替えること)のルーティングにすると、正常なときは本来の宛先を、異常なときは別の宛先を、DNS の答えとして返す20。

タイムアウトと再試行:遅い相手に全体が巻き込まれないために

タイムアウト: AWS は、接続と要求にタイムアウトを決め、既定の値に頼らないよう勧めている。ライブラリの中には、既定のタイムアウトが無限か、サービスの目標より長いものがあるからである21。待ち行列も長くしすぎない。呼び出した側があきらめた古い要求を処理し続けることになるからである22。

再試行は利己的である: AWS のエンジニアの Marc Brooker は、Builders’ Library で、再試行を「利己的」と書いた。クライアントは、再試行することで、成功の見込みを上げる代わりに、サーバーの時間をより多く使う2。失敗がまれで一時的なら、再試行はよく効く。失敗の原因が過負荷なら、再試行はかえって悪くする23。

再試行は、呼び出しの層が重なると掛け算で増える。Brooker は、5 段に重なった呼び出しで、各層が 3 回ずつ試すと、一番下のデータベースへの負荷は 243 倍になり、回復はまず見込めないと書いた。AWS の慣行は、軽い操作では、再試行を呼び出しの重なりの一か所に限ることだという2。信頼性の柱も、再試行は一つの層だけで行うよう勧めている23。

指数バックオフとジッター: 再試行の間隔は、試すたびに長くする(指数バックオフ)。ただし、多くのクライアントが同じ瞬間に失敗すると、同じ間隔で一斉に再試行してしまう。そこで間隔にランダムな幅(ジッター)を加え、再試行を時間の上にばらす2。Brooker が 2015 年に AWS のブログで比べた中では、待ち時間を 0 から上限までの一様な乱数にする「フルジッター」が、呼び出しの回数を最も少なくした24。

待ち時間 = random_between(0, min(上限, 基準の時間 × 2 ^ 試した回数))

この比べ方は、100 のクライアントが同じデータを書き換えようと競う場面を、模擬で動かしたものである。ジッターの無い指数バックオフは、はっきりと劣った24。

AWS の SDK の再試行: AWS のサービスを呼ぶ SDK は、失敗した呼び出しを、自動で再試行する25。AWS は 2026 年 5 月に、SDK の再試行の新しい動きを発表した。2026 年 10 月の時点では、環境変数で選んだときだけ使われ、2026 年 11 月に既定になる予定である2526。新しい動きでは、既定で、最初の呼び出しを含めて 3 回まで試し(AWS のデータベースの DynamoDB を呼ぶクライアントは 4 回)、ジッター付きの指数バックオフで待つ。一時的なエラーの基準の時間は 50 ミリ秒、呼び出しすぎで断られた(スロットリング)エラーは 1,000 ミリ秒である。権限が無いなどの、何度送っても成功しないエラーは再試行しない。再試行の回数は、トークンと呼ぶ点数で制限する。SDK のクライアントは 500 のトークンを持ち、再試行のたびに一定の数を引き、成功すると少し戻す。足りなくなると再試行をやめる25。

  1. 再試行しない種類のエラー?
    はい
    呼び出し元に返す
    いいえ
  2. 試した回数が上限に達した?
    はい
    呼び出し元に返す
    いいえ
  3. 再試行のトークンが足りない?
    はい
    呼び出し元に返す
    いいえ
  4. 待ってから再試行する

トークンの仕組みは、失敗が続くあいだ、再試行で相手に余計な負荷をかけないためにある。Brooker も、再試行をクライアントの側のトークンの仕組み(トークンバケット)で制限するのが効くと書いている2。

再試行の上限には、AWS の外の実務にも同じ考えがある。Google の SRE の本は、一つの要求を試すのは最初の 1 回を含めて 3 回まで(再試行は 2 回まで)とし、さらにクライアントごとに、再試行が要求全体の 10% を超えたら再試行しない、という二重の上限を説明している27。再試行を複数の層で重ねると、試す回数は各層の回数の積になる、とも書いている28。

フォールバックを避ける: 依存先が止まったときに、別の仕組みで同じ結果を得ようとすることを、フォールバックという。AWS のエンジニアの Jacob Gabrielson は Builders’ Library で、Amazon はフォールバックを避けていると書いた。フォールバックは、効くことを示すのが難しく、ふだん動かないので、障害のときに失敗しやすい3。信頼性の柱も、一般にフォールバックは避けるべきだとしている29。一方で、失敗が続く相手への呼び出しをしばらく止めるサーキットブレーカーについては、信頼性の柱は使う形を勧め29、Brooker は、試しにくく、回復を遅らせることもあると書いている2。

影響の範囲を区切る: 大きなサービスを作る側では、ワークロードを、状態を共有しない複数の写し(セル)に分け、顧客ごとにどれか一つのセルに送る作り(セルベースアーキテクチャ)も使われる30。10 のセルがそれぞれ 10 の要求をさばいていれば、一つのセルが壊れても、残りの 90% の要求は影響を受けない31。顧客ごとにサーバーの組み合わせを変えて、壊れる範囲をさらに小さくするシャッフルシャーディングも、AWS は Route 53 などで使っている32。AWS は、この作りは複雑になるので、すべてのワークロードに向くわけではないとしている33。

バックアップと災害復旧:RTO と RPO から選ぶ

冗長化は災害復旧ではない: AWS の災害復旧のホワイトペーパー(技術的な解説の文書)は、可用性は部品の故障を扱い、災害復旧はワークロード全体の別の写しを扱うと区別している。主の側でファイルを消したり壊したりすると、その変更は予備にも写りうる。だから、時点を指定して戻せるバックアップが要る12。

RTO と RPO: 備えを選ぶ前に、二つの目標を決める。目標復旧時間(RTO)は、サービスが止まってから戻るまでに許せる時間の上限である。目標復旧時点(RPO)は、最後に戻せる時点(最後のバックアップなど)から障害までのあいだで、失ってよいデータの時間の上限である34。実際の事業の要求より厳しい目標を決めると、必要以上に高く、複雑な仕組みを作ることになる34。

AWS Backup: AWS Backup は、AWS の各サービスのバックアップを、一か所でまとめて自動で取るためのサービスである35。バックアッププランに、いつ、どう取るかを書き36、取ったバックアップは、バックアップボールトという入れ物に保管する37。資源にタグを付けるだけで、プランを当てはめられる38。別のリージョンへの写しも、決まった時刻に自動で取れる39。料金は、保存した量、リージョンの間で写した量、戻した量などで決まり、最低料金は無い40。AWS は、バックアップを RPO に合わせた間隔で自動で取り41、実際に戻して、データを読めるか確かめるよう勧めている。戻しただけで中を確かめないことや、バックアップがあると思い込むことを、避けるべき型に挙げている42。

災害復旧の四つの方式: 一つのリージョン全体が使えなくなる場合に備える方式を、AWS は四つに分けている43。信頼性の柱が示す RPO と RTO の目安は、次のとおりである44。

方式RPO と RTO の目安
バックアップと復元RPO は数時間、RTO は 24 時間以内
パイロットライトRPO は数分、RTO は数十分
ウォームスタンバイRPO は数秒、RTO は数分
マルチサイトのアクティブ/アクティブRPO はほぼゼロ、RTO はゼロもありうる

パイロットライトは、データを別のリージョンに写し、中心の基盤だけを用意しておく。要求をさばくには、先に何かの操作が要る。ウォームスタンバイは、規模を縮めた、そのまま動く写しを置いておき、すぐに要求をさばける4445。アクティブ/アクティブは、最も複雑で費用のかかる方式である45。

AWS は、マルチ AZ で事業の要求を満たせるのに、複数のリージョンに分ける作りを、避けるべき型に挙げている15。ホワイトペーパーも、一つのリージョンの中のマルチ AZ の構成で、多くのリスクに対応できるとしている。重要でないワークロードには、災害復旧を用意しないのも、正当な方針でありうるという43。

ただし、リージョンをまたぐ方式には、実務からの注意もある。AWS の費用の助言を仕事にする Corey Quinn は 2018 年に、障害のときに新しいインスタンスをすばやく起動できることを前提にした災害復旧の計画は、本当の障害では苦しむことになりやすいと書いた。その種の問題は、皆が一斉に計画を動かす障害のときにだけ表に出るという46。2020 年にも、計画を絶えず試していなければ、いちばん必要なときに壊れるとしている47。

復旧の手順を試す:FIS と Resilience Hub

備えは、試さなければ、働くかどうか分からない。AWS は、本番か本番に近い環境で、障害を起こす実験(カオスエンジニアリング)を定期的に行うよう勧めている48。人とチームの対応も含めて試す訓練(ゲームデー)も勧め、手順を書いただけで一度も動かさないことを、避けるべき型に挙げている49。

AWS Fault Injection Service(FIS): AWS の資源に、実際に障害を起こす実験を行うサービスである50。実験のひな形に、起こす操作、対象、止める条件を書く。FIS は、本物の資源に本物の操作を行う50。料金は、操作を動かしている時間と、実験に含めるアカウントの数で決まる51。

AWS Resilience Hub: アプリケーションの回復力の目標を決め、その目標に照らして今の構成を評価し、Well-Architected に基づく改善の案を示すサービスである52。料金は使う版によって違い、2026 年 5 月 28 日に始まった新しい版は、作ったサービスの数や、行った評価と試験の数などで決まる53。

2025 年 10 月の us-east-1 の障害:自動の仕組みが広げた影響

AWS 自身のサービスの障害も、ここまでの考え方の実例になる。2025 年 10 月 19 日から 20 日にかけて(米国太平洋夏時間)、バージニア北部のリージョン(us-east-1)で、AWS のキーバリューのデータベースである DynamoDB を起点とする障害が起きた。始まりから終わりまで、およそ 14 時間半だった54。

原因は、DynamoDB の DNS を管理する自動の仕組みの、まれな競合だった。可用性のために、DNS を書き換える部品は三つのアベイラビリティーゾーンで独立に動いていた。そのうち一つが異常に遅れ、古い計画を新しい計画の上に書き戻した。その古い計画が後始末で消され、DynamoDB の接続先(エンドポイント)の DNS の記録が空になった。自動の仕組みは、これを直せなかった54。

影響は、DynamoDB に頼るほかのサービスに広がった。EC2 では、新しいインスタンスの起動が失敗した。物理のサーバーを管理する部品は、DynamoDB が戻った後、各サーバーを管理する権利(リース)を取り直そうとした。ところが数が多すぎて、処理が時間切れになり、やり直しの処理がさらに積まれた。部品は詰まって先に進めなくなり、技術者が手で慎重に直した54。時間切れとやり直しが重なって負荷を増やす形は、前の節で見た再試行の危うさと似ている。一方、障害の前から動いていたインスタンスは、障害のあいだずっと正常だった54。障害のときに起動することを前提にした作りは、起動できなかったこの時間、頼れなかったことになる。静的安定性は、この形に備える考え方である。

ロードバランサーの一種の NLB では、新しく起動したインスタンスのネットワークの設定が行き渡る前に、ヘルスチェックが行われた。そのため、正常なノードや振り分け先のインスタンスまで、異常と判断された。判断の揺れでヘルスチェックの仕組みの負荷が増え、ゾーンの間の自動の切り替えが起き、使える容量が減った。技術者は、この自動の切り替えを止めて、正常なノードを戻した54。ヘルスチェックの失敗はインスタンスの終了にもつながった。起動がまだできなかったため、AWS のサーバーレスのサービスである Lambda の内部の仕組みの一部で容量が足りなくなり、AWS は一部の呼び出しを絞った54。AWS は、競合を直して保護を足すまで DNS の自動の仕組みを世界中で止め、NLB には、ヘルスチェックの失敗で一度に外せる容量を制限する仕組みを足すとした54。

インシデントについて書き続けているソフトウェアエンジニアの Lorin Hochstein は、この障害を受けて、信頼性を高めるための自動の仕組みは、知られた失敗を防ぐ一方で、新しい種類の失敗を持ち込むと書いた。ヘルスチェックは信頼性を高めるための典型的な自動の仕組みだが、この障害では問題をさらに悪くした。それでもヘルスチェックが悪いのではなく、自動の仕組みを足すことには、常に引き換えがあるという55。

どこまで備えるかと、その費用

備えには費用がかかる。別のゾーンに足りるだけのインスタンスを置けば、ふだんは使い切らない分の料金も払う。RDS のマルチ AZ は、予備のインスタンスを動かし続ける構成で、インスタンスを動かした時間を、マルチ AZ の単価で数える。データベースへの書き込みの I/O は、予備にも書くので倍になる。本体から予備へ写す転送には、料金がかからない56。バックアップには保存した量の料金が、リージョンをまたぐ写しには転送の料金がかかる40。AWS のホワイトペーパーは、復旧の方式の費用が、障害やデータの損失で失うものより高いなら、規制のような別の理由が無いかぎり、その方式は入れるべきでないとしている43。

だから、方式を先に選ばない。まず、ワークロードごとに RTO と RPO を決める。次に、マルチ AZ と自動の入れ替え、タイムアウトと上限のある再試行、バックアップで、その目標を満たせるかを確かめる。満たせないときに、リージョンをまたぐ方式を足す。

障害は起きる前提で、範囲と時間を決めて備える

AWS は、障害は起きるものとして、ゾーンをまたいだ冗長化と、ヘルスチェックによる自動の入れ替えを基本にするよう勧めている。依存先の不調には、タイムアウトで待つのを打ち切り、再試行は一つの層だけで回数を限り、ジッター付きの指数バックオフで間隔を空ける。冗長化は削除や破損まで写すので、データはバックアップで守る。

どこまで備えるかは、RTO と RPO で決める。一つのリージョンの中のマルチ AZ で、多くのリスクに対応できると、AWS 自身が書いている。どの備えも、試さなければ働くかどうか分からない。ただし、皆が一斉に動く大きな障害のときの振る舞いは、ふだんの試験では確かめにくいと、実務者は注意している4647。

出典56件
  1. AWS「Design principles」(Reliability Pillar、AWS Well-Architected Framework)2026年10月17日取得. https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/design-principles.html ↩ ↩2

  2. Marc Brooker「Timeouts, retries, and backoff with jitter」Amazon Builders’ Library、2019年12月5日、2026年10月17日取得. https://builder.aws.com/content/3EumjoZascWd1oZiEgL8ORlv3qE/timeouts-retries-and-backoff-with-jitter — 現在のページの署名は「Marc」。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6

  3. Jacob Gabrielson「Avoiding fallback in distributed systems」Amazon Builders’ Library、2019年12月5日、2026年10月17日取得. https://builder.aws.com/content/3EuS9Sakq7L3VLQIF3qzfMfke1Y/avoiding-fallback-in-distributed-systems ↩ ↩2

  4. AWS「About the health checks for your Auto Scaling group」(Amazon EC2 Auto Scaling ユーザーガイド)2026年10月17日取得. https://docs.aws.amazon.com/autoscaling/ec2/userguide/health-checks-overview.html ↩ ↩2

  5. AWS「Health checks for instances in an Auto Scaling group」(Amazon EC2 Auto Scaling ユーザーガイド)2026年10月17日取得. https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-health-checks.html ↩

  6. AWS「Auto Scaling group Availability Zone distribution」(Amazon EC2 Auto Scaling ユーザーガイド)2026年10月17日取得. https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-availability-zone-balanced.html ↩

  7. AWS「Use Elastic Load Balancing to distribute incoming application traffic in your Auto Scaling group」(Amazon EC2 Auto Scaling ユーザーガイド)2026年10月17日取得. https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html ↩

  8. AWS「Failing over a Multi-AZ DB instance for Amazon RDS」(RDS ユーザーガイド)2026年10月17日取得. https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.Failover.html ↩

  9. AWS「REL11-BP05 Use static stability to prevent bimodal behavior」(Reliability Pillar)2026年10月17日取得. https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/rel_withstand_component_failures_static_stability.html ↩

  10. Malcolm Featonby「Making retries safe with idempotent APIs」Amazon Builders’ Library、2026年10月17日取得. https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/ ↩

  11. AWS「Multi-AZ DB instance deployments for Amazon RDS」(RDS ユーザーガイド)2026年10月17日取得. https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZSingleStandby.html ↩

  12. AWS「High availability is not disaster recovery」(Disaster Recovery of Workloads on AWS: Recovery in the Cloud、2021年2月12日)2026年10月17日取得. https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/high-availability-is-not-disaster-recovery.html ↩ ↩2

  13. AWS「Introduction to backups」(RDS ユーザーガイド)2026年10月17日取得. https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html ↩

  14. AWS「Restoring a DB instance to a specified time for Amazon RDS」(RDS ユーザーガイド)2026年10月17日取得. https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIT.html ↩

  15. AWS「REL10-BP01 Deploy the workload to multiple locations」(Reliability Pillar)2026年10月17日取得. https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/rel_fault_isolation_multiaz_region_system.html ↩ ↩2 ↩3

  16. AWS「Auto Scaling benefits for application architecture」(Amazon EC2 Auto Scaling ユーザーガイド)2026年10月17日取得. https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-benefits.html ↩

  17. AWS「REL11-BP03 Automate healing on all layers」(Reliability Pillar)2026年10月17日取得. https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/rel_withstand_component_failures_auto_healing_system.html ↩

  18. AWS「Types of Amazon Route 53 health checks」(Route 53 デベロッパーガイド)2026年10月17日取得. https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/health-checks-types.html ↩

  19. AWS「How Amazon Route 53 determines whether a health check is healthy」(Route 53 デベロッパーガイド)2026年10月17日取得. https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html ↩ ↩2

  20. AWS「Failover routing」(Route 53 デベロッパーガイド)2026年10月17日取得. https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-failover.html ↩

  21. AWS「REL05-BP05 Set client timeouts」(Reliability Pillar)2026年10月17日取得. https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/rel_mitigate_interaction_failure_client_timeouts.html ↩

  22. AWS「REL05-BP04 Fail fast and limit queues」(Reliability Pillar)2026年10月17日取得. https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/rel_mitigate_interaction_failure_fail_fast.html ↩

  23. AWS「REL05-BP03 Control and limit retry calls」(Reliability Pillar)2026年10月17日取得. https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/rel_mitigate_interaction_failure_limit_retries.html ↩ ↩2

  24. Marc Brooker「Exponential Backoff And Jitter」AWS Architecture Blog、2015年3月4日、2026年10月17日取得. https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/ — 式は記事の図による。 ↩ ↩2

  25. AWS「Retry behavior」(AWS SDKs and Tools Reference Guide)2026年10月17日取得. https://docs.aws.amazon.com/sdkref/latest/guide/feature-retry-behavior.html — 2026年10月の時点で、このページは新しい動き(環境変数で選ぶ)を説明している。 ↩ ↩2 ↩3

  26. Matthew Miller「Announcing updated retry behavior for AWS SDKs and Tools」AWS Developer Tools Blog、2026年5月20日、2026年10月17日取得. https://aws.amazon.com/blogs/developer/announcing-updated-retry-behavior-for-aws-sdks-and-tools/ ↩

  27. Alejandro Forero Cuervo「Handling Overload」(Betsy Beyer ほか編『Site Reliability Engineering』Google、2016年)2026年10月17日取得. https://sre.google/sre-book/handling-overload/ ↩

  28. Mike Ulrich「Addressing Cascading Failures」(Betsy Beyer ほか編『Site Reliability Engineering』Google、2016年)2026年10月17日取得. https://sre.google/sre-book/addressing-cascading-failures/ ↩

  29. AWS「REL05-BP01 Implement graceful degradation to transform applicable hard dependencies into soft dependencies」(Reliability Pillar)2026年10月17日取得. https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/rel_mitigate_interaction_failure_graceful_degradation.html ↩ ↩2

  30. AWS「What is a cell-based architecture?」(Reducing the Scope of Impact with Cell-Based Architecture、2023年9月20日)2026年10月17日取得. https://docs.aws.amazon.com/wellarchitected/latest/reducing-scope-of-impact-with-cell-based-architecture/what-is-a-cell-based-architecture.html ↩

  31. AWS「REL10-BP03 Use bulkhead architectures to limit scope of impact」(Reliability Pillar)2026年10月17日取得. https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/rel_fault_isolation_use_bulkhead.html ↩

  32. Colm MacCárthaigh「Workload isolation using shuffle-sharding」Amazon Builders’ Library、2019年12月5日、2026年10月17日取得. https://builder.aws.com/content/3F06NpJ8YeoIGP8VHTw4n81pFn8/workload-isolation-using-shuffle-sharding — 現在のページの署名は「Colm」。 ↩

  33. AWS「When to use a cell-based architecture?」(Reducing the Scope of Impact with Cell-Based Architecture、2023年9月20日)2026年10月17日取得. https://docs.aws.amazon.com/wellarchitected/latest/reducing-scope-of-impact-with-cell-based-architecture/when-to-use-a-cell-based-architecture.html ↩

  34. AWS「REL13-BP01 Define recovery objectives for downtime and data loss」(Reliability Pillar)2026年10月17日取得. https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/rel_planning_for_recovery_objective_defined_recovery.html ↩ ↩2

  35. AWS「What is AWS Backup?」(AWS Backup デベロッパーガイド)2026年10月17日取得. https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html ↩

  36. AWS「Backup plans」(AWS Backup デベロッパーガイド)2026年10月17日取得. https://docs.aws.amazon.com/aws-backup/latest/devguide/about-backup-plans.html ↩

  37. AWS「Backup vaults」(AWS Backup デベロッパーガイド)2026年10月17日取得. https://docs.aws.amazon.com/aws-backup/latest/devguide/vaults.html ↩

  38. AWS「AWS Backup: How it works」(AWS Backup デベロッパーガイド)2026年10月17日取得. https://docs.aws.amazon.com/aws-backup/latest/devguide/how-it-works.html ↩

  39. AWS「Creating backup copies across AWS Regions」(AWS Backup デベロッパーガイド)2026年10月17日取得. https://docs.aws.amazon.com/aws-backup/latest/devguide/cross-region-backup.html ↩

  40. AWS「AWS Backup pricing」2026年10月17日取得. https://aws.amazon.com/backup/pricing/ ↩ ↩2

  41. AWS「REL09-BP03 Perform data backup automatically」(Reliability Pillar)2026年10月17日取得. https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/rel_backing_up_data_automated_backups_data.html ↩

  42. AWS「REL09-BP04 Perform periodic recovery of the data to verify backup integrity and processes」(Reliability Pillar)2026年10月17日取得. https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/rel_backing_up_data_periodic_recovery_testing_data.html ↩

  43. AWS「Business Continuity Plan (BCP)」(Disaster Recovery of Workloads on AWS: Recovery in the Cloud、2021年2月12日)2026年10月17日取得. https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/business-continuity-plan-bcp.html ↩ ↩2 ↩3

  44. AWS「REL13-BP02 Use defined recovery strategies to meet the recovery objectives」(Reliability Pillar)2026年10月17日取得. https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/rel_planning_for_recovery_disaster_recovery.html ↩ ↩2

  45. AWS「Disaster recovery options in the cloud」(Disaster Recovery of Workloads on AWS: Recovery in the Cloud、2021年2月12日)2026年10月17日取得. https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/disaster-recovery-options-in-the-cloud.html ↩ ↩2

  46. Corey Quinn「Disaster Recovery Considerations in AWS」Last Week in AWS、2018年10月2日、2026年10月17日取得. https://www.lastweekinaws.com/blog/disaster-recovery-considerations-in-aws/ ↩ ↩2

  47. Corey Quinn「Your Disaster Recovery Plan is a Joke Written by Clowns」Last Week in AWS、2020年8月12日、2026年10月17日取得. https://www.lastweekinaws.com/blog/your-disaster-recovery-plan-is-a-joke-written-by-clowns/ ↩ ↩2

  48. AWS「REL12-BP04 Test resiliency using chaos engineering」(Reliability Pillar)2026年10月17日取得. https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/rel_testing_resiliency_failure_injection_resiliency.html ↩

  49. AWS「REL12-BP05 Conduct game days regularly」(Reliability Pillar)2026年10月17日取得. https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/rel_testing_resiliency_game_days_resiliency.html ↩

  50. AWS「What is AWS Fault Injection Service?」(AWS FIS ユーザーガイド)2026年10月17日取得. https://docs.aws.amazon.com/fis/latest/userguide/what-is.html ↩ ↩2

  51. AWS「AWS Fault Injection Service Pricing」2026年10月17日取得. https://aws.amazon.com/fis/pricing/ ↩

  52. AWS「What is AWS Resilience Hub?」(AWS Resilience Hub ユーザーガイド)2026年10月17日取得. https://docs.aws.amazon.com/resilience-hub/latest/userguide/what-is.html ↩

  53. AWS「AWS Resilience Hub pricing」2026年10月17日取得. https://aws.amazon.com/resilience-hub/pricing/ ↩

  54. AWS「Summary of the Amazon DynamoDB Service Disruption in the Northern Virginia (US-EAST-1) Region」2025年10月23日、2026年10月17日取得. https://aws.amazon.com/message/101925/ — 時刻は米国太平洋夏時間(PDT)。日本語版は https://aws.amazon.com/jp/message/101925/ ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7

  55. Lorin Hochstein「Quick thoughts on the recent AWS outage」Surfing Complexity、2025年10月25日、2026年10月17日取得. https://surfingcomplexity.blog/2025/10/25/quick-thoughts-on-the-recent-aws-outage/ ↩

  56. AWS「Amazon RDS FAQs」2026年10月17日取得. https://aws.amazon.com/rds/faqs/ ↩

この記事はAIを使用して執筆されました。内容には誤りが含まれる可能性があります。事実や数字の出典は脚注から確かめられます。