AWSで簡単にサーバーを立てることができるのは、本ブログでもすでに紹介したとおりです。ですが、それを自社内ネットワークには参加させられないですよね。この悩みは多くの現場が抱えており、クラウド化ができない要因の1つでもあります。
その他、こんなお悩みありませんか?
もし、これらが解決できたら夢のようです。ネットワークの変更、拡張や使いたかったサービスを自社内LANに導入できる・・・実はそれらの望みを叶えられる方法があるんです!
それが今回解説するAmazon Virtual Private Cloud(Amazon VPC)です。
Amazon Virtual Private Cloud(VPC)とは
VPCとは、AWS内に構築する仮想ネットワークです。
ネットワークといえば、ネットワーク図にしたがってLANケーブルとハブ、ルーター、または無線LANルーターをつなげて・・・と「物理的に」構築するというイメージがつきまといますよね。ネットワークを拡張するときも、LAN機器と配線用具、工具を持って現場フロアを走りまわるようなイメージです。
VPCでは、すべてAWS上の仮想ネットワークで行えます。つまり物理的なものは一切なくなります。この仕組みが、素晴らしいメリットをもたらしてくれます。
Amazon VPCの特徴
VPCが何かということが分かったら、次はそのメリットを知りましょう。順次解説していきます。
自社内のローカルなLANに接続可能
サーバーが1台あれば複数のPCでデータ共有できるし、プリンタも最近はWifiに接続できるモデルが増えました。自社独自のアプリケーションを導入するときもサーバーが必要な場合があります。こう考えると、規模の差はあれ、すでにネットワークが構築されている企業が多いでしょう。
自社ネットワークと、VPCで構築したネットワークを接続することが可能です。つまり、AWS上の各種サービス(例えばEC2やRDSなど)に対し10.0…などのプライベートIPアドレスで接続できるのです!あたかも自社内ネットワークの中にAWSの各種サービスが入ってきたようです。
考えようによっては、自社内ネットワークの拡張先をAWS内へ、ともいえますね。
Amazon VPCは変更が自由自在
前述のとおり、Amazon VPCはAWS基盤上の仮想ネットワークです。よってネットワーク構成の変更や追加、またはネットワーク内へのインスタンス追加などが自由自在にできます。設定すると即座に反映されます。
VPCネットワークを相互に接続できますが、何も設定しなければ完全に独立しています。この特性を利用して、本稼働しているネットワークに影響を与えずに、他にネットワークを作ることができます。
使用するメリット
Amazon VPCを使用するメリットを解説します。
使い方の自由度が高い
何といってもこれでしょう。
設定の追加や変更は、すべてブラウザ上で可能です。現場に赴いて工具で配線をして・・・という手間から解放されます。また一時的にサーバーインスタンスをネットワーク内に立てて、それが終わればインスタンスごと削除、ということもできます。使い方はさまざまです。
セキュリティがしっかりしている
意識を持って設定しない限り、インターネット回線からは接続できません。また、RDSやS3側でVPCからのアクセスしか受け付けないように設定できるので、VPCそれ自体だけでなく、VPCが他のAWSのサービスを守ることもできます。
ネットワークアクセスコントロールリスト(NACL)を利用して、インバウンド・アウトバウンド(つまりネットワーク外からのアクセスと、ネットワーク外へのアクセス)について何を許して何を禁止するのか、といった制御も可能です。
拡張性が高い
仮想ネットワークを1つ作って、さらに他にネットワークを作り、それらを相互に通信させることができます。また前述のように、オンプレミス環境から仮想ネットワークへVPN経由で接続できます。1つの仮想ネットワークにAWSの様々なサービスを投入できます。拡張の仕方は自由です。
VPCとCloudWatchを連携し、ログ取得や稼働監視をさせることができます。つまりVPCはAWSの各種サービスとの連携が容易なので、拡張性はとても高いですね。
Amazon VPCが活躍するシーン
Amazon VPCが活躍できるのは、どんなシーンでしょうか?順次解説していきます。
インターネット向けシステム
一番シンプルなインターネット向けWebシステムの構成を考えてみましょう。
パブリックネットワーク(VPCネットワーク1)に置かれたEC2インスタンスがインターネットからのアクセスを受けます。そこからプライベートなネットワーク(VPCネットワーク2)に置かれたデータベースやS3バケットにアクセスします。一般的なWebアプリケーションの構成です。
VPCネットワーク2はVPCネットワーク1からのアクセスしか受け付けないように設定すれば、セキュリティが担保できます。
オンプレミス向けシステム
インターネットからのアクセスを完全に遮断して、自社向けのみの構成で考えてみます。
自社内のシステムをAWSに置く場合です。会社とAWSはVPNで接続し、VPCはインターネットからの接続を完全に遮断します。VPNルータは対応機種が限られていますので、事前に確認しておく必要があります。
インターネット兼オンプレミス向けシステム
前述の2パターンを同時に実現する構成です。
インターネットからのアクセスはインターネットゲートウェイを経由してのみ可能とし、それ以外は一切遮断します。それが図のVPCネットワーク1です。その中にWebサーバーをセットすれば一般的に公開するWebシステムができます。
そして社内から、またはVPCネットワーク1からのみアクセスが可能なVPCネットワーク2を作ります。ここはセキュアなエリアなのでDBサーバーなどの大事なものをセットできます。
料金
VPCの利用は無料です。ただしVPNの利用する場合は1時間あたり0.05ドル/1接続で、1ヶ月あたり1ドル120円換算でだいたい4500円です。トラフィックに応じて課金されます。データ転送量に応じて、VPCからみたアウトバウンドに対して課金されます。
始め方
VCPそのものはすぐに作れます。AWSマネジメントコンソールから「ネットワーキング&コンテンツ配信」の中のVPCを選択してください。
以下の4つの選択肢があります。
- 1個のパブリックサブネットを持つVPC
- パブリックとプライベートサブネットを持つVPC
- パブリックとプライベートサブネットおよびハードウェアVPNアクセスを持つVPC
- プライベートのサブネットのみで、ハードウェアVPNアクセスを持つVPC
これまでの解説を読んでこられたのであれば、この選択肢が何を指すのかだいたいお分かりかと思います。「パブリック」とはインターネットからアクセスできること、「プライベート」とは設定しない限りどこからもアクセスできないことを指します。
雰囲気を掴んでいただくために、一番最初の選択肢だけ画面を見てみましょう。
VPC名やIPアドレスの範囲を決めるCIDR(サイダー)、エンドポイント(インターネットからアクセスする際の接続ポイント、URL)の追加などを行います。
では逆に、EC2インスタンスをVPC内に作成するときはどうするのでしょうか?作成するときに、どのVPCに作成するのか選択できるのです。
VPCに対応しているサービスはだいたいこんな感じです。サービス立ち上げ時にVPCを選択します。
まとめ
本記事ではAWS全般にかかわるとても大事なサービスであるAmazon VPCを解説しました。
ネットワークの知識が必要になることが多く習得するのがやっかいですが、その分習得できた後の応用はとてつもないものがあります。
これを機会にぜひ取り組んでみてくださいね!