CLBでのAZの設定について

このブログシリーズ 「クラウドセキュリティ 実践集」 では、一般的なセキュリティ課題を取り上げ、「なぜ危険なのか?」 というリスクの解説から、 「どうやって直すのか?」 という具体的な修復手順(コンソール、AWS CLI、Terraformなど)まで、分かりやすく解説します。
この記事では、Classic Load Balancer(CLB)が単一アベイラビリティーゾーンで構成されている場合のリスクと、高可用性を実現するための対策を解説します。

問題の概要
Classic Load Balancer(CLB)が単一のアベイラビリティーゾーン(AZ)での構成となっている場合、そのAZに障害が発生するとサービス全体が停止する重大なリスクがあります。AWSのWell-Architected Frameworkの信頼性の柱では、高可用性を確保するために複数のAZを活用することが強く推奨されており、AWSのベストプラクティスでは最低2つ、理想的には3つ以上のAZへの展開が推奨されています。
単一AZ構成は、AWS のSLA(99.95%の可用性)を活用できず、自社でより低い可用性目標を設定せざるを得なくなります。
修復方法
コンソールでの修復手順
AWSマネジメントコンソールを使用して、CLBを複数のアベイラビリティーゾーンに設定する手順:
- AWSマネジメントコンソールにログインし、EC2サービスに移動します
- 左側のナビゲーションペインから「Load Balancers」を選択します
- 対象のCLBを選択し、詳細画面を開きます
- 「Description」タブで現在の「Availability Zones」設定を確認します
- 「Actions」メニューから「Edit availability zones」を選択します
- ダイアログボックスで以下を設定:
- 最低2つ以上のAZを選択(推奨は3つ以上)
- 各AZのサブネットを適切に選択
- クロスゾーン負荷分散を有効化(推奨)
- 「Save」をクリックして設定を適用します
- 変更が反映されるまで数分待機します
Terraformでの修復手順
Terraformでの設定についてはsubnets
の箇所でリスト形式で利用するSubnetのIDを指定すればよいです。
# CLBをマルチAZ構成で作成
resource "aws_elb" "example" {
>>>>> Skip
# サブネットベースの配置(VPC内CLBの場合 - 推奨)
subnets = aws_subnet.public[*].id
}
最後に
この記事では、Classic Load Balancerが単一アベイラビリティーゾーンで構成されている場合のリスクと、マルチAZ構成への移行方法を詳しく解説しました。高可用性の実現は、現代のクラウドアーキテクチャにおいて必須の要件です。
この問題の検出は弊社が提供するSecurifyのCSPM機能で簡単に検出及び管理することが可能です。 自動的な設定チェックと継続的なコンプライアンス監視により、運用負荷を大幅に削減できます。 ぜひ興味がある方はお問い合わせをお待ちしております。
最後までお読みいただきありがとうございました。この記事が皆さんの高可用性システム構築の一助となれば幸いです。