[AWS Black Belt Online Seminar 2018] Amazon VPC:レポート #AWSBlackBelt

AWS Black Belt Online Seminar を聴講しましたので、レポートします。今回はAWSのもっとも基本的なサービスの1つ、「Amazon VPC」です。
2018.04.19

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

こんにちは、菊池です。

2018年4月18日(水)のAWS Black Belt Online Seminar を聴講しましたので、レポートします。

今回はAWSのもっとも基本的なサービスの1つ、「Amazon VPC」です。講師はアマゾンウェブサービスジャパン、ソリューションアーキテクト ネットワークスペシャリストの菊池之裕さんでした。

セミナースライドはこちらです。

レポート

本セミナーのゴール

  • VPCのコンセプトに慣れる
  • 基本的なVPCのセットアップができる
  • 自社の要件にあった仮想ネットワークの作り方を理解する

アジェンダ

  • Amazon VPCとは?
  • VPCのコンポーネント
  • オンプレミスとのハイブリッド構成
  • VPCの設計
  • VPCの実装
  • VPCの運用
  • まとめ

Amazon VPCとは?

  • データセンターのデザインには何が必要?
  • オンプレミス環境では:土地、電源、UPS、ラック、空調、ファイバー、パネルスイッチ、IFモジュール、スイッチ、ルータ、ストレージ、サーバ、LB、FW、WAF、TA…
  • 従来のITインフラ
    • 要件定義
    • 机上検討
    • 機器選定
    • 検証機手配
    • 検証
    • 調達決裁
    • 発注
    • 納品待ち
    • 納品
    • ラッキング
    • ケーブリング
    • 設定投入
    • 動作検証
    • メンテナンス時間調整
    • 商用導入作業
    • 商用運用開始
      • さらに、フェーズにより担当が別れる
  • クラウド環境で仮想ネットワークを構築
    • 必要な機能を抽象化
    • サービスとしてあらかじめ用意されているものを組み合わせてすぐに利用開始!
    • NFV(Network Functions Virtualization)
    • APIで制御
  • クラウドに対する悩み・不安
    • インターネット接続のスケールアウトは?
    • 社内でルールにあうか?
    • ミッションクリティカルだが冗長性は?
    • 社内と専用線で接続するには?
  • VPC(Virtual Private Cloud)で解決可能
    • AWS上にプライベートネットワーク空間を構築
      • 任意のIPアドレスレンジが利用可能
    •  論理的なネットワーク分離が可能
      • 必要に応じてネットワーク同士を接続することも可能
    • ネットワーク環境のコントロールが可能
      • ルートテーブルや各種ゲートウェイ・コンポーネント
    • 複数のコネクティビティオプション
      • インターネット
      • VPN/専用線(Direct Connect)

VPCのコンポーネント

  • IGW(インターネットゲートウェイ)
  • サブネット
  • 仮想ルータ
  • ルートテーブル
  • VPC Peering
  • NATゲートウェイ
  • VPCエンドポイント
  • Elastic IP
  • VGW(バーチャルプライベートゲートウェイ)
  • VPNコネクション
  • カスタマーゲートウェイ
  • Elasticネットワークインタフェース
  • Elasticネットワークアダプタ
  • PrivateLink

VPCの作成

  • ネットワーク空間を定義
  • サブネットを定義
  • インターネットへの接続を設定
    • IGWをアタッチ
    • ルートテーブルを設定
  •  プライベートサブネットを追加
    • NATゲートウェイを配置

インターネットに接続しないネットワーク

  • プライベートサブネットを作成
  • オンプレミスと接続

ネットワーク要件に応じて自由に設定可能

VPCウィザードで数画面で作成可能

  • インターネット接続VPCのステップ
    1. アドレスレンジ選択
    2. AZにおけるサブネットを選択
    3. インターネットへの経路を設定
    4. VPCへのIN/OUTトラフィックを許可
  • VPCに使うアドレスレンジ選択
    • すでに使っている、もしくは使うであろうネットワークアドレスを避ける
    • 推奨:RFC1918レンジ
    • 推奨:/16
    • 最初に作成したアドレスブロックは変更できないことに注意(追加はできる)
  • AZにおけるサブネットを選択
    • アベイラビリティゾーン
    • 1リージョンに複数AZが存在
    • AZは地理的に分離
    • AZ間は高速専用線で接続
    • 推奨:各AZにサブネットを作成
    • 推奨:サブネットに/24設定(251個のIPアドレスを利用可能)
  • サブネットで利用できないアドレス(/24の例)

  • インターネットへの経路を設定
    • ルートテーブルはパケットがどこに向かえば良いかを示す
    • デフォルトで1つ作成される
    • VPC内はデフォルトでルーティングされる
  • 仮想ルータとルートテーブルの関係

  • VPCへのIN/OUTトラフィックを許可
    • セキュリティグループ = ステートフルFirewall
    • Network ACL = ステートレスFirewall
  • VPCセキュリティコントロール

  • NACL vs セキュリティグループ

  • 補足
    • サブネット内のDHCP
      • 自動割り当て
      • 固定の場合もDHCP経由で指定のIPが割り当てられる(OS上はDHCP設定とする)
    • Amazon DNS
      • Amazonが提供するDNS
      • 2つのIPで提供
        • VPC CIDRの2番目のアドレス(10.0.0.0/16の場合は10.0.0.2)
        • 169.254.169.253
      • VPC内からのみ利用可能
      • VPNや専用線経由では参照できない
    • Amazon Time Sync Service
      • VPC内で利用できるNTPサービス
      • NTPサーバのアドレスを169.254.169.123を設定するだけで利用可能
      • Leap Smearingによる「うるう秒」対応
  • IPv6対応

オンプレミスとのハイブリッド構成

  • プライベートネットワーク接続
    • VPN接続
    • 専用線接続(DirectConnect)
  • VPN接続
    • 2つのIPSecトンネルで冗長化
    • ルーティングはスタティックまたはBGP
  • 専用線接続(DirectConnect)
    • 接続ポイントへ専用線を敷設しAWSのルータと相互接続
    • ルーティングはBGPのみ
  • VPCからオンプレミスへのルート設定
    • 各サブネットへのルートテーブルの設定が必要
    • ルート伝達(プロパゲート)を有効にするとVGWで受信したルートを自動で反映
  • Direct Connect Gateway
    • Direct Connect GatewayがHubになり同一アカウントに所属する複数リージョンのVPCに接続できる
    • 全世界の全リージョンに接続できる

  • インターネットVPN vs 専用線

  • VPNとDirect Connectの冗長化
    • VPNとDirect Connectを同じVGWに接続
      • Direct Connect:アクティブ
      • VPN:スタンバイ
    • VPCからのOutboundは必ずDirect Connectが優先

VPCの設計

  • 設計のポイント
    • CIDRは既存のオンプレ、VPCと被らないアドレス帯をアサイン
      • プライベートアドレスに空きがない場合は100.64.0.0/10を使うのも手
    • 複数アベイラビリティゾーンを利用
    • パブリック/プライベートへのリソース配置を慎重に検討
    • 適切なセキュリティ対策
    • システム境界を明らかにし、VPCをどのように分割するか将来を見据えて検討
  • AWSクラウドとVPC
    • パブリックにあるAWSリソースはIGW経由の通信となる
  • VPC Endpoint
    • パブリックなAWSサービスに対してVPC内部から直接アクセスするための出口
    • Gateway型:
      • サービスに対するルーティングを設定
      • 通信先IPはグローバルアドレス
    • PrivateLink(Interface型):
      • エンドポイント用のプライベートアドレスが生成される
      • DNSがエンドポイントに対しプライベートアドレスを回答
  • NATゲートウェイ
    • プライベートサブネットのリソースがインターネットに通信するために利用
  • VPC分割のケース
    • アプリケーションによる分割
    • 監査スコープによる分割
    • リスクレベルによる分割
    • 本番/検証/開発フェーズによる分割
    • 部門による分割
    • 共通サービスの切り出し
    • AWSアカウントとVPC分割ターンはオペレーションモデルに沿ったものである必要がある
  • VPC Peering
    • 2つのVPC間でトラフィックのルーティングが可能

VPCの実装

  • マネージメントコンソール
  • AWS CLI/AWS SDK
  • サードパーティツール
  • CloudFormation

VPCの運用

  • VPC Flow Logs
    • ネットワークトラフィックをキャプチャ
    • ネットワークインタフェースを送信元/送信先とするトラフィックが対象
    • セキュリティグループ/NACLでAccepted/Rejectされたログを取得

まとめ

  • VPCによりさまざまな要件に合わせたネットワークを簡単に作成可能
  • 設計時には将来の拡張、他のネットワークの接続性を考慮したアドレッシングを
  • VPC構成は自社のITオペレーションモデルに合わせる
  • VPC単体ではなくVPC全体の関連性も視野に入れる
  • 実装や運用を補助するツールも有効活用

さいごに

AWSを使う上でもっとも基本的なサービスの1つといえる、VPCについて改めて整理されたセッションでした。

基本のサービスではありますが、最近ではPrivate Linkといったコンポーネントも登場し、複雑化している傾向があるように感じています。また、何気なく使っているAmazon DNSやVPC Peeringといったサービスも、きちんと仕様を理解していないと思わぬところでハマったりすることもあります。この機会に、改めて復習してみると新しい発見もあることでしょう。