AWS Classic Load Balancer でクロスゾーンロードバランシングを有効にする設定手順

このブログシリーズ 「クラウドセキュリティ 実践集」 では、一般的なセキュリティ課題を取り上げ、「なぜ危険なのか?」 というリスクの解説から、「どうやって直すのか?」 という具体的な修復手順(コンソール、AWS CLI、Terraformなど)まで、分かりやすく解説します。

この記事では、AWS Classic Load Balancer(CLB)でクロスゾーンロードバランシングを有効にする方法について、セキュリティリスクと具体的な対策手順を解説します。

ポリシーの説明

Elastic Load Balancing の Security Hub コントロール

[ELB.9] Classic Load Balancer では、クロスゾーンロードバランシングが有効になっている必要があります

AWS Classic Load Balancer (CLB) のクロスゾーンロードバランシングは、複数のアベイラビリティーゾーン(AZ)に配置されたEC2インスタンス間で、トラフィックを均等に分散する重要な機能です。この機能が無効の場合、各AZに送信されるトラフィックは、そのAZ内のインスタンスにのみ分散されます。クロスゾーンロードバランシングを有効にすることで、すべてのAZのインスタンスに対してトラフィックが均等に分散され、アプリケーションの可用性と耐障害性が大幅に向上します。

リスク

AWS Classic Load Balancerでクロスゾーンロードバランシングが無効になっている場合、以下のリスクが発生します:

1. 可用性とビジネス継続性への影響

  • 不均等な負荷による障害の連鎖: 例えばAZ-Aに3インスタンス、AZ-Bに1インスタンスの構成で、各AZに50%のトラフィックが分散される場合、AZ-Bのインスタンスは3倍の負荷を受け、過負荷によるサービス停止のリスクが高まります
  • カスケード障害のリスク: 1つのAZでインスタンスが停止すると、残りのインスタンスへの負荷が急増し、連鎖的な障害(カスケード障害)を引き起こす可能性があります
  • SLA違反: AWS Well-Architected Frameworkの信頼性の柱に反し、99.9%以上のSLAの達成が困難になります
  • ピーク時の対応力不足: Black FridayやCyber Mondayなどのトラフィックピーク時に、不均等な負荷分散により一部のインスタンスがボトルネックとなり、売上機会を逸失する可能性があります

2. パフォーマンスへの影響

  • レスポンスタイムの劣化: 過負荷のインスタンスでレスポンスタイムが増大し、ユーザー体験が著しく低下(調査によると、3秒以上の遅延で53%のユーザーが離脱)
  • スループットの制限: 一部のインスタンスがボトルネックとなり、システム全体のスループットが制限されます
  • キャッシュ効率の低下: 不均等なリクエスト分散により、キャッシュのヒット率が低下し、バックエンドへの負荷が増大します

3. コストとリソース効率への影響

  • 過剰プロビジョニング: 最も負荷の高いインスタンスに合わせてリソースを確保する必要があり、平均30-40%のリソース無駄が発生
  • Auto Scalingの非効率: CloudWatchメトリクスが歪められ、不必要なスケールアウトが発生し、月額コストが20-30%増加する可能性
  • リザーブドインスタンスの活用低下: 不均等な使用パターンにより、リザーブドインスタンスの購入計画が困難になり、コスト最適化の機会を逸失

4. 運用とモニタリングへの影響

  • アラート疲れ: 特定のインスタンスで頻繁にCPU/メモリアラートが発生し、運用チームの負担が増大
  • 根本原因分析の困難: パフォーマンス問題の原因が負荷分散の不均衡によるものか、アプリケーションの問題によるものかの判断が困難
  • キャパシティプランニングの複雑化: 各AZで異なる負荷パターンを考慮する必要があり、正確な容量計画が困難

修復手順

AWSマネジメントコンソールでの修復手順

AWSマネジメントコンソールを使用して、Classic Load Balancerでクロスゾーンロードバランシングを有効にする詳細な手順を説明します。

  1. AWSマネジメントコンソールにログインし、EC2サービスに移動します
  2. 左側のナビゲーションペインで「ロードバランサー」を選択します
  3. 対象のClassic Load Balancerを選択します
    • ロードバランサーのタイプが「classic」であることを確認
  4. 「説明」タブを選択し、現在の設定を確認します
    • 「クロスゾーンロードバランシング」の状態を確認
  5. *「クロスゾーンロードバランシング設定の変更」**をクリックします
    • 「説明」タブ内の「クロスゾーンロードバランシング設定の変更」リンクをクリック
  6. 「クロスゾーンロードバランシングの設定」画面
    • 「有効化」を選択します
    • この設定により、すべてのAZ間でトラフィックが均等に分散されます
    • 注意:この設定変更による追加のデータ転送料金は発生しません
  7. *「保存」**をクリックして変更を適用します
  8. 設定の確認
    • 「説明」タブに戻り、「クロスゾーンロードバランシング」が「有効」になっていることを確認

Terraformでの修復手順(Infrastructure as Code)

Classic Load Balancerでクロスゾーンロードバランシングを有効にするTerraformの箇所です。

cross_zone_load_balancingtrueにすることによって有効化されます。

# Classic Load Balancerの作成(クロスゾーンロードバランシング有効)
resource "aws_elb" "classic_lb" {
  >>>> skip
  # クロスゾーンロードバランシングを有効化(重要)
  cross_zone_load_balancing = true
}

重要な注意点

  • Classic Load Balancerの現在のステータス:2025年現在、VPC内のClassic Load Balancerは廃止予定ではありませんが、AWSは新しいロードバランサータイプへの移行を推奨しています
  • 料金について:クロスゾーンロードバランシングの有効化による追加のデータ転送料金は発生しません
  • デフォルト設定:AWS CLIやAPIでCLBを作成した場合、クロスゾーンロードバランシングはデフォルトで無効です。AWSコンソールで作成した場合はデフォルトで有効になります

まとめ

この記事では、AWS Classic Load Balancer でクロスゾーンロードバランシングを有効にする方法について、セキュリティリスクと具体的な対策手順を解説しました。

クロスゾーンロードバランシングを有効にすることで、複数のアベイラビリティーゾーン間でトラフィックが均等に分散され、アプリケーションの可用性と耐障害性が大幅に向上します。特に、各AZのインスタンス数が異なる環境では、この設定は必須となります。

この問題の検出は弊社が提供するSecurifyのCSPM機能で簡単に検出及び管理する事が可能です。 運用が非常に楽に出来る製品になっていますので、ぜひ興味がある方はお問い合わせお待ちしております。 最後までお読みいただきありがとうございました。この記事が皆さんの役に立てば幸いです。

参考情報

AWS公式ドキュメント

Terraform Provider AWS ドキュメント

AWS CLI リファレンス

関連するAWSベストプラクティス

この記事をシェアする

クラウドセキュリティ対策実践集一覧へ戻る

貴社の利用状況に合わせた見積もりを作成します。

料金プランを詳しく見る