ちょっと話題の記事

AWS再入門2018 Amazon VPC(Virtual Private Cloud)編

2018.01.13

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

こんにちは。池田です。某音声操作デバイスの購入招待メールを申し込んでから何日経ったのかは考えないことにしました。

はじめに

今回はAWS再入門2018シリーズとして、Amazon VPC(Virtual Private Cloud)について公式サイトの情報とslideshareに公開されている資料を元に整理していこうと思います。

もくじ

Amazon VPCとは

概要

  • AWS上に構築できるプライベートな仮想ネットワーク
  • リージョン内でAZをまたいだネットワークが構築できる
  • 2つのセキュリティ機能が標準で利用できる
  • VPC内にEC2をはじめとしたAWSサービスを配置し利用できる

VPCで作成されるネットワーク例

スライドのように、AZをまたいだネットワーク空間を作成することで高可用性を維持しつつも柔軟な構成ができます。 VGW(Virtual private Gateway)やVPNなどと組み合わせることでオンプレミス環境との連携も可能です。

セキュリティ機能

Amazon VPCはAWSアカウントにサインアップした時点でデフォルトVPCが用意されていますので、そのまますぐにEC2などのサービスを配置して利用することも可能ですが、まずは標準で利用可能なセキュリティ機能について確認しておきましょう。

  • セキュリティグループ
  • EC2インスタンスの仮想ファイアウォール
  • 主にVPC内に配置する各AWSリソース間のアクセス、トラフィックの制限に利用
  • デフォルトはインバウンド(受信)は全て拒否、アウトバウンド(送信)は許可
  • 必要な通信を許可するルールを追加していく
  • ステートフル(許可された通信への応答となる通信も許可される)
  • NACL(Network Access Control List)
  • VPC内に作成したサブネット毎に1つ設定するファイアウォール
  • インバウンド、アウトバウンドそれぞれの通信を許可/拒否できる
  • デフォルトは全て許可
  • ステートレス(インバウンド、アウトバウンド双方の通信にルールが必要)

Amazon VPCの利用例

各種AWSサービスの配置

Amazon VPCを利用することで、各種ネットワークハードウェアなどの調達をせずに、各リソースを外部からの不必要なアクセスから保護する構成を構築できます。

  • Webサーバは外部からのアクセスリクエストを受け取る必要がありますが、出入口をELBとすることで、外部からの不必要なアクセス(SSHやTelnetなど)から保護されます。
  • RDSはWebサーバからの通信のみを受け付ければ良いので、外部からの通信を受け付ける必要はなくEC2同様、不必要なアクセスから保護されます。
  • WebサーバおよびRDSは複数のAZに配置されており、高可用性を維持できます。
  • Auto Scalingを組み合わせることで、急な負荷の上昇やサーバ障害も迅速に復旧させることができます。

非Amazon VPC環境について

2013年12月4日以降にAWSアカウントを作成した場合はAmazon VPCのみが利用できますが、それ以前にアカウントを作成していた場合には以下の違いがあります。

  • 以前は他のアカウントとサブネットを共有するネットワークモデルだったので、それに対応したEC2-ClassicとAmazon VPCに対応したEC2-VPCの2種類がサポートされています。
  • リザーブドインスタンス(RI)を購入する際などにもEC2-VPCインスタンスかEC2-Classicインスタンスなのかを選択する必要がある
  • 現在はAWSアカウントごとに隔離されたネットワークモデルであるAmazon VPCのみとなっている

代表的なVPCの構成要素

インターネットゲートウェイ(IGW)

VPCに設置されたインターネットとの出入口

バーチャルプライベートゲートウェイ(VGW)

Amazon VPCに設置される。VPNまたは専用線などを経由してオンプレミス環境や社内ネットワークと通信するための出入口

カスタマーゲートウェイ(CGW)

オンプレミス環境や社内ネットワーク側に設置される。Amazon VPC(VGW)とVPNまたは専用線などを経由して通信するための出入口

ルートテーブル

各サブネットに対して、デフォルトゲートウェイとなる出入口(IGWやVGWなど)を指定する機能

サブネット

VPCは他のAWSネットワークとは論理的に切り離された1つの仮想ネットワークを指しています。 サブネットはVPCにおいてIPアドレスの範囲で分離されたネットワーク空間となり、ここにEC2などのAWSリソースを配置します。 VPCは複数AZをまたいで作成することができますが、サブネットは単一AZ内に作成することになります。

プライベートサブネットとパブリックサブネット

  • パブリックサブネット : 公開Webサーバなど、インターネットとの通信を行いたいリソースを配置し、インターネットゲートウェイ(IGW)がデフォルトゲートウェイに設定されたサブネット。
  • プライベートサブネット : DBサーバなどを配置し、インターネットからの通信は直接受け付けない状態で利用するIGWが設定されていないサブネット。
  • 配置するリソースとその目的に応じたサブネットを作成し、適切なセキュリティグループおよびNACLと組み合わせることで、セキュリティレベルを維持したネットワーク構築が行えます。

NAT

  • プライベートサブネットに配置したサーバ群が、インターネットとの通信を安全に行うためのアドレス変換とポートアドレス変換を行う。
  • NATゲートウェイとNATインスタンスが提供されている。
  • マネージドサービスであるNATゲートウェイの方が可用性と帯域幅で優れている。
  • IPv6を利用する場合はEgress-Onlyインターネットゲートウェイを利用する。

Elastic IP

  • アカウントごとに割り当てられる固定のグローバルIPアドレス。
  • EC2インスタンスに利用します。

VPCピアリング接続

  • 2つのVPCを接続する機能です。
  • 本番環境と開発環境など異なるVPCに構築した環境間での通信をプライベートIPアドレスで行う際に利用する

VPCエンドポイント

PrivateLinkを使用するAWSサービスやVPCエンドポイントサービスとVPC接続する仮想デバイス。インターフェイスとゲートウェイの2タイプがある。

  • インターフェイス(AWS PrivateLink を使用)
  • サポートされるサービスを宛先とするトラフィックのエントリポイントとなるプライベートIPアドレスを持つElastic Network Interface
  • ゲートウェイ
  • サポートされる AWS のサービスを宛先とするトラフィックに使用する、ルートテーブルの指定されたルートのターゲットであるゲートウェイ

まとめ

EC2やRDSなどを支えるネットワーク基盤として重要な機能であるVPCについて、公式ドキュメントには非常に多くの情報が掲載されています。 VPCは非常に重要な機能のひとつではありますが、一度構築するとなかなか変更や作成をする機会は少ないと思います。そこで、今回はついつい忘れがちなセキュリティ面の基礎と構成要素を中心にまとめてみました。 最後に、AWS再入門2018シリーズとして公開した他の記事をご紹介しておきますので、ご覧ください。 - AWS再入門2018 バックアップとディザスタリカバリ編 - AWS再入門2018 Identity and Access Management(IAM)編