コンセプト解説

クラウドネットワーク

クラウドでサーバーを立ち上げると、そのサーバーはクラウドが用意した仮想のネットワークの中に置かれます。このネットワークのアドレスを決め、道を作り、出入り口を守り、トラフィックを振り分け、ほかのネットワークとつなぐ。クラウドネットワークでやることは、これで全部です。クラウドプロバイダーごとに名前や細かいところは違いますが、骨組みは同じです。まず骨組みを見て、プロバイダーごとの違いは章ごとに見ていきましょう。

クラウドプロバイダー一般用語AWSAzureGoogle CloudNAVER Cloud

AWSを基準に表示しています。各章でAWSのサービス名と、ほかのプロバイダーとの違いもあわせて表示します。

01

クラウドの中に自分のネットワークを作る:仮想ネットワークとIPアドレス範囲

クラウドのデータセンターでは、たくさんの利用者のサーバーが一緒に動いています。それでも、自分のサーバー同士だけが通信でき、ほかの利用者とは切り離されていなければなりません。そこでクラウドは、利用者ごとに論理的に分けられたネットワークを用意します。これを仮想ネットワークと呼びます。物理的なケーブルやスイッチは共有していますが、アドレスもルートもルールも、利用者ごとに別々です。

仮想ネットワークを作るとき、最初に決めるのは、使うIPアドレスの範囲(アドレス範囲)です。ふつうは、インターネットでは使わないと決められているプライベートアドレスの範囲から選びます。プライベートアドレスは、どの会社や家庭で重ねて使ってもかまわないアドレスなので、そのままではインターネットに出られません(どうやって出るのかは3章で見ます)。

プライベートアドレスの範囲(RFC 1918)アドレスの数よくある使い道
10.0.0.0/8約1,677万個クラウドの仮想ネットワーク、大企業の社内ネットワーク
172.16.0.0/12約105万個社内ネットワーク、コンテナの既定のネットワーク
192.168.0.0/1665,536個家庭用ルーター、小さなオフィス

CIDR:スラッシュの後ろの数字を読む

IPv4アドレスは32ビットです。10.0.0.0/16は「先頭の16ビット(10.0)は固定し、残りの16ビットをこのネットワークが使う」という意味です。だからアドレスは2^16 = 65,536個になります。/の後ろの数字が大きいほど固定する部分が長くなり、範囲は小さくなります。この書き方をCIDRと呼び、それで表した範囲をCIDRブロックといいます。下の図で、サブネットの大きさを変えてみてください。

サブネットの大きさ
/24 · アドレス256個
入る数
256個
サーバーに割り当てられるアドレス
251個(予約5個)

10.0.0.0/16の範囲(土地)を、同じ大きさのサブネット(区画)に分ける · 黄緑の区画 = 最初のサブネット

/24は、先頭の24ビットがネットワーク、残りの8ビットがアドレスという意味です。1つのサブネットに入るアドレスは2^8 = 256個。サブネットごとに5個が予約されるので、サーバーに割り当てられるアドレスは251個です。/の後ろの数字が1増えるたびに、区画の大きさは半分になり、数は2倍になります。

プレフィックスアドレスの数/16の中に入る数
/1665,5361
/204,09616
/24256256
/28164,096

仮想ネットワークの範囲は、さらにサブネットに分けます。サブネットは、同じ役割のサーバーをまとめておく区画です。インターネットに見せるWeb層、隠しておくDB層のように役割ごとに分け、サブネットごとに別のルート(2章)やファイアウォール(4章)を設定できます。

サブネットのアドレスは全部は使えない

どのサブネットにも、クラウドがあらかじめ予約しておくアドレスがあります。サブネットの最初のアドレス(ネットワークアドレス)、サブネットの外へ出る出入り口であるゲートウェイ、DNSなどです。いくつ予約するかは、クラウドプロバイダーによって違います。だから/24のサブネットでも、サーバーに割り当てられるアドレスは256個より少し少なくなります。

試験の定番の計算です。「このサブネットにサーバーを何台置けるか」は2^(32 − プレフィックス) − 予約アドレスの数で求めます。予約アドレスの数はプロバイダーによって違うので、問題に出てくるプロバイダーの数を使います。

最初から広めに、重ならないように

アドレス範囲は、作ったあとで変えるのが大変です。サーバーやサービスが増えることを考えて広めに取り、社内ネットワークやほかの仮想ネットワークと重ならないように分けておきます。ここがつまずきやすいところです。社内ネットワークが192.168.0.0/16を使っているのに、クラウドでも同じ範囲を使うと、あとで両方をつなごうとしたとき、どちら側の192.168.1.10なのか区別できず、接続そのものができません(7章)。

問題文にこんな表現があれば → これを選ぶ

  • “10.0.0.0/16のネットワークを/24のサブネットに分けると何個”256個
  • “/28のサブネットでサーバーに割り当てられるアドレスの数”16 − そのプロバイダーの予約アドレスの数
  • “あとで社内ネットワークとつなぐ予定がある”社内ネットワークと重ならない範囲で設計する
  • “インターネットでは使わないアドレスの範囲”プライベートアドレスの範囲(10/8、172.16/12、192.168/16)
  • “サブネットごとに別のアクセスルールをかけたい”役割(層)ごとにサブネットを分ける

範囲を分けてサブネットを作りました。では、サブネットのサーバーが送ったパケットは、どこへ行けばよいのかをどうやって知るのでしょうか。

02

サブネットとルーティング:パブリックとプライベートを分けるもの

サーバーがパケットを送ると、サブネットに関連付けられたルートテーブルが行き先を決めます。ルートテーブルは「この範囲へ向かうパケットは、あの出入り口へ送る」という行の一覧です。仮想ネットワークには「ネットワーク内のアドレスはネットワーク内で届ける」というデフォルトのルートが最初からあるので、サブネット同士は特に設定しなくても通信できます。

宛先              ネクストホップ(送り先)
10.0.0.0/16       ネットワーク内(ローカル)
172.16.0.0/12     VPN接続 → 社内ネットワーク
0.0.0.0/0         インターネットゲートウェイ

ルートテーブルは、パケットの宛先アドレスに一致する行を探し、その行のネクストホップへ送ります。たとえば、Webサーバーが同じネットワークにあるDBサーバー(10.0.2.15)にパケットを送るとしましょう。10.0.2.15は10.0.0.0/16の中のアドレスなので、1行目に一致します。ところが0.0.0.0/0は「すべてのアドレス」なので、最後の行にも一致します。

このように複数の行が一致するときは、いちばん具体的な行、つまり/の後ろの数字が大きい行が勝ちます。これを最長プレフィックス一致といいます。/16は/0より具体的なので、このパケットはネットワークの中で届けられます。一方、インターネット上のWebサイト(203.0.113.10)は最初の2行には一致せず、0.0.0.0/0だけに一致するので、インターネットゲートウェイへ向かいます。そのため0.0.0.0/0は、ほかのどの行にも一致しないアドレスが最後に行き着く先として、デフォルトルートと呼ばれます。下の図で、宛先とサブネットの種類を変えてみてください。

宛先
送信元のサーバー
送信元
パブリックサブネットのサーバー
宛先
インターネット上のWebサイト(203.0.113.10)
結果
IGW

サーバーが送ったパケットが、標識(ルートテーブル)で道を選ぶ · 黄緑の行 = 勝ったルート、水色の文字 = 一致したけれど負けたルート

203.0.113.10に一致するルートは0.0.0.0/0だけなので、IGWへ向かいます。このとき送信元アドレスは、サーバーのプライベートIP 10.0.1.20ではなく、パブリックIP 198.51.100.20に変わって見えます。プライベートIPはインターネットでは使えないからです。

パブリックサブネットとプライベートサブネット

インターネットへ向かうルート(0.0.0.0/0 → インターネット)があるサブネットをパブリックサブネット、ないサブネットをプライベートサブネットと呼びます。ここがつまずきやすいところです。決めるのはサブネットに付けた名前ではなく、ルートです。また、パブリックサブネットでも、サーバーがインターネットと直接やり取りするには、サーバーにパブリックIPが必要です。プライベートIPしか持たないサーバーは、パブリックサブネットにあってもインターネットからは見つけられません。

よくあるWebサービスは、次のように分けます。

層置く場所理由
ロードバランサーパブリックサブネットインターネットからリクエストを受ける必要がある
Web・アプリサーバープライベートサブネットロードバランサーを通してだけリクエストを受ける
データベースプライベートサブネットアプリサーバー以外がアクセスする理由がない
「このサブネットはパブリックか?」の答えは、サブネットの名前ではなくルートテーブルにあります。サーバーがインターネットに出られないという問題が出たら、ルート、パブリックIP、ファイアウォール(4章)の順に疑いましょう。

問題文にこんな表現があれば → これを選ぶ

  • “サブネットのサーバーにインターネットから直接届かないようにする”プライベートサブネット(インターネットへのルートなし)
  • “同じ宛先に一致するルートが2つある”より具体的な(プレフィックスが長い)ルートが勝つ
  • “同じネットワークのサブネット同士の通信”デフォルトのローカルルート — 設定は不要
  • “DBにインターネットからアクセスできないようにする”プライベートサブネットに置く
  • “パブリックサブネットなのに、サーバーがインターネットから見えない”サーバーにパブリックIPがあるか確認

DBやアプリサーバーをプライベートサブネットに隠しました。でも、セキュリティ更新は受け取らなければならないし、クラウドのストレージサービスにも届く必要があります。インターネットへのルートがないのに、どうやって外に出るのでしょうか。

広告

03

プライベートサブネットから外に出る:NATとプライベートエンドポイント

NAT(ネットワークアドレス変換)は、プライベートなサーバーの代わりに外とやり取りします。サーバーがインターネットにパケットを送ると、NATはパケットの送信元アドレスを自分のパブリックIPに変えて送り出します。応答が戻ってくると、誰が送ったリクエストだったかを覚えていて、正しいサーバーに応答を渡します。

状況
状況
サーバー → インターネット(更新を受け取る)

プライベートサブネットのアプリサーバーが外とやり取りする道 · 黄緑 = 出ていくパケット、水色 = 戻ってくるパケット

プライベートサブネットのサーバーにはパブリックIPがないので、自分だけではインターネットに出られません。NATが送信元アドレスを自分のパブリックIPに変えて送り出し、戻ってきた応答を、覚えておいたサーバーに渡します。ゾーンNATゲートウェイはパブリックサブネットに作成し、Elastic IPを関連付けます。プライベートサブネットのルートテーブルには、0.0.0.0/0 → NATゲートウェイのルートを追加します。

ポイントは方向です。NATが扱うのは、内側から始まった接続だけです。外から始まった接続は、どのサーバー宛てなのかNATにはわからないので、捨てられます。だから「サーバーは更新を受け取れるようにしたいが、インターネットからは接続されないようにしたい」という問題なら、答えはNATです。インターネットからのリクエストを受け付ける必要があるなら、ロードバランサー(5章)か、サーバーのパブリックIPが必要です。

NATはふつう、クラウドが管理してくれるサービスとして使います。自分のサーバーをNATインスタンスにすることもできますが、そのサーバーが止まるとプライベートサブネット全体が外に出られなくなるので、高可用性も保守も自分で面倒を見ることになります。マネージドNATがどこに置かれるか(1つのゾーンか、リージョン全体か)は、プロバイダーによって違います。

インターネットを通らずにクラウドのサービスへ:プライベートエンドポイント

ストレージ、キュー、鍵管理のようなクラウドのマネージドサービスは、ふつうインターネットに公開されたアドレスを持っています。プライベートなサーバーがそのまま呼び出すと、トラフィックはNATを通ってインターネットに出てから戻ってきます。プライベートエンドポイントを使えば、この道のりがネットワークの中で完結します。方式は2つあります。

方式仕組み知っておくこと
ルート方式ルートテーブルに「そのサービスの範囲 → エンドポイント」のルートを追加するサービスの公開アドレスをそのまま使う。対応するサービスは少なく、無料のことが多い
インターフェイス方式自分のサブネットに、そのサービス用のプライベートIPを置くプライベートIPで呼び出す。VPNや専用線でつないだ社内ネットワークからも使える。時間とデータ量で課金
NATは「インターネットのどこへでも行く」ためのもの、プライベートエンドポイントは「特定のクラウドサービスに、インターネットを通らずに届く」ためのものです。同じリージョンのストレージに大量のデータを送っていてNATの料金が高いなら、そのトラフィックをNATから外すプライベートエンドポイントが正解です。

問題文にこんな表現があれば → これを選ぶ

  • “プライベートなサーバーにパッチは当てたいが、インターネットからは届かないようにする”NAT
  • “インターネットを通らずにストレージサービスにアクセスする”プライベートエンドポイント
  • “同じクラウドのストレージへの大量転送で、NATの料金が高い”ストレージ用のプライベートエンドポイント
  • “社内ネットワークから、プライベートIPでクラウドサービスを呼び出す”インターフェイス方式のエンドポイント
  • “プライベートなサーバーがインターネットからのリクエストを受ける必要がある”NATではなくロードバランサー

これでパケットは行き先がわかるようになりました。でも、道があるからといって、誰でも通してよいわけではありません。どのパケットを入れて、どれを止めるかを決める門番が必要です。

Pro限定

ここまでは無料で読めます

残りの5章はPro会員向けです。各章に3D図解と「問題文にこんな表現があれば」の整理が続き、最後の章では実際に解いて確かめられます。

  1. 042層のファイアウォール(ステートフル・ステートレス)
  2. 05ロードバランサーとヘルスチェック
  3. 06DNSとエッジ(CDN・WAF)
  4. 07ネットワーク同士をつなぐ(ピアリング・VPN・専用線)
  5. 08つながらないとき

PasslyExam

概念をつかんだら、次は試験形式の問題で確かめましょう

PasslyExamは、各資格の出題範囲に合わせて作成したオリジナルの練習問題・解説・本番形式の模擬試験を提供しています。正解の選択肢がなぜ正しく、似た選択肢がなぜ誤りなのかまで解説します。登録すると毎日無料で練習問題に取り組めます。