読者です 読者をやめる 読者になる 読者になる

絶品ゆどうふのタレ

ふと気づいたことを綴るだけのメモ

AWS Summit 2015 - Day2 - ネットワークDeep Dive

  • AWS 吉田さん

VPCベストプラクティス

Marketplaceを活用する

  • ファイアウォールやロードバランサ、WAF、ルータ、ネットワーク高速化などの製品が利用可能
  • EC2のMarketplaceから検索

VPC Peeringを利用する

  • 2つのVPCの間でネットワークをpeeringする
    • 企業間コラボレーション
      • お互いの会社がAWSをつかっていれば、簡単にネットワーク接続が可能
      • セキュリティグループで必要な通信だけに絞ることもできる
      • 新しいEDI
    • セキュリティ昨日の共有例
      • Proxy / WAFをセキュリティチームが共有サービスとしてメンテ
      • アプリケーションチームのVPCは直接インターネットにアクセスできず、VPC Peeringでセキュリティチームレイヤにつないでアクセス

VPCのルーティングとセキュリティ

  • VPCのルーティングはすべてサブネット単位のルートテーブルに基づく
  • IPレベルでの接続性確保が目的

  • 主なルーティングのエントリ

    • VPC内のCIDR: local
    • default route: 0.0.0.0 NAT
    • オンプレへのトラフィックはVGW: 192.168.0.0/16とか
    • 通信したいVPCのネットワークアドレスへのルーティングは Peering Connectionへルーティング
  • ACLとセキュリティグループ

    • ACL: ブラックリスト
      • ステートレスなので、戻りも明示する
      • ネットワーク構築時に不要な通信を禁止
    • セキュリティグループ: ホワイトリスト
      • ステートフルなので、戻りを考慮する必要はない
      • 運用時に必要な通信を許可
  • ベストプラクティス例

    1. ルーティングですべての到達性を確保
    2. 全体ポリシーで不必要な通信をACLで構築時に禁止
    3. 個別に必要な通信をセキュリティグループで許可

VPCエンドポイント

  • S3へのアクセスは、以前はNATインスタンスなどを通す必要があった

    • シングルポイントだった
    • それを解決
  • private subnetに設定することで、中から直接外にアクセスできるようになる

  • エンドポイントポリシー

    • VPCエンドポイントに直接IAMポリシーを設定可能
  • 既存からの移行

    • 既存のNAT構成の中にVPC endpointのルーティングを追加すれば、ロンゲストマッチに依ってVPC endpointが優先される
  • 注意点

    • リージョンをまたいで通信することはできない
    • VPN / AWS DirectConnect / VPC PeeringなどからVPC endpointは使えない

Direct connect ベストプラクティス

  • BGPの動作
    • ルートにBGP除く聖地は付与しない
    • お客様ルータのBGP俗世地を評価
    • ロードシェアリング可能
      • マルチパス有効
    • プライベート接続ではVPCのプレフィックスを広告
    • パブリックだとAWSクラウド内のプレフィックスを広告
    • BFDが有効

回線フェイルオーバーの高速化

  • BGPでは、障害検知が遅くてフェイルオーバーが遅いことが問題になりやすい

  • BFD

    • ミリ秒レベルで対向ルーター同士でBFDパケットを送受信
    • なくなった場合に障害検知
    • 非常に高速なフェイルオーバー
    • リアルタイム性の高いアプリケーションの場合は設定を
    • 推奨
  • KeepaliveとHoldtime

    • BGPの機能の一部
    • keepaliveを指定した間隔で送受信
    • 単純にこのHoldtimeのデフォルト値を短くする
      • 自分のるーたの設定値を低い値にすれば、AWS側のるーたもその低い方を採用する仕組み

経路の冗長化

  • Active/Standby

    • 片方だけVPNという接続をしてる人もいる
    • BGPの属性値によってどのPathを選択するかを設定
    • のぼりとくだりは違う属性値で管理されている
      • AS Path Prepend
      • オンプレからの送信はLocal Pre...を優先
  • 注意点

    • どちらの回線がActiveなのかをきちんと管理
    • 上りと下りのトラフィックを意識
  • Active/Active

    • マルチパスによって、複数経路に対してロードバランスして送信する
    • Maxmmum Path
    • AWSのルータではマルチパスが有効になっている
  • 注意点

    • 回線の切断時、正常な回線のトラフィック・帯域溢れに注意
      • マルチパスのペアをもう一つ用意したり
      • Active/Standbyにしたり

占有型と共有型

  • DirectConnectの構成

    • 物理線(Connection)の中にVLAN(Virtual interface)を構成してる
  • 占有型と共有型

    • 占有型: Connection単位
    • 共有型: Virtual Interface
      • 1契約につき1接続
      • たくさんVPC接続する場合は、その数分だけ契約する
    • どれくらい必要になるのかをよく見て、契約を判断
  • キャリア閉域網の共有型の例

ネットワークのコード化

  • ネットワークにフォーカスしたコード化

  • CloudFormation

    • JSONテンプレートを用意して構築
    • updateも可能
  • AWS CLI / SDK

CloudFormationの例

  • VPC / Subnetの構成例
  • サンプルテンプレートを元に使ったり、サードパーティツールで便利に書ける

  • JSONを編集 -> CloudFormationでロード

  • CloudFormerを利用したテンプレート作成

    • 既存の構成を元にテンプレート作成

AWS CLI / SDK

  • シェルのコマンドを使う

  • VPC作成の例

  • PythonSDKなども可能

  • タグに寄る動的NAT制御の例

    • NATインスタンス起動時に自分自身の情報を元に判定してルートテーブルを更新する

さいごに