AWSのVPCって何?メリットや使えるシーンなど徹底解説!
「AWSの開発をしているけど、VPCがよくわからない!」
「AWS VPCってどんな時に使うの?」
この記事ではこういった疑問に答えていきます。
AWSの開発において、ネットワーク制御を行うために必要なVPC(Virtual Private Cloud)は、最初に設定するものとして、避けられないものです。
ネットワークの知識が豊富にあれば、問題ないのですが、クラウドの場合は、知識がそこまで豊富になくても何となく作れてしまうため、理解自体が希薄になってしまい、そもそもVPCについての理解度が低くなってしまいます。
そこで今回は、何となくの理解になってしまいがちなAWS VPCについて、そもそもVPCとはどんなものなのか、用途はどういうものなのかについてご紹介していきます。
そもそもAWS VPCとは何か?
AWS VPC(Amazon Web Service Virtual Private Cloud)とは、その名の通り、ユーザー専用のプライベートなクラウド環境を提供するサービスのことです。
AWSには、代表的な仮想サーバーの「Amazon EC2」、データベースの「RDS」などがありますよね。例えば、EC2同士を内部的に通信したい場合や、RDSとやり取りをしたり、内部と外部のネットワークを繋いだりと、多くのAWSはVPCを利用しています。
AWS VPCを使うメリットとは
AWS VPCの強みは、ネットワーク設定を簡単にカスタマイズすることが出来る点です。
カスタマイズによって、次のような要件が担保されることがメリットと言えるでしょう。
可用性
可用性とは、サービスが継続的に利用可能で、停止していないことを意味します。
VPCを使うことで、VPCの中の複数リソースへの通信を制御することができ、可用性が担保されます。
例えば、複数のAmazon EC2インスタンスへのアクセスをロードバランサで制御することで、インスタンスにかかる負荷を軽減します。
性能・拡張性・移行性
VPCではリソースのスケールアウトや新環境への移行を容易に行うことができます。
例えば、サービスのアクセス増加に合わせてスペックを調整するなど、サービスの成長に合わせた性能を得ることができます。
運用・保守性
VPCの中で構築したネットワークやリソースは全て一括で管理されるため、まとめて監視することが可能です。
これによって、障害が起こる前にリスクを検知して対処するなど、より迅速な保守対応が実現できます。
セキュリティ性
VPCの中でネットワークを分割して制御することで、ネットワークごとにアクセスの制御・監視が行われます。
セキュリティグループやネットワークアクセスコントロールリストなど、非常に強力なセキュリティを使って、一部のリソースへのアクセスをコントロールすることも可能です。
AWS VPCではどんなものを設定出来る?
AWSでは、基本的にVPCが必須なのですが、実は勝手にAWS側が用意してくれています。すぐに使えるVPCとしては、Default VPCと呼ばれている、すぐに使うことの出来るVPCがあります。
このVPCを使ってまずは色々なものを設定していくのですが、具体的にどんなものを設定することが出来るか気になりますよね。以下に設定出来るもののリストを挙げてみました。
ここでは、具体的にそれぞれの設定について噛み砕いて解説していきます。
サブネット
サブネットはVPCのIPアドレスの範囲を指します。AWSリソースをサブネットに割り当てることで、それらのAWSリソースは、サブネットのネットワーク内で起動させることができます。
VPCの上限を超えなければいくらでも作ることが可能なため、VPC を複数のサブネットに分割することで、ネットワークをセグメント化して制御することができます。
サブネットには、主にパブリックサブネットとプライベートサブネットがあります。パブリックネットは字のごとく、外のネットワークと直接繋がっているサブネットで、プライベートサブネットとは、直接は外のネットワークに繋ぐことのできないサブネットになります。
それぞれのサブネットはAZ(アベイラビリティゾーン)を指定する必要があり、これはVPCの「Subnet」画面で設定することが可能です。
基本的に、Webサービスを開発する場合は、パブリックネットワークにしてしまいがちなのですが、外部から攻撃を受ける可能性も高いので、可能な限りプライベートサブネットにリソースを置くことが好ましいです。
なお、プライベートサブネットをパブリックにするには、後述するインターネットゲートウェイに接続する必要であることを覚えておきましょう。
インターネットゲートウェイ(IGW)
インターネットゲートウェイ(IGW)とは、VPCとその外のネットワークを繋ぐための接合点のようなものです。IGWを作成して、サブネットに繋ぐことで、サブネットと外部とのネットワークのやりとりを可能にすることができます。
ルーティング
サブネットを利用するために、各サブネットに対してルートテーブルを作成する必要があります。仮想的なルーターと考えるようにしてください。
例えば、ルートテーブルを作成して、接続先に作成したIGWを使うことで、ネットワークがIGWに転送されるようになり、サブネットがパブリックサブネットとなります。
DHCP
DHCPとは、ネットワーク内の各デバイスにIPアドレスを動的に割り当てる仕組みのことを指します。
Default VPCの場合、「DHCP Options Sets」という画面でDHCPが提供するネットワーク構成を指定することができます。独自のDHCPが必要な場合は別ですが、基本的には、AWSが予め準備しているものを使えば十分です。
ネットワークアクセスコントロール(NACL)
IPアドレス単位でサブネットへの通信の制御をします。外側と内側の通信に対して、プロトコル・ポート・IPアドレスを入れて許可するのか、しないのかを決めていきます。
VPCを作成する時は、IPv4 CIDR blockを設定する必要があります。これは、作成したVPCの中で利用することが出来るネットワークのアドレス範囲を規定していて、インスタンスに割り当てられる内部ネットワークの上限アドレス数を決めることが可能です。
AWS VPCの用途は?
では、具体的にどのようにAWS VPCが使われているのかについてご紹介します。AWS VPCは、用途によって外部ネットワークとの組みわせが変わってきます。
インターネット向けシステム
インターネットを経由するシステムを提供する用途で使われるケースです。インターネット接続を待ち受けるインスタンスにはグローバルIPを設定しますが、必ず全てのインスタンスに付与する必要はありません。
高可用システムを作成するために、ELB(Elastic Load Balancing)から複数のEC2にトラフィックを転送する構成が用いられることが多いです。このように、可用性を向上させるために負荷を分散させる使い方があることも覚えておきましょう。
オンプレミス向けシステム
オンプレミスとは、サーバーやソフトウェアなどの情報システムを自社で管理し、運用すること、つまり従来のサーバー運用形態のことをさしています。
オンプレミスのネットワークの延長としてVPCを相互に接続することで、データセンターのサーバーや企業の拠点PC向けシステムを提供しています。
インターネット兼オンプレス向けシステム
これは、先ほどのインターネット向けのシステムとオンプレス向けのシステムとの両方の接続をVPCに設定する構成です。普通は、クラウドか、オンプレスかの2択なので、珍しい使い方です。ルーティングテーブルのセキュリティ設定で対応するようにしましょう。
まとめ
今回は、AWS VPCについて概念の部分から、どういったことに使われるのかについて幅広く解説してきました。
AWSはネットワークに関する専門知識が無いユーザーでも使えるように設計されているのですが、専門知識を持って設計されたネットワーク構成を具現化する設定出来るようにもなっています。
実際にしっかり理解して使うのと、理解しないのでは全く違うので、実際に自分でVPCを作って理解出来るようにしましょう。
この記事のキーワードに関する勉強会・イベントを探す
TECH PLAYでは、ITエンジニア向けの勉強会・イベント情報を提供しています。
興味のある方はぜひご参加ください。