AWS習得編 Amazon Web Service 基礎からのネットワーク&サーバー構築 Chapter2
こちらの書籍について学んだことです。
Chapter2 ネットワークを構築する
VPC領域を構成すると、AWS上に好きな構成のネットワークを構築できる。
2-1 ネットワークで用いるIPアドレス範囲を定める
VPC領域を構成すると、ユーザーごとに隔離されたネットワークを作れる。
作ったネットワークには任意のネットワークの設定ができる。
ルーターなどの仮想的なネットワーク機器も配置できる。
ネットワークの実験にうってつけの環境。
1つ考えなければならないことがある。
VPC領域に対して割り当てる「IPアドレス範囲」
■「パブリックIPアドレス」と「プライベートIPアドレス」
IPアドレスはネットワーク上で互いに重複しない唯一無二の番号。住所のようなもの。
32bitで構成。
●インターネットで使われる「パブリックIPアドレス」
IPアドレスは重複すると正しく通信できないため、好き勝手に設定することは許されない。
IPアドレスはICANNという団体が一括管理している。
Internet Corporation for Assigned Names and Numbers
パブリックIPアドレスとグローバルIPアドレスは同じ意味。
本書ではパブリックIPアドレスに統一。
パブリックIPアドレスは、プロバイダーやサーバー事業者から貸し出される。
IPアドレスは、ICANNが一括管理し、必要に応じてその配下の団体へと配布する仕組みが取られている。
アジアはAPNIC(Asia Pacific Network Information Center)
JPNIC(Japan Network Information Center)という団体にIPアドレスを申請して、あらかじめエンドユーザーの数に見合ったIPアドレスを確保している。
日本の場合、ICANN->APNIC->JPNIC
2011年2月3日にICANNがもつIPアドレスの在庫がなくなった。
2011年4月15日にJPNICがもつIPアドレスの在庫がなくなった。
現在は、各プロバイダーが割り振られたIPアドレスの在庫を持っているため、
しばらくの間は「IPアドレスが足りないから、新規のユーザーを受け入れられない」という事態にはならない。
しかし、そのうち、新規にIPアドレスをもらうことができなくなる。
インターネットの世界では、現在のIPv4から、IPv6の移行が進められている。
IPv4とIPv6は互換性がないため、移行はスムーズではない。
移行が完了するまでは、1つのIPアドレスを複数のエンドユーザーで共有するNAT(Network Address Translation)という仕組みでIPアドレスの不足問題を解決しようとしている。
●自由に利用してよい「プライベートIPアドレス」
インターネットで使われないIPアドレスもある。
それぞれ以下の通り。
10.0.0.0〜10.255.255.255
172.16.0.0〜172.31.255.255
192.168.0.01〜192.168.255.255
誰にも申請することなく自由に使える。
■IPアドレス範囲と表記方法
IPアドレスの範囲を定める。
プライベートIPアドレスの範囲から、
サーバー
クライアント
ネットワーク機器
を接続するのに十分な数を確保したIPアドレスの範囲を定める。
IPアドレスの範囲を「10個」「15個」「20個」のように好きな数で区切れない。
2,4,8,16,と2のn乗個で区切るという決まりがある。
一般的によく使われる区切りが256個と65536個
192.168.1.0〜192.168.1.255は256個で区切ったときの一例。
192.168.0.0〜192.168.255.255は65536個で区切ったときの一例。
前半をネットワーク部
後半をホスト部
ネットワークが同じならネットワーク部は同じ。
機器が違えばホスト部は違う。
ホスト(host)とは、コンピュータやルーターなどのネットワーク機器など、IPアドレスをもつ通信機器の総称のこと。
便宜的に連番でホスト部を割り当てるが、実際は飛び飛びの値を割り当てても大丈夫。
ネットワーク機器は192.168.1.1,192.168.1.2...
サーバーは192.168.1.10,192.168.1.11...
クライアントは192.168.1.100,192.168.1.101...
のようにIPアドレスを割り当てる運用はよく行われてる。
●CIDR表記とサブネットマスク表記
CIDRはClassless Inter-Domain Routing サイダーと読む
①CIDR表記
ネットワーク部のビット長を「/ビット長」で示す方法
ビット長のことをプレフィックス(prefix)と言う。
192.168.1.0〜192.168.1.255のプレフィックスは24ビット
CIDR表記の場合は以下の通り
192.168.1.0/24
192.168.0.0〜192.168.255.255のプレフィックスは16
CIDR表記の場合は以下の通り
192.168.0.0/16
数字が小さければ小さいほどホスト部が長くなるんだな〜
IPアドレス範囲をCIDR表記する場合、その範囲はCIDRブロックと呼ぶ。
つまりネットワーク部のところがCIDRブロックになる。
(呼び方変える必要あった?)
②サブネットマスク表記
プレフィックスのビット数だけ2進数の1を並べ、残りは「0」を記述した表記。
192.168.1.0〜192.168.1.255のプレフィックスは255.255.255.0
サブネットマスク表記は以下の通り
192.168.1.0/255.255.255.0
まあどちらも先頭からいくつ分のIPアドレス範囲を示す表記方法に過ぎない。
だって以下は3つ全て同じ意味だから。
①192.168.1.0〜192.168.1.255
②192.168.1.0/24
③192.168.1.0/255.255.255.0
ネットワーク関係の多くのコマンドや設定では②や③の表記しか受け付けない。
②や③の表記が出てきたときに①を導き出せるかがポイント。
■本書のネットワーク構成
実験用のネットワークを構築する。
実験用のネットワークではプライベートIPアドレス範囲を用いる。
プライベートIPアドレス範囲ならどの範囲を用いても構わないが、
Amazon VPCの仕様では、VPC領域を作成するときに、プレフィックス長として「16以上」を指定する必要がある。
本書では
10.0.0.0/16
というCIDRブロックを利用して、プライベートIPアドレスのネットワーク空間を作成することにする。
実際のIPアドレスとして表記すると、
10.0.0.0〜10.0.255.255
の範囲となる。
2-2 実験用のVPCを作成する
10.0.0.0/16のCIDRブロックでVPC領域を構成する。
実世界において、「ルーターやハブなどを用意して、環境を整える作業」に相当するものを、AWS上で行っていく!
AWSマネジメントコンソールを使ってVPC領域を作成する。
AWSマネジメントコンソールのURLは
https://console.aws.amazon.com/
【10.0.0.0/16のVPC領域を作る手順】
AWSマネジメントコンソールでVPCを開く
↓
右上のオハイオってなってる部分のリージョンをアジア・パシフィック(東京)に変更する
↓
左のメニューからVPCメニューをポチ
↓
デフォルトのVPCがなんかあるのを確認
↓
青いボタンのVPCの作成をポチ
↓
名前タグをVPC領域にする
↓
IPv4 CIDRブロックを10.0.0.0/16にする
↓
IPv6 CIDRブロックはなしにしとく
↓
テナンシーはデフォルト
↓
作成をポチ
↓
VPC領域完成!
AWSでは一度右上からリージョンを選択するとAmazon VPCだけでなくほかのサービスもそれがデフォルトに設定される。でも一応念のため確認しとこう。
テナンシーは、企業のコンプライアンス上の理由などで物理サーバーを専有する必要があるような場合のみ利用する機能。別途費用がかかる。
Virtual Private Cloud
プライベートなネットワーク空間のできあがり。
2-3 VPCをサブネットに分割する
■サブネットの考え方
実際のネットワークでは、割り当てられたCIDRブロックを、そのまま使わずに更に小さなCIDRブロックに分割して利用することがほとんど。
さらに細分化したCIDRブロックのことを「サブネット(Subnet)」という。
あ、サブネットはネットワーク部ね。
さっきは/16で区切ったけど、これをさらに/24で区切る、というのはよく行われてる。
/28と小さく区切ったり、/20と大きく区切ったりできる。
/24で小さく区切ったあとに更に/28で区切ることも可能。
/24はよく使われる。
サブネットに分割すると、その部分でネットワークを分けることができる。
分ける理由は主に2つある。
①物理的な隔離
社内LANを構築する場合、「1階と2階とで、別のサブネットに分けたい」というように物理的に分けたいことがある。
サブネットに分けておくと、万が一どちらかのサブネットが障害を起こした時も、もう片方にその影響が出にくくなる。
②セキュリティ上の理由
サブネットを分ければ、それぞれに対して別のネットワークの設定ができる。
たとえば「経理部のネットワーク」だけを分離して他の部署からはアクセスできないようにしたいというのは、よくあるセキュリティの要求。
また、社内にサーバーを持っている場合は「サーバー群だけを別のサブネットにして、そのサブネットとの通信を監視したり一部しかデータを通さないように構成したりすることでセキュリティを高める」とか、「インターネットに接続するサーバーだけを別のサブネットにして、社内LANから隔離する」という構成もよく取られる。
■VPC領域をサブネットに分割する
2つのサブネットに分割する。
片方はWebサーバー、もう片方はデータベースサーバー
VPC領域は10.0.0.0/16
その中に、
Webサーバー 10.0.1.0/24 パブリックサブネット
データベースサーバー 10.0.2.0/24 プライベートサブネット
Webサーバーは、データベースサーバーにデータベースアクセスする。
①パブリックサブネット 10.0.1.0/24
インターネットからアクセスすることを目的としたサブネット
②プライベートサブネット 10.0.2.0/24
インターネットから隔離したサブネット
プレフィックスは細かく分けすぎない。
理由は2つ。
・設定しにくくなる
・拡張できなくなる
インターネットからアクセスできる箇所とインターネットからはアクセスできない箇所に分離するのは、セキュリティを高めるときによく用いられるネットワーク構成
データベース・サーバーはインターネットから直接アクセスできないのでセキュリティを高められる。
■パブリックサブネットを作る
パブリックサブネットを「10.0.1.0/24」のCIDRブロックで作成する。
【パブリックサブネットを作る手順】
左のメニューのサブネットをポチ
↓
青いボタンのサブネットの作成をポチ
↓
名前タブをパブリックサブネット
↓
VPCにさっき作ったVPCを設定
↓
アベイラビリティーゾーンは適当でいいので指定なし
↓
IPv4 CIDRブロックに10.0.1.0/24と入力
↓
作成ボタンをポチ
↓
パブリックサブネット完成!
アベイラビリティーゾーンに任意のアベイラビリティーゾーンを指定すると、複数のサブネットを構築する際に異なるアベイラビリティーゾーンに配置しておけば、仮に片方のアベイラビリティーゾーンに障害が起こった場合でも、もう片方のアベイラビリティーゾーンにあるサブネットには影響が及ばない、といった設計ができる。
2-4 インターネット回戦とルーティング
パブリックサブネットができたのでインターネットと接続してみる。
■インターネットに接続するための回線を引き込む
あるサブネットをインターネットに接続する場合は「インターネットゲートウェイ(Internet Gateway)」を用いる。
実作業で言うところの「自分のネットワークにインターネット回線を引き込む」という作業と同じ。
【インターネットゲートウェイを作成して、サブネットをインターネットに接続する手順】
左のメニューからインターネットゲートウェイをポチ
↓
インターネットゲートウェイの作成をポチ
↓
名前を一応「インターネットゲートウェイ」にしておく
↓
作成ボタンをポチ
↓
閉じる
↓
続いて、作成したインターネットゲートウェイにチェックを打った状態でアクションからVPCにアタッチをポチ
↓
さっき作ったVPC領域を選択
↓
アタッチをポチ
↓
完成!
状態がdetachedになってる
■ルーティング情報
ネットワークにデータを流すために、ルーティング情報と呼ばれる設定が必要。
この設定はルーティングテーブル(Routing Table)や「ルートテーブル(Route Table)」と呼ばれる。
Amazon VPCではルートテーブルになってる。
TCP/IPはパケット(Packet)という単位でデータが送受信されている。
パケットには「ヘッダー情報」と「データの実体」を含んでいる。
ヘッダー情報の1つに「宛先IPアドレス」がある。
ルーターは、パケットの宛先IPアドレスを見ながらもっとも宛先IPアドレスに近いほうのネットワークへと次々とパケットを転送し、最終目的地までパケットを到達させる。
この仕組では、ルーターが「どちらのネットワークがより宛先IPアドレスに近いか」を事前に知っていないとうまく機能しない。
設定によってはパケットが行ったり来たりしてしまい、相手に届かないこともあり得る。
この問題を解決するときに、「宛先IPアドレスの値が、いくつのときに、どのネットワークに流すべきか」という設定が、ルートテーブル。
それぞれのルーターにルートテーブルを設定しておき、パケットが到達したときには、そのルートテーブルの定義に従って、次のネットワークへとパケットを転送する。
ルートテーブルは、
宛先アドレス 流すべきネットワークの入り口となるルーター
という書式で設定する。
宛先アドレスのことを「ディスティネーション(destination)」と呼ぶ。
行き先、目的地、受信者みたいな意味。
流すべきネットワーク先は、「ネクストホップ(next hop)」や「ターゲット(target)」などという名称で呼ばれる。
Amazon VPCではターゲット
No.570の図がちょっとわかりにくい。必要であればまた辿る。
■Amazon VPCでルートテーブルを設定する
Amazon VPCでは、サブネットやインターネットゲートウェイの間に、ルーターの役割を果たすソフトウェアが既に動いている。
●デフォルトのルートテーブル
VPC領域を作った直後は、デフォルトのルートテーブルが作られる。
サブネットを作ったときは、そのデフォルトのルートテーブルが適用されている。
サブネットを作成した直後に、どのようなルートテーブルが作成されているのかは、次のようにして確認できる。
【サブネットに対して設定されているルートテーブルを確認する手順】
左のメニューのサブネットをポチ
↓
確認したいサブネットをポチ
↓
右下にルートテーブルが表示されている。
rtb-0d46f41b569e7f357
↓
左のメニューのルートテーブルをポチ
↓
さっきのルートテーブルをポチ
↓
下のルートのタブをポチ
↓
送信先を確認できた!
10.0.0.0/16
VPC領域のCIDRブロックである「10.0.0.0/16」に含まれるIPアドレス宛のパケットであれば、VPC領域のルーターに接続されている相手への通信のため、VPC領域のルーターにパケットを転送するという意味。
このルートテーブルには、この設定しかないため、10.0.0.0/16の範囲外の宛先のパケットは全て破棄される。
●デフォルトゲートウェイをインターネットに向けて設定する。
このままだとインターネットと通信できない。
なぜなら10.0.0.0/16以外の宛先のパケットはすべて破棄されてしまうため。
10.0.0.0/16以外の宛先のパケットをインターネットゲートウェイに転送するようにルートテーブルを変更すれば、インターネットと通信できるようになる。
具体的には、0.0.0.0/0の範囲の宛先のパケットは、インターネットゲートウェイに転送するという設定をルートテーブルに追加する。まあ全範囲のこと。
0.0.0.0.0に対するターゲットの設定は、転送先が何も設定されていないときの、デフォルトの転送先を示す。
この転送先をデフォルトゲートウェイという。
デフォルトゲートウェイをインターネットゲートウェイに設定するには、次のようにする。
【パブリックサブネットをインターネットに接続する手順】
左のメニューからルートテーブルをポチ
↓
名前タグをルートテーブルにする
↓
VPCをVPC領域にする
↓
作成をポチ
↓
閉じる
↓
作成したルートテーブルをぽ落ち
↓
下のタブのサブネットの関連付けをポチ
↓
サブネットの関連付けの編集をポチ
↓
割り当てたいパブリックサブネットをポチ
↓
保存ボタンをポチ
↓
ルートタブをポチ
↓
ルートの編集ボタンをポチ
↓
ルートの追加ボタンをポチ
↓
送信先に0.0.0.0/0を入力
↓
ターゲットにigwと打って、作ったゲートウェイを選択してルートの保存をポチ
↓
閉じるをポチ
↓
正しく設定できたかどうかを確認したい
↓
サブネットメニューからパブリックサブネットをポチして下のルートテーブルをポチ
↓
0.0.0.0/0が設定されていることを確認。
↓
完了!
注意として、既にあるルートテーブルを書き換えないこと。
なぜかというと、既にあるルートテーブルというのは、領域全体に設定されているデフォルトのルートテーブルのため。変更すると、このデフォルト設定を利用している他のサブネットにも影響を与えるため。
2-5 まとめ
作ったもののおさらい
VPC領域に、パブリックサブネットが1つあり、パブリックルートテーブルというルートテーブルが関連付けられている。
ルートテーブルは以下のようになっている。
同VPC内の通信は内部でルーティング
それ以外の通信はインターネットゲートウェイに転送
次の章で、1台の仮想サーバーを構築する。
この記事が気に入ったらサポートをしてみませんか?