注目の記事

インフラエンジニアに贈るAmazon VPC入門 #1 概要とルーティング

2013.04.13

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

ども、大瀧です。6月にNothing's Carved In Stoneの新譜が出ると聞いてテンション上がっている今の勢いを生かし、シリーズものにチャレンジしてみます。

シリーズの目次はこちら

前振り(読み飛ばし可)

インフラエンジニアのみなさーん、AWS触ってますかー?

「うちのシステムはAWSを使っていない」、「AWSじゃない国産クラウドを使う予定」など、AWSの認知度は一般にはまだまだ低いのが現状だと思います。しかし、組織のインフラは今後遅かれ早かれ、オンプレミスだけでなくクラウド環境と合わせて付き合っていかなければならないことは明らかですし、先行しているAWSの技術が他のクラウド製品のコンポーネントに与えている影響も、実はとてつもなく大きかったりします。

現状、多くのクラウド製品では、クラウドで利用できる機能を説明するときに"●●版S3"、"●●版セキュリティグループ"というように、AWSから機能名をまるっと引用し、その上でAWSと比べて"まだ(AWSにはある)この機能はない"、"この点はAWSよりも秀でている"と紹介している状態です。従って、「まだクラウドを使っていない」、「他のクラウドを使っている」というインフラエンジニアも、AWSについて理解を深めることには大きな意味があると思います。

AWSのネットワーク技術に斬り込む

AWSの説明は独特なAWSの用語やアイコンで書かれているせいか、「なんだか特殊な技術が使われていそうで怖い」、「一から勉強することが多くて難しそう」というように、敷居が高く見えるかもしれません。というか私は、AWSを触るようになるまでそう思ってました。しかし実際は、既存の技術をうまいこと組み合わせているだけで今までの知識の応用で理解できることがほとんどです。

個人的に最もとっつきにくかったのが、今回のテーマでもあるAWSのネットワークです。クラウドのネットワークというと、SDN(Software Defined Network)を筆頭に、OpenFlowだとかVXLANと言ったすごーく難しいベンダー独自技術とかが満載!!というイメージがあるかもしれません。 しかし、そういったものは実際には"クラウドの"インフラ部分で実装される、クラウドを利用するユーザーからは見えないレイヤーの話です。 AWS上のネットワークを構築する分には、TCP/IPネットワークの知識で十分対応できます。

そこで今回は、AWSのネットワーク周りの機能を以下の方針で解説してみたいと思います。

  • AWSの用語はなるべく使わない、併記する
  • 構成図もなるべく普通のアイコン(Cacooの"オフィス"カテゴリとか)を使う

AWSネットワークの全体像

それでは早速、外観から見ていきたいと思います。AWSでは、ネットワークに関する機能やサービスをまとめてVPC(Virtual Private Cloud)と呼びます。ちなみに、VPNなど一部の接続と通信するデータ量への課金を除き、全ての機能が無料です。Amazonさん太っ腹!

というわけでVPCの構成イメージを。どーん。

vpc01

イメージにあるように、VPCには色々なオプションがありますが、基本的には組織で使われる中規模なLANという認識で問題ありません。
VPCのIPアドレスは、以下の規則で指定します。

  • VPC全体で1つのIPアドレス空間を持つ
  • サブネットでIPアドレス空間を分割する

アドレス空間は、VPC全体で16ビット以上の任意のネットワークアドレス(例:192.168.0.0/16, 172.31.1.0/24)をVPCの作成時に設定します。

ネットワークアドレスは作成後は変更できないので、20ビット以下など、ある程度のレンジを持つアドレスにするのが無難です。

サブネットとルーティング

VPC内には1つ以上のサブネットを作成し、アドレス空間およびネットワークセグメントを分割します。サブネットで指定したIPアドレスのうち、先頭4つと末尾の1つはVPCで予約されるため使用できません。例えば、サブネットを

192.168.1.0/24

とした場合、以下のようになります。

  • 192.168.1.0、192.168.1.1、192.168.1.2、192.168.1.3、192.168.1.255は使用不可
  • 192.168.1.4〜192.168.1.254を使用できる

サブネットを複数作成すると、サブネット間のトラフィックは仮想ルーターがゲートウェイとして動作することで相互に通信できるようになっています。仮想ルーターはVPC作成時に自動作成されます。ユーザーが仮想ルーターにログイン、操作することはできませんが、仮想ルーターはサブネット間のルーティング情報をあらかじめ持ち、インターネットなど外部ネットワークと通信するためのルーティング情報も必要に応じて追加することができます。

vpc02

この辺りは次回以降でもう少し解説するタイミングがあるので、ひとまずVPC内のルーティングは仮想ルーターが面倒をみてくれることだけ覚えておいてください。

VPCのネットワークサービス

VPCで提供されるネットワークサービスを紹介しておきます。各サービスの詳細は、シリーズの今後のエントリーで順次解説していくので、とりあえずこんなのがあるんだー、と眺めておいてください。

  • DHCP
  • 仮想IP/仮想NIC
  • DNS
  • NAT
  • インターネットゲートウェイ
  • 仮想ゲートウェイ
  • IPフィルタ/ファイヤーウォール

これらのサービス以外でなにか使いたいものがある場合は、EC2インスタンス(AWSの仮想マシン)を立ち上げて、そのマシン上でサービスを立ち上げることになるので、今回のシリーズでは対象外とします。

制限事項

VPC内では、マルチキャスト、ブロードキャストはサポートされません。
AWSの構成でマルチキャストを使うシチュエーションとしては、Microsoft WindowsのNLB、ルーターなどの冗長構成で使うVRRPが挙げられます。これらはNGなので、ワークアラウンドを探りましょう。

Default VPCについて

最近のホットな話題として、Default VPCがあります。Default VPCは、既定のVPCが作成される機能として一部のリージョン(2013年4月13日現在ではシドニーとサンパウロ)で有効になっていますが、リージョンごとに徐々に導入が進む予定で、東京ではまだ動きません。本シリーズでは、必要に応じてDefault VPCの補足を入れますが、基本的なVPCの機能や考え方はDefault VPCと従来のVPCで特に大きな違いはないと考えて問題ありません。

まとめと次回予告

今回は、VPCの概要をざっと紹介し、TCP/IPネットワークの知識で十分太刀打ちできること、アドレス空間などの構成も一般的なLANと同様なことを紹介しました。
次回は、ネットワークの基本構成となる、IPアドレスおよびMACアドレスのVPCでの管理方法を取り上げます。ご期待ください。長い道のりになりそうですが、どうかお付き合いくださいませ。

参考文献