高可用性・耐障害性の設計scenario
注文APIが同期的に在庫サービスと通知サービスを呼び出しており、通知サービスの一時障害で注文全体が失敗します。可用性を高める設計として最も適切なものはどれですか?
A.通知処理をAmazon SQSで非同期化し、失敗時は再試行とデッドレターキューを使用する← 正解
✓ 正解です。注文の必須処理と通知を疎結合にし、SQSの再試行とデッドレターキューを利用すると、一時的な通知障害を注文処理から分離できます。
B.すべての処理を1台の大きなEC2インスタンスに統合する
✗ 単一インスタンスへの統合は単一障害点を作り、可用性を低下させます。
C.通知サービスのタイムアウトを無制限にする
✗ 無制限の待機はリソースを占有し、障害の連鎖を招きます。適切なタイムアウトと非同期化が必要です。
D.注文APIから在庫データベースへの接続数を固定する
✗ 接続数の固定だけでは通知サービス障害による注文失敗を解消できません。
この問題のポイント
注文の必須処理と通知を疎結合にし、SQSの再試行とデッドレターキューを利用すると、一時的な通知障害を注文処理から分離できます。
「高可用性・耐障害性の設計」の他の問題
IT・クラウド の関連資格
AWS Certified Cloud Practitioner(CLF-C02)
AWSクラウドの入門資格。クラウドの概念・AWSのコアサービス・セキュリティ・料金モデルを問う。
DP-900:Microsoft Azure Data Fundamentals
Azureのデータサービスの基礎を問うMicrosoft認定資格。リレーショナル/非リレーショナルデータ、分析ワークロード、コアのデータ概念を扱う。
AZ-900:Microsoft Azure Fundamentals
クラウドとAzureの基礎を問うMicrosoft認定資格。クラウドの概念、Azureの主要サービス、セキュリティ・コンプライアンス・料金を扱う。