+ 作るログイン
1 / 20
AWS でサービスを作る ― 知識ゼロから、構成を自分で考えられるまで / 全32章

AWS 05:VPC ― 自分専用のネットワーク

発行
アニメモ公式
版
第2版
改訂
コマ
全20

AWS にサーバーを置く前に、置く「場所」を作ります。IP アドレスとは何か、家や会社の中だけで使うプライベート IP、10.0.0.0/16 のような CIDR の読み方を、4つの箱が色を変えていく図で説明します。そのうえで VPC を1つのリージョンに作り、環境ごとに重ならない番号を割り振る設計の考え方、デフォルト VPC との違い、作り方と消し方までを扱います。

サーバーを置く前に、置く「場所」を決める

第4章までで、アカウントを安全にし、リージョンを選び、権限とお金の見張りを用意しました。いよいよサーバーを置きたくなりますが、その前に1つ決めることがあります。サーバーをどこに置くか、つまりネットワークの場所です。

図のように、Web サーバーとデータベース(DB:利用者の情報や投稿を保存しておく入れ物)を、何も考えずにインターネットへそのままつないだとします。

起きることなぜ困るか
DB にも世界中から直接届くパスワードを総当たりされれば、利用者の情報がまるごと盗まれる
どの扉が開いているのか把握できない置いた部品ごとにバラバラに外とつながり、全体を見渡せない
他人の機械と区別がない「ここから先は自分の範囲」という線が引けない

インターネットには、開いている扉を探して1日中巡回している攻撃用のプログラムがいます。新しいサーバーを外に向けて開けると、数分のうちに叩かれ始めるのは珍しくありません。

利用者に見せたいのは Web サーバーだけです。DB は Web サーバーからだけ使えれば十分です。こうした「どこを開けて、どこを閉じるか」を自分で決めるには、まず自分専用の囲まれた場所が必要です。それがこの章の VPC です。

※2026年9月時点の情報です。画面・料金・細部は変わることがあります。

  • AWS でサービスを作る 05 ― VPC:自分専用のネットワーク
  • 1 / 20
  • サーバーを置く前に、置く「場所」を決める
  • インターネット
  • インターネット
  • サーバー
  • Web サーバー
  • NG
  • DB に直接つながる
  • 世界中の誰でも
  • 誰でも届く
  • フォトログの本体
  • NG
  • 何が開いているか不明
  • NG
  • 他人の機械と区別がない
  • ロボット
  • 攻撃する機械
  • データベース
  • データベース
  • 扉を24時間探す
  • DB にも届く
  • 利用者の情報
  • ひらめき
  • 何も考えずに置くと、DB まで世界中から叩ける。まず「自分だけの場所」を用意する。

VPC は、塀で囲った自分専用の敷地

VPC(Virtual Private Cloud=仮想の、自分専用のクラウド)は、AWS の中に作る自分だけのネットワークです。

たとえるなら、広い土地(AWS)の中に、塀で囲った自分の敷地を持つようなものです。敷地の中に何を建てるか、どこに門を付けるか、誰を通すかは、持ち主のあなたが決めます。塀の外にいる人は、あなたが門を付けない限り入れません。

図では、Web サーバーと DB が青い囲み(VPC)の中に入りました。インターネットから敷地に入る道は、あなたが決めたところだけです。

この章と続く3つの章で、敷地づくりに必要なものを順にそろえていきます。

たとえAWS での名前章
敷地VPCこの章
住所IP アドレスこの章
敷地の中の部屋サブネット第6章
部屋に貼る道案内ルートテーブル第6章
外へ出る専用の出口NAT ゲートウェイ・VPC エンドポイント第7章
扉ごとの門番セキュリティグループ第8章

AWS の中にはあなた以外にも無数の利用者がいますが、VPC が違えば、同じ建物の中にいてもお互いに見えない別の世界として扱われます。

VPC を理解するには、まず「住所」、つまり IP アドレスの読み方を知る必要があります。次から、そこを丁寧に見ていきます。

  • AWS でサービスを作る 05 ― VPC:自分専用のネットワーク
  • 2 / 20
  • VPC は、塀で囲った自分専用の敷地
  • 入口は自分で決める
  • VPC(自分専用のネットワーク)
  • 敷地
  • VPC(この章)
  • インターネット
  • インターネット
  • 世界中の誰でも
  • サーバー
  • Web サーバー
  • フォトログの本体
  • 住所
  • IP アドレス(この章)
  • 部屋
  • サブネット(第6章)
  • ロボット
  • 攻撃する機械
  • NG
  • データベース
  • データベース
  • 道案内
  • ルート(第6章)
  • 扉を24時間探す
  • 利用者の情報
  • 門番
  • SG(第8章)
  • ひらめき
  • VPC=AWS の中に作る、自分だけのネットワーク。中に何を置き、どこを開けるかを自分で決める。

IP アドレスは、コンピューターの住所

手紙を送るには、相手の住所が必要です。ネットワークでも同じで、データを送るときは必ず宛先の住所を書きます。この住所を IP アドレス(Internet Protocol address)と呼びます。

図では、あなたの PC がフォトログの Web サーバーに「写真を見せて」と頼んでいます。そのお願い(リクエスト)には、宛先として 203.0.113.10 という IP アドレスが書かれています。

IP アドレスは、図の4つの箱のように、0〜255 の数字を4つ、点でつないだ形をしています。

例読み方
203.0.113.10203 と 0 と 113 と 10
10.0.1.2510 と 0 と 1 と 25
192.168.1.10家の中でよく見る形

ふだんブラウザに打つのは photolog.example.com のような名前ですが、裏では名前が IP アドレスに変換されてから送られています。名前から IP アドレスを調べる仕組みを DNS といい、第14章で扱います。

この4つの数字の並びを IPv4(アイピーブイフォー)と呼びます。もっと桁の多い IPv6 という新しい形もありますが、この本では、いまも最もよく使われる IPv4 を中心に説明します。

大事なのは、同じネットワークの中で、同じ住所は2つあってはいけないということです。住所が重なると、手紙がどちらに届けばいいかわからなくなります。この「重ならない」は、この章の後半でもう一度出てきます。

  • AWS でサービスを作る 05 ― VPC:自分専用のネットワーク
  • 3 / 20
  • IP アドレスは、コンピューターの住所
  • ノートPC
  • あなたの PC
  • サーバー
  • Web サーバー
  • 写真を見たい
  • 宛先 203.0.113.10 へ送る
  • 203.0.113.10
  • 203
  • .
  • 0
  • .
  • 113
  • .
  • 10
  • 4つの数字を「.」でつなぐ。それぞれ 0〜255 のどれか
  • ひらめき
  • ネットで何かを送るときは、必ず相手の住所(IP アドレス)を書く。4つの数字でできている。

外線と内線:パブリック IP とプライベート IP

IPv4 のアドレスは全部で約43億個しかありません。世界中の PC やスマホに1つずつ配るには、とても足りません。そこで、IP アドレスには2種類あります。

種類たとえどこで通じるか
パブリック IP会社の外線番号インターネット全体。世界に1つだけ
プライベート IP会社の内線番号家や会社の中だけ。外では通じない

図の家の中を見てください。あなたの PC は 192.168.1.10、スマホは 192.168.1.11 という内線番号を持っています。隣の家でも、まったく同じ 192.168.1.10 が使われているかもしれません。内線番号なので、それで問題ありません。

では、家の PC がインターネットの Web サーバーと話すときはどうするのでしょう。ここで家のルーター(ネットワークの出入り口にある機械)が働きます。ルーターは外線番号 203.0.113.50 を1つ持っていて、PC から出ていくデータの差出人を、内線番号から外線番号に書き換えて送り出します。返事が戻ってきたら、元の PC に届け直します。

この「差出人を書き換えて外とやり取りする仕組み」を NAT(ナット)と呼びます。第7章で、AWS の中でも同じことをします。

VPC の中のサーバーには、基本的にプライベート IP を振ります。外から直接届いてほしいものにだけ、パブリック IP を追加で持たせます。

  • AWS でサービスを作る 05 ― VPC:自分専用のネットワーク
  • 4 / 20
  • 外線と内線:パブリック IP とプライベート IP
  • 家の中(プライベート IP の世界)
  • ノートPC
  • あなたの PC
  • 192.168.1.10
  • ルーター
  • ルーター
  • パブリック IP で
  • サーバー
  • Web サーバー
  • 外は 203.0.113.50
  • 203.0.113.10
  • スマホ
  • スマホ
  • 192.168.1.11
  • 内線(プライベート IP)は中でだけ通じる。外線(パブリック IP)は世界に1つだけの番号
  • 外へ出るとき、ルーターが差出人を外線番号に書き換える(この仕組みが第7章の NAT)
  • ひらめき
  • プライベート IP は家や会社の中だけで通じる内線番号。外に出るときは外線番号に付け替える。

プライベート IP に使ってよい3つの範囲

どの番号をプライベート IP にしてよいかは、世界共通のルール(RFC 1918 という取り決め)で決まっています。次の3つの範囲です。

範囲書き方個数
10.0.0.0 〜 10.255.255.25510.0.0.0/8約1,677万個
172.16.0.0 〜 172.31.255.255172.16.0.0/12約105万個
192.168.0.0 〜 192.168.255.255192.168.0.0/16約6.5万個

この3つの範囲の番号は、インターネット上では使われません。だから世界中の家や会社が、同じ番号を安心して使い回せます。家のルーターの多くが 192.168.x.x を配っているのはこのためです。

AWS の VPC を作るときも、この3つの範囲から番号の範囲を選ぶことが推奨されています。AWS では `10.x.x.x` がよく使われます。いちばん広いので、たくさんの VPC に重ならないように割り振りやすいからです。

「書き方」の列の /8 や /16 が、次に説明する CIDR(サイダー)表記です。この表記が読めると、VPC の設定画面で何を入れればいいのかがわかるようになります。少し理屈っぽい話が3つ続きますが、ここを越えればネットワークの章がぐっと楽になります。

  • AWS でサービスを作る 05 ― VPC:自分専用のネットワーク
  • 5 / 20
  • プライベート IP に使ってよい3つの範囲
  • 10.0.0.0 〜 10.255.255.255
  • 家
  • 家のルーター
  • 10.0.0.0/8 約1,677万個
  • たいてい 192.168.x.x
  • 172.16.0.0 〜 172.31.255.255
  • クラウド
  • AWS の VPC
  • 172.16.0.0/12 約105万個
  • 10.x.x.x がよく使われる
  • 192.168.0.0 〜 192.168.255.255
  • 世界中で同じ番号を使い回してよい。 そのかわり、インターネットでは通じない
  • 192.168.0.0/16 約6.5万個
  • ひらめき
  • この3つの範囲は「中で使う専用」と世界で決まっている。VPC の番号もここから選ぶ。

IP アドレスの正体は、2進数32桁

コンピューターの中では、IP アドレスは0と1だけの数字(2進数)で扱われています。

4つの箱のそれぞれは、2進数の8桁です。たとえば 10 は 00001010、0 は 00000000 です。8桁の0と1で作れる組み合わせは、2を8回かけた 256通り。だから1つの箱に入るのは 0〜255 なのです。

項目値
1つの箱2進数8桁(256通り=0〜255)
箱の数4つ
全体32桁

ここで押さえておきたいのは、IP アドレスは「頭から順に」意味を持つということです。住所が「都道府県 → 市区町村 → 番地」と大きい順に書かれているのと同じで、頭のほうの桁が同じなら、同じ地域(同じネットワーク)の仲間です。

そこで、「このネットワークは、頭から何桁までが共通か」を書き表す方法が必要になります。それが CIDR(Classless Inter-Domain Routing)表記です。

10.0.0.0/16 と書いたら、「10.0.0.0 から始まり、頭の16桁が固定された範囲」という意味です。固定されていない残りの桁は、ネットワークの中で1台ずつに番号を振るために自由に使えます。

次で、この「固定」と「自由」が箱の色でどう変わるかを見てみます。

  • AWS でサービスを作る 05 ― VPC:自分専用のネットワーク
  • 6 / 20
  • IP アドレスの正体は、2進数32桁
  • 10
  • .
  • 0
  • .
  • 0
  • .
  • 0
  • 2進数では
  • 00001010
  • 00000000
  • 00000000
  • 00000000
  • 8桁 × 4つ = 32桁(これが IPv4 のアドレス)
  • 1つの箱は 2 の 8乗 = 256通り → 0〜255
  • CIDR(サイダー)の「/16」「/24」は、この32桁のうち「頭から何桁を固定するか」を表す
  • 固定した桁は全員同じ。残りの桁を自由に使って、1台ずつに番号を振る
  • ひらめき
  • 4つの箱は、それぞれ2進数8桁。8桁で表せるのは256通り(0〜255)。全部で32桁ある。

10.0.0.0/16:頭の16桁を固定する

/16 は、32桁のうち頭の16桁を固定するという意味です。1つの箱は8桁なので、16桁は箱2つ分にあたります。

図では、青い2つの箱(10 と 0)に鍵がかかりました。この範囲の中の番号は、必ず 10.0. で始まります。黄色の2つの箱は自由に使えます。

項目値
固定10.0(箱2つ)
自由残りの箱2つ
使える番号の範囲10.0.0.0 〜 10.0.255.255
個数256 × 256 = 65,536 個

住所にたとえると、「東京都千代田区」までは決まっていて、その先の丁目と番地は自分で振れる、という状態です。区の中にはたくさんの番地を作れます。

VPC を作るときには、この 10.0.0.0/16 のような範囲を1つ指定します。すると、その VPC の中に置くサーバーなどには、この範囲の中から番号が振られます。

AWS で VPC に指定できるのは、/16(65,536個)から /28(16個)までの大きさです。/16 はその中でいちばん広く、本番のサービスでよく使われます。

  • AWS でサービスを作る 05 ― VPC:自分専用のネットワーク
  • 7 / 20
  • 10.0.0.0/16:頭の16桁を固定する
  • 10
  • 錠
  • .
  • 0
  • 錠
  • .
  • 0
  • 開いた錠
  • .
  • 0
  • 開いた錠
  • 固定
  • 固定
  • 自由
  • 自由
  • ここは全員同じ(16桁)
  • ここを自由に使う(16桁)
  • 256 × 256 = 65,536 個
  • 10.0.0.0 〜 10.0.255.255
  • 住所でいえば「東京都千代田区」までは決まっていて、その先の番地を自分で振れる状態
  • ひらめき
  • /16 は「最初の2つの箱を固定」。残り2つの箱で 256×256=65,536 個の番号が使える。

10.0.1.0/24:頭の24桁を固定する

今度は /24 です。24桁は箱3つ分。図では鍵のかかった青い箱が1つ増え、10.0.1 までが固定になりました。

項目値
固定10.0.1(箱3つ)
自由最後の箱1つ
使える番号の範囲10.0.1.0 〜 10.0.1.255
個数256 個

/ の後ろの数字が大きいほど、固定する桁が多く、使える範囲は狭くなります。数字が大きいほうが狭い、というのは最初は逆に感じるかもしれません。「固定する桁の数」だと覚えておけば迷いません。

ここで大事な関係があります。10.0.1.0/24 の番号は、どれも 10.0. で始まります。つまり、10.0.0.0/16 の範囲の中にすっぽり入っています。

同じように、10.0.2.0/24、10.0.3.0/24……と、3つ目の箱を変えていけば、/16 の中から /24 の範囲をいくつも切り出せます(最大で256個)。

この「大きな範囲(VPC)を、小さな範囲に切り分けたもの」が、次の第6章で作るサブネットです。敷地(VPC)の中に部屋(サブネット)を作るとき、部屋ごとに番号の範囲を割り当てるのです。

  • AWS でサービスを作る 05 ― VPC:自分専用のネットワーク
  • 8 / 20
  • 10.0.1.0/24:頭の24桁を固定する
  • 10
  • 錠
  • .
  • 0
  • 錠
  • .
  • 1
  • 錠
  • .
  • 0
  • 開いた錠
  • 固定
  • 固定
  • 固定
  • 自由
  • ここは全員同じ(24桁)
  • 自由(8桁)
  • 256 個
  • 10.0.1.0 〜 10.0.1.255
  • 「/」の後ろの数字が大きいほど、固定する桁が多く、使える範囲は狭くなる
  • /16 の中に /24 をいくつも切り出せる。これが次の章の「サブネット」になる
  • ひらめき
  • /24 は「最初の3つの箱を固定」。自由なのは最後の箱だけなので、番号は256個。

数字が1増えると、広さは半分になる

CIDR の数字と広さの関係を、もう少し整理しておきます。

固定する桁が1つ増えるたびに、自由な桁が1つ減ります。2進数の1桁は「0か1か」の2通りなので、数字が1増えるごとに、使える個数は半分になります。

表記個数よく使う場面
/1665,536VPC 全体
/1732,768/16 の半分
/1816,384そのまた半分
/204,096大きめのサブネット(デフォルト VPC の部屋はこの大きさ)
/24256サブネット1つ。数えやすくて人気
/2816AWS で作れる最小の範囲

図の入れ子の四角は、/16 の中に /20 が、その中に /24 が、さらにその中に /28 が入る関係を表しています(大きさの比率は正確ではありません)。

計算に自信がなくても大丈夫です。インターネットには「サブネット計算機(CIDR 計算機)」と呼ばれる道具がたくさんあり、範囲を入れれば始まりと終わりの番号や個数を教えてくれます。AWS の画面でも、入力した範囲の個数を表示してくれます。

覚えておきたいのは、VPC には広め(/16)を、中の部屋には /24 前後をという目安です。狭く作ると後で困ることは、この章の後半で説明します。

  • AWS でサービスを作る 05 ― VPC:自分専用のネットワーク
  • 9 / 20
  • 数字が1増えると、広さは半分になる
  • /16
  • /16
  • 65,536 個 VPC 全体によく使う
  • /20
  • /20
  • 4,096 個
  • /24
  • /24
  • 256 個 サブネット1つによく使う
  • /28
  • /28
  • 16 個 AWS で作れる最小
  • /17 は /16 の半分、/18 はそのまた半分
  • ひらめき
  • /16 は6万5千個、/24 は256個、/28 は16個。AWS で作れる VPC は /16〜/28 の大きさ。

VPC は1つのリージョンに作り、AZ をまたぐ

ここからは VPC そのものの話です。

VPC は、1つのリージョンの中に作ります。第2章で見たとおり、リージョンは東京や大阪のような地域で、その中に AZ(アベイラビリティーゾーン:互いに離れた建物群)が複数あります。

図では、東京リージョン(ap-northeast-1)の中に、photolog-prod という名前の VPC を 10.0.0.0/16 で作りました。

範囲VPC との関係
リージョンVPC は1つのリージョンに属する。別のリージョンにまたがることはできない
AZVPC はそのリージョンのすべての AZ に広がれる
中身どの AZ に何を置くかは、第6章のサブネットで決める

VPC が AZ をまたげることは、とても大事です。1つの VPC の中で、サーバーを AZ 1a と 1c に分けて置けば、片方の建物で停電や事故が起きても、もう片方で動き続けられます。第2章で「なぜ複数 AZ か」を見ましたが、その複数 AZ に分けて置く土台が VPC なのです。

いまの VPC は、図のとおりまだ空っぽです。番号の範囲を持った囲みがあるだけで、部屋もなければ、外へつながる出入り口もありません。この空の舞台に、第6〜8章で部品を1つずつ足していきます。

  • AWS でサービスを作る 05 ― VPC:自分専用のネットワーク
  • 10 / 20
  • VPC は1つのリージョンに作り、AZ をまたぐ
  • 東京リージョン(ap-northeast-1)
  • VPC:photolog-prod 10.0.0.0/16
  • AZ:ap-northeast-1a
  • AZ:ap-northeast-1c
  • まだ空っぽ
  • まだ空っぽ
  • VPC はリージョンの中の全部の AZ に広がれる。複数の AZ に分けて置けば、1か所の事故で止まらない
  • 中を「どの AZ の・どの用途の部屋」に分けるかは、第6章のサブネットで決める
  • ひらめき
  • VPC はリージョン(第2章)の中に作る。そのリージョンのどの AZ にも、中身を置ける。

なぜネットワークを区切るのか

VPC はいくつでも作れます(上限は Service Quotas で確認できます)。では、どんな単位で区切るのがよいのでしょうか。

図では、同じアカウントの中に本番 VPC と検証 VPC を作りました。本番は本物の利用者が使うもの、検証は新しい機能を試すための場所です。

区切る理由どう役立つか
混ざらない検証で DB を壊しても、本番には何も届かない。VPC が違えば別のネットワーク
出入り口を自分で決められるどこから入れて、どこへ出られるかを VPC ごとに設計できる
他の利用者と分かれるAWS の他の利用者のサーバーとは、最初から別の世界になっている
責任の範囲がはっきりする「この VPC の中は、このサービスのもの」と説明できる

図の真ん中の赤い印のとおり、2つの VPC は何もしなければ互いにつながりません。これは安全のための性質です。つなぎたいときは、あとで説明するピアリングなどの部品を使って、意図してつなぎます。

「環境ごとに VPC を分ける」のはよくあるやり方です。さらに進むと、環境ごとに AWS アカウントそのものを分けることもあります(第27章の Organizations)。まずは「本番と検証を混ぜない」から始めましょう。

  • AWS でサービスを作る 05 ― VPC:自分専用のネットワーク
  • 11 / 20
  • なぜネットワークを区切るのか
  • 本番 VPC 10.0.0.0/16
  • 検証 VPC 10.1.0.0/16
  • サーバー
  • Web
  • データベース
  • NG
  • DB
  • サーバー
  • Web
  • データベース
  • DB
  • 別の世界
  • 本物の利用者が使う
  • 新しい機能を試す
  • 検証で DB を壊しても、本番には届かない。同じアカウントの中でも、VPC が違えば別のネットワーク
  • どこから入れるか・どこへ出られるかも、VPC ごとに自分で決める(第6〜8章)
  • ひらめき
  • 区切れば、他人とも、自分の別の環境とも混ざらない。出入り口も VPC ごとに自分で決められる。

番号が重なると、あとでつなげなくなる

VPC を作るときに、いちばん気をつけたいのが番号の範囲の重なりです。

最初は別々に作った VPC でも、いずれ「本番 VPC と会社のネットワークをつなぎたい」「2つの VPC の間で通信したい」という日が来ます。つなぐ方法には次のようなものがあります。

つなぎ方意味
VPC ピアリングVPC 同士を1対1で直接つなぐ
VPN会社のネットワークと VPC を、暗号化した道でつなぐ
Transit Gatewayたくさんの VPC や会社をまとめてつなぐ中継点

図を見てください。本番 VPC も会社のネットワークも 10.0.0.0/16 を使っていて、どちらにも 10.0.1.5 という機械があります。この2つをつなぐと、10.0.1.5 宛のデータをどちらに届ければいいか決まりません。

そのため、重なる範囲どうしは、そもそもつなげない(あるいはつないでも正しく届かない)のです。こうなると、どちらかの番号を振り直す、つまりVPC を作り直すしかなくなります。中に動いているサービスがあると、大仕事です。

これを防ぐ方法は1つだけです。最初から、使う範囲を重ならないように割り振っておくこと。会社のネットワークがどの範囲を使っているかも、作る前に確かめておきましょう。

  • AWS でサービスを作る 05 ― VPC:自分専用のネットワーク
  • 12 / 20
  • 番号が重なると、あとでつなげなくなる
  • 本番 VPC 10.0.0.0/16
  • 10.0.1.5 宛
  • 会社のネットワーク 10.0.0.0/16
  • サーバー
  • データベース
  • どっちに届ける?
  • ノートPC
  • 社内の PC
  • Web
  • DB
  • こちらにも 10.0.1.5
  • 10.0.1.5
  • VPC 同士をつなぐ(ピアリング)ときや会社と VPN でつなぐとき、同じ範囲の番号があると宛先が決まらない
  • 最初から、使う範囲を重ならないように割り振っておく
  • ひらめき
  • VPC 同士や会社のネットワークとつなぐ日が来る。そのとき同じ番号の範囲どうしはつなげない。

大きさは後から変えられない。迷ったら /16

もう1つの注意は、最初に決めた範囲は、あとから広げることも縮めることもできないことです。

VPC には、あとから別の範囲(セカンダリ CIDR)を追加することはできます。ただし、最初の範囲そのものは変えられず、追加した範囲とは番号が飛び飛びになるので、設計が複雑になります。

そこで、よく使われる考え方が次のとおりです。

考え方理由
VPC は /16 で作る最大の大きさ。足りなくなる心配がほぼない
環境ごとに2つ目の箱を変える本番 10.0、検証 10.1、開発 10.2 と重ならずに並ぶ
使わない範囲を空けておく将来の VPC のために取っておく
会社のネットワークと別にする会社が 192.168 なら、AWS は 10 を使う

図の割り振り表は、フォトログでの例です。こうした表を1枚作っておき、新しい VPC を作るたびに表から次の空きを取る習慣にすると、重なりを防げます。

また、`172.17.0.0/16` は避けましょう。コンテナの道具である Docker が中で使う既定の範囲で、AWS の一部のサービスも使っています。VPC と重なると、つながらない原因のわかりにくいトラブルになります。

「広すぎてもったいない」と感じるかもしれませんが、プライベート IP は何個使ってもお金はかかりません。迷ったら広くが正解です。

  • AWS でサービスを作る 05 ― VPC:自分専用のネットワーク
  • 13 / 20
  • 大きさは後から変えられない。迷ったら /16
  • 割り振り表(例)
  • OK
  • あとから別の範囲を足すことはできる
  • 本番
  • 10.0.0.0/16
  • 検証
  • NG
  • 10.1.0.0/16
  • 最初の範囲は広げも縮めもできない
  • 開発
  • 10.2.0.0/16
  • NG
  • 172.17.0.0/16 は避ける
  • 予備
  • 10.3〜10.9 は空けておく
  • Docker や一部の AWS サービスが中で使う範囲。 重なると、つながらなくなることがある
  • 会社
  • 192.168.0.0/16(別の範囲)
  • ひらめき
  • 最初に決めた範囲は広げも縮めもできない。環境ごとに /16 を1つずつ、重ならないように配る。

最初からある「デフォルト VPC」

AWS のアカウントを作ると、各リージョンにデフォルト VPC という VPC が最初から1つ用意されています。何も作らずにサーバーを立ち上げると、ここに置かれます。

項目デフォルト VPC の中身
番号の範囲172.31.0.0/16(どのアカウントでも同じ)
部屋(サブネット)各 AZ に1つずつ。大きさは /20
外とのつながりすべての部屋がインターネットとつながっている
サーバーの IP置いたサーバーに、自動でパブリック IP が付く

すぐに試せて便利ですが、図のとおりどの部屋も外とつながる公開向きの作りです。DB を置くと、設定次第では外から届く場所に置くことになります。また、番号がどのアカウントでも同じ 172.31.0.0/16 なので、あとで別のアカウントの VPC とつなごうとすると、ほぼ確実に重なります。

そのため、この本では次のように使い分けます。

用途使う VPC
数分だけ試す練習デフォルト VPC でもよい
フォトログの本番・検証自分で設計して作った VPC

デフォルト VPC は消すこともでき、消したあとで作り直すこともできます。ただし、消すと「置き場所を指定せずにサーバーを立ち上げる」操作ができなくなるので、慣れるまでは残しておいて構いません。

  • AWS でサービスを作る 05 ― VPC:自分専用のネットワーク
  • 14 / 20
  • 最初からある「デフォルト VPC」
  • デフォルト VPC 172.31.0.0/16
  • OK
  • 作らなくてもすぐ試せる
  • インターネット
  • インターネット
  • インターネット
  • NG
  • どの部屋も外とつながる
  • AZ 1a
  • AZ 1c
  • AZ 1d
  • 公開用の部屋
  • 公開用の部屋
  • 公開用の部屋
  • NG
  • 番号がどのアカウントでも同じ
  • 外から届く
  • 外から届く
  • 外から届く
  • 本番は、自分で設計した VPC に置く
  • ひらめき
  • アカウントには練習用の VPC が最初からある。すぐ試せるが、全部がインターネット向きの作り。

作ってみる:コンソールと CLI

では、フォトログの本番用 VPC を作ってみましょう。

マネジメントコンソール(ブラウザで操作する AWS の管理画面)で作る場合は、図の左の手順です。リージョンが東京になっていることを右上で確かめてから始めます。

番号操作
1画面上の検索で「VPC」を開き、「VPC を作成」を押す
2作成するリソースで「VPC のみ」を選ぶ
3名前タグに photolog-prod と入れる
4IPv4 CIDR に 10.0.0.0/16 と入れる
5IPv6 は「なし」、テナンシー(機械を他人と共有するか)は「デフォルト」
6「VPC を作成」を押す

CLI(第1章で入口を見た、コマンドで AWS を操作する道具)なら、図の右のように1行で作れます。

bash
aws ec2 create-vpc \
  --cidr-block 10.0.0.0/16 \
  --tag-specifications 'ResourceType=vpc,Tags=[{Key=Name,Value=photolog-prod}]'

作ると vpc-0abc... のような VPC ID が返ってきます。以後、部屋や出入り口を作るときに、この ID で「どの VPC に作るか」を指定します。

作成画面には「VPC など」(VPC and more)という選択肢もあり、選ぶと次の章以降で作る部屋・道案内・出入り口まで一度に作ってくれます。とても便利ですが、この本では何が作られているのかを理解するため、第6〜7章で1つずつ作ります。仕組みがわかったら、次からはそちらを使うと速いです。

  • AWS でサービスを作る 05 ― VPC:自分専用のネットワーク
  • 15 / 20
  • 作ってみる:コンソールと CLI
  • VPC コンソールで「VPC を作成」
  • # CLI で同じことをする
  • 「VPC のみ」を選ぶ
  • aws ec2 create-vpc \
  • --cidr-block 10.0.0.0/16 \
  • 名前:photolog-prod
  • --tag-specifications \
  • 'ResourceType=vpc,Tags=[{Key=Name,
  • IPv4 CIDR:10.0.0.0/16
  • Value=photolog-prod}]'
  • # → vpc-0abc... という ID が返る
  • IPv6 なし・テナンシーはデフォルト
  • 「VPC など」を選ぶと第6〜7章の部品も一度に作れる。 この本では仕組みを見るため、1つずつ作る
  • 「VPC を作成」を押す
  • ひらめき
  • 作るのは名前と番号の範囲を決めるだけ。1分で終わる。大事なのは、どの範囲を選ぶか。

フォトログのアドレス設計

フォトログでは、番号をこう決めます。

用途範囲理由
本番 VPC10.0.0.0/16最大の大きさで、足りなくならない
検証 VPC10.1.0.0/16本番と重ならない
中の部屋/24 ずつ数えやすく、1部屋256個で十分

本番 VPC の中は、図のように /24 の部屋に切って使う予定です。部屋の中身は次の章で詳しく作りますが、番号の決め方だけ先に見ておきます。

部屋範囲置くもの(予定)
公開の部屋 a10.0.1.0/24外から届く入口(第11章の ALB など)
公開の部屋 c10.0.2.0/24同じものを別の AZ に
非公開の部屋 a10.0.11.0/24Web サーバー・DB
非公開の部屋 c10.0.12.0/24同じものを別の AZ に

公開の部屋は1桁台、非公開の部屋は11からにして、番号を見ただけでどちらの部屋かわかるようにしています。こうした「番号の付け方の決まり」を最初に作っておくと、あとで問題が起きたときに、ログに出てきた 10.0.11.37 を見ただけで「非公開の部屋 a の中の機械だ」と見当がつきます。

/16 の中には /24 の部屋を256個まで作れるので、将来、部屋を足したくなっても余裕があります。

  • AWS でサービスを作る 05 ― VPC:自分専用のネットワーク
  • 16 / 20
  • フォトログのアドレス設計
  • photolog-prod 10.0.0.0/16
  • 本番
  • 10.0.0.0/16
  • 10.0.1.0/24
  • 10.0.2.0/24
  • 検証
  • 10.1.0.0/16
  • 公開の部屋 a(第6章)
  • 公開の部屋 c(第6章)
  • 部屋
  • /24(256個)
  • 10.0.11.0/24
  • 10.0.12.0/24
  • 部屋数
  • 最大256部屋
  • 非公開の部屋 a(第6章)
  • 非公開の部屋 c(第6章)
  • ひらめき
  • 本番は 10.0.0.0/16。中を /24 の部屋に切って使う(次の章)。検証は 10.1.0.0/16 に分ける。

VPC そのものは無料。お金がかかるのは中身

うれしいことに、VPC そのものに料金はかかりません。部屋(サブネット)・道案内(ルートテーブル)・門番(セキュリティグループ・NACL)も、作るだけなら無料です。

お金がかかるのは、VPC の中に置く部品と、通信です。ネットワークの章で出てくるものを先に並べておきます。

課金されるもの何に対して章
NAT ゲートウェイ置いている時間 + 通ったデータの量第7章
インターフェイス型の VPC エンドポイント置いている時間 + 通ったデータの量第7章
パブリック IPv4 アドレス1個ごとに、持っている時間第6・9章
インターネットへ出ていく通信GB ごと第4章
別の AZ・別のリージョンへの通信GB ごと第4章

特にパブリック IPv4 アドレスは、2024年から、使っていても使っていなくても1個ごとに時間で課金されるようになりました。IPv4 のアドレスが世界的に足りなくなってきたためです。「外から直接届く必要のないものには、パブリック IP を付けない」は、安全のためだけでなく、お金のためでもあります。

細かい単価は変わることがあるので、AWS の VPC の料金ページで確認してください。第4章の Pricing Calculator で、構成全体の見積もりを出すこともできます。

  • AWS でサービスを作る 05 ― VPC:自分専用のネットワーク
  • 17 / 20
  • VPC そのものは無料。お金がかかるのは中身
  • 何個作っても無料
  • OK
  • VPC・サブネット
  • ルーター
  • NAT ゲートウェイ(第7章)
  • 置いている時間+通った量
  • OK
  • ルートテーブル
  • インターネット
  • パブリック IPv4 アドレス
  • OK
  • セキュリティグループ・NACL
  • 1個ごとに、持っている時間で
  • アップロード
  • インターネットへ出る通信
  • 単価は料金ページで確認
  • GB ごと(第4章のデータ転送料)
  • ひらめき
  • 囲み・部屋・道案内・門番はタダ。課金されるのは、中に置く部品と、外への通信。

よくある落とし穴

VPC の設計ミスは、あとから直せないものが多いのが特徴です。作る前の5分で防げるので、次の表を一度確かめてから作りましょう。

落とし穴何が起きるか防ぎ方
番号が重なったVPC 同士や会社とつなげない。作り直しになる割り振り表を作り、重ならない範囲を配る
小さく作りすぎた部屋を AZ ごと・用途ごとに分けたとたんに番号が足りないVPC は /16 を基本にする
デフォルト VPC で本番すべての部屋が外とつながる作り。DB まで公開向きになる本番は自分で設計した VPC に置く
全環境が同じ範囲本番も検証も 10.0.0.0/16。あとでつなげない環境ごとに2つ目の箱を変える
172.17.0.0/16 を使ったDocker などが中で使う範囲と衝突し、つながらないその範囲を避ける
リージョンを間違えた東京のつもりが別のリージョンに作ってしまう作る前に画面右上のリージョンを確認

最後の「リージョン違い」は、初心者がとてもよくやります。コンソールは最後に開いたリージョンを覚えているため、別の作業のあとで気づかずに別の地域に作ってしまうのです。VPC はリージョンごとに別物なので、東京に作ったつもりの VPC が見つからない、ということが起きます。

  • AWS でサービスを作る 05 ― VPC:自分専用のネットワーク
  • 18 / 20
  • よくある落とし穴
  • 番号が重なった
  • あとで VPC 同士・会社とつなげない。作り直すしかない
  • 小さく作りすぎた
  • /24 の VPC だと、部屋を分けたとたんに足りなくなる
  • デフォルト VPC で本番
  • 全部の部屋が外とつながる作り。DB まで公開向き
  • 全環境が同じ範囲
  • 本番も検証も 10.0.0.0/16 だと、後でつなげない
  • 172.17.0.0/16 を使った
  • Docker などの内部の範囲とぶつかる
  • ひらめき
  • 番号の重なりと小さすぎる範囲は、あとから直せない。作る前の5分で防げる。

片付け:VPC の消し方

この章で作ったのは VPC だけです。VPC そのものは無料なので、残しておいても料金はかかりませんが、練習で作ったものは消す習慣をつけておきましょう。フォトログの本番用 VPC は、次の章でも使うので残して構いません。

消す手順は図のとおりです。

番号操作補足
1中身を先に消すサーバー・NAT ゲートウェイ・ロードバランサーなどが残っていると、VPC を消せない
2VPC を削除するコンソールで VPC を選び「VPC を削除」。中の部屋や道案内も一緒に消える
3残りを確認付け外しできるパブリック IP(Elastic IP)が残っていないか

CLI で消す場合は、中身を消したあとに次を実行します。

bash
aws ec2 delete-vpc --vpc-id vpc-0abc...

CLI では、部屋や出入り口を先に1つずつ消しておく必要があります。コンソールの削除はそれらを一緒に片付けてくれるので、慣れないうちはコンソールで消すのが楽です。

「消せない」と言われたら、何がまだ中に残っているかがエラーの中に書かれています。慌てずに、書かれているものから順に消しましょう。

  • AWS でサービスを作る 05 ― VPC:自分専用のネットワーク
  • 19 / 20
  • 片付け:VPC の消し方
  • サーバー
  • 中身を先に消す
  • NG
  • VPC を削除
  • 検索
  • 残りを確認
  • サーバー・NAT など
  • 部屋・道案内も一緒に消える
  • IP アドレスの残り
  • # 中身を消したあと
  • この章で作ったのは VPC だけ。 2 だけで終わる
  • aws ec2 delete-vpc --vpc-id vpc-0abc...
  • ひらめき
  • 中にサーバーや NAT が残っていると消せない。中身を先に消してから、VPC を削除する。

まとめ:VPC は番号の範囲で囲った自分の敷地

この章で見たことをまとめます。

項目内容
IP アドレスコンピューターの住所。0〜255 の数字4つ(2進数で32桁)
パブリック IP世界に1つの外線番号。持つだけで時間ごとに課金される
プライベート IP中だけで通じる内線番号。10.x・172.16〜31.x・192.168.x
CIDR頭から何桁を固定するか。/16 は65,536個、/24 は256個
VPCリージョンに作る自分専用のネットワーク。すべての AZ にまたがれる
設計のコツ環境ごとに重ならない /16。最初の範囲はあとから変えられない
お金VPC 自体は無料。中身と通信に課金される

これで、フォトログ用の敷地ができました。ところが、いまの VPC の中は仕切りのない大部屋です。外とつながる出入り口もありません。

Web サーバーはインターネットから届いてほしい。でも DB は、外から絶対に届かない場所に置きたい。この「部屋によって外とのつながり方を変える」ためには、敷地の中を部屋に分け、部屋ごとに道案内を貼る必要があります。

次の第6章「サブネットとルートテーブル」で、その部屋と道案内を作ります。

  • AWS でサービスを作る 05 ― VPC:自分専用のネットワーク
  • 20 / 20
  • まとめ:VPC は番号の範囲で囲った自分の敷地
  • IP アドレス
  • コンピューターの住所。0〜255 の数字4つ(32桁)
  • プライベート IP
  • 中だけで通じる内線番号。10.x・172.16〜31.x・192.168.x
  • CIDR(/16 など)
  • 頭から何桁を固定するか。大きいほど狭い
  • VPC
  • リージョンに作る自分専用のネットワーク。AZ をまたぐ
  • 設計
  • 環境ごとに重ならない /16。最初の範囲は変えられない
  • 注意
  • 次の困りごと:中が1つの大部屋のまま。どこを外に開けるか決められない
  • ひらめき
  • でも中は1つの大部屋。Web と DB を分けたい → 第6章「サブネットとルートテーブル」へ。

0 件のコメント

読み込み中…

権利侵害・不適切な内容の連絡: [email protected]