(レポート) CMP401: ELBのDeep Diveとベストプラクティス #reinvent

2015.10.10

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

日本にいます西澤です。引き続き、公開された資料を読み漁っています。

ELBのセキュリティ

  • SSLセキュリティポリシー
    • POODLE対策
    • LogJam対策
    • Heartbleed対策
    • RC4の先行除外
    • s2n: 新しいオープンソースTLS実装
    • Perfect Forward Secrecy
    • 3DS、RC4よりもAES
    • CBC+HMACよりもGCM
    • レガシークライアントは互換性に問題が発生する可能性あり
    • ELBのデフォルトセキュリティーポリシーはバランスが取れている
    • アクセスログを取得して分析
    • ELBの最新のデフォルトセキュリティポリシーを推奨

ELBのScalability

  • 全てのCloudWatchメトリクスをAutoScalingと連動可能
    • 13のメトリクスが1分単位で取得可能
    • HealtyHostCount
      • 正常ホスト数
      • AZ別
    • Latency
      • アクセスログを有効化して個別にテストしてデバッグ可能
    • SurgeQueue and spillovers
      • バックエンドに送信できなかったリクエストの数を確認
      • ELBノードのキューが1024を越えると、503エラーが発生
      • アプリケーションのスケールを検討
  • アクセスログを活用
  • Global scalability
    • Route 53のlatency-basedルーティング、Geolocationルーティングを活用

ELBのAvailability(可用性)

  • ダウンタイムなしのインスタンス置き換えを実現
    • Health checks
      • TCP、HTTP
      • 頻度、閾値
      • ヘルスチェックの深さをよく考える
    • Idle timeouts
      • 未使用のコネクションをELBが切断
      • クライアントもバックエンドも意識
      • デフォルト60秒(1〜3600秒で設定可能)
    • Amazon Route 53 health checks
      • AZ単位でヘルスチェックしてスケール
      • 150秒以内にスケール
    • 複数AZを跨いだサブネットに配置
    • ワイルドカードCNAMまたはALIASレコードをRoute 53で登録
    • Cross-zone load balancing
      • DNSキャッシングの影響を吸収
      • バックエンドインスタンスの使用率不均衡を平準化
      • 利用帯域課金はなし
    • ELB and DevOps
      • CloudFormation、Opsworks、Elastic Beanstalk、EC2 Container Service、Amazon API Gatewayと連携可能
      • blue/greenデプロイメント
      • immutableデプロイメントをプログラム制御

まとめ

特にアップデートはありませんでしたが、WEBアプリケーションを利用する上で必要不可欠となるELBの機能をしっかり復習する機会となりました。CloudWatch、アクセスログを活用して、最適な設定値を利用できるようにしていきたいですね。