👮

Amazon VPCと向き合う

2024/12/03に公開

はじめに

仕事でAWSを使用していて、Amazon VPCについての解像度が薄すぎたので復習のためにこの記事を書きました。「VPC」という単語があるせいか、「VPN」と混同しがちなので両者の違いにも触れます。また、どんな場面で使用するかイメージしにくい人もいると思うので、具体例を交えながら説明しようと思います。

Amazon VPCとは?

Amazon VPCは、AWS上に専用の仮想ネットワークを構築できるサービスです。このVPC内では、以下のようなネットワーク構成を自由に設計・管理できます。

  • IPアドレス範囲の設定(CIDRブロックの指定)
  • サブネット(パブリック/プライベート)の作成
  • ルーティングテーブルの構成
  • セキュリティグループやネットワークACLによるアクセス制御

    VPCを使うことで、オンプレミスのような安全でカスタマイズ可能なネットワーク環境をクラウド上に構築できるのが特徴です。

VPNとの違い

次に、「VPC」と「VPN(Virtual Private Network)」の違いについてまとめます。

項目 Amazon VPC VPN
役割 AWS上の仮想ネットワーク空間の構築 公衆回線上で安全な通信を実現
対象 クラウド上のリソース インターネット経由で接続するリモート拠点やデバイス
AWSでの利用例 EC2やRDSをセキュアに配置・管理 オンプレミスネットワークとAWS環境を接続
用途 AWS内のネットワーク設計やリソース管理 遠隔地のネットワーク間をつなぐ


VPCはAWS環境の中での専用ネットワークの管理に特化していて、VPNはAWSとオンプレミス、もしくはリモートデバイスとの接続に役立つ技術かなぁってイメージです。

具体例で解像度を上げる

ここでは具体例を交えて、さらに解像度を上げたいと思います。

Amazon VPCとVPNを使ったシステム構成

ここでは、ある企業がAWSを利用してWebアプリケーションを運用するケースを想定します。

シナリオ想定

  • 企業の要件
    • インターネット経由で顧客が利用するWebアプリケーションを提供。
    • 顧客情報を安全に保存するデータベースが必要。
    • 社内システム(オンプレミス環境)とAWSを接続し、日次バックアップを実行。
    • セキュリティが確保されたネットワークを構築したい。

これを実現するために、以下の構成をAmazon VPCとVPNで構築します。

構成の詳細

  1. パブリックサブネットにWebサーバーを配置
  • 用途
    • 顧客がインターネットを介してアクセスするWebアプリケーションをホスト。
    • 外部ネットワークと直接通信が必要なため、パブリックサブネットに配置。
  • 設定例
    • セキュリティグループ
      • HTTP(ポート80)とHTTPS(ポート443)を許可。
      • 管理者用SSH(ポート22)は特定のIPアドレスに制限。
    • インターネットゲートウェイ
      • このサブネット内のインスタンスにインターネットアクセスを許可。
  • 具体的なサービス例
    • AWS EC2でWebサーバー(例: ApacheやNGINX)を実行。
    • サーバーレスポンスがユーザーのブラウザに直接届く構成。
  1. プライベートサブネットにデータベースサーバーを配置
  • 用途
    • 外部ネットワークから直接アクセスされることを防ぎ、安全に顧客情報を保存。
    • Webサーバーからのみアクセス可能。
  • 設定例
    • セキュリティグループ
      • データベースサーバー(例: AWS RDS)へのアクセスはWebサーバーからの通信(ポート3306)に限定。
    • NATゲートウェイ
      • サブネット内のインスタンスが必要に応じてインターネットに接続(例: ソフトウェア更新)できるように設定。
  • 具体的なサービス例
    • AWS RDSを使用し、データベース(例: MySQLやPostgreSQL)を構築。
    • データベースは定期的にスナップショットを取得し、バックアップ。
  1. オンプレミス環境とAWSをAWS VPNで接続
  • 用途
    • 社内システムとクラウド環境を安全に接続し、データ共有やバックアップを実現。
    • インターネットを介さず、VPNトンネルを利用して安全に通信。
  • 設定例
    • VPNゲートウェイ
      • AWS側に「仮想プライベートゲートウェイ(VGW)」を設定。
    • カスタマーゲートウェイ
      • オンプレミス側でVPN接続のエンドポイントを設定(例: Ciscoルーターなど)。
    • ルート設定
      • VPCルートテーブルで、オンプレミスネットワーク(例: 192.168.x.x/24)への通信はVPNゲートウェイ経由とする。
  • 具体的な利用シーン
    • 社内の顧客管理システムとAWSのデータベースを直接接続。
    • オンプレミスで生成されたログファイルをS3に転送し、長期保存。

システム構成の全体像

これらの構成では以下のような利点があります。

  1. セキュリティ強化
    • データベースはプライベートサブネットに配置し、インターネットからの直接アクセスを遮断。
    • VPNを活用することで、オンプレミス環境とAWS間の通信を安全に確保。
  2. 可用性の向上
    • NATゲートウェイやインターネットゲートウェイを適切に組み合わせることで、インスタンスが必要な通信を円滑に行える。
  3. スケーラビリティの確保
    • VPCはサブネットやセキュリティ設定の追加・変更が柔軟に可能で、ビジネスの拡大に対応。

最後に

Amazon VPCは、AWS上でセキュリティを保ちながら柔軟なネットワーク設計を可能にする強力なツールです。一方で、VPNはそのVPCを外部ネットワークと安全に接続するための補助的な役割を果たします。
これらの役割を抑えることで堅牢なシステム構築が可能になることを再認識できました。
AWSを活用する際は、これらの機能を組み合わせてセキュアかつ効率的なシステムを構築しましょう!
お付き合いいただきありがとうございました。

Discussion