【AWS①】ネットワークを構築してみる
どうもoreoです。
👇を参考にして、何回かに分けてブログシステムを構築しながらインフラ周りの勉強をしたいと思います。
第1回のこの記事では、AWSでネットワーク構築します。自分へのメモ的な記事になりますが、普段インフラを触らない人の参考になれば幸いです!
インフラ周りを知っていたら障害時の問題の切り分けと対応ができるようになりますね。
1 概要
Amazon VPC(Virtual Private Cloud)というサービスを使用して、以下のようなネットワークを構築します。
2 ネットワークを構築する
2-1 前提知識
前提知識として以下のような知識が必要になるので簡単に記載しておきます。
詳しく知りたい方は下記ご参照。わかりやすいです。
IPアドレス
- TCP/IPで通信先を特定するのに使用される。ネットワーク上で重複しない「住所」のようなもの。
IPアドレスの構成
- 32ビットで構成され「192.168.1.2」のように、8ビットずつ10進数に変換したものをピリオドで区切って表記する。8ビット区切りなので、IPアドレスは範囲は「0.0.0.0」~「255.255.255.255」までとなる。
- IPアドレスはネットワーク部とホスト部で構成され、対象となるホストがどのネットワークに属すか表す。
サブネットマスク
- IPアドレスでどこまでがネットワーク部でどこまでがホスト部なのかの範囲を示す。
- サブネットマスク表記とCIDR表記の2つの表記方法がある。
パブリックIPアドレス(グローバルIPアドレス)
- インターネットに接続する時に使用するIPアドレス。
- プロバイダーやサーバー事業者から貸し出され、ICANN(Internet Corporation for Assigned Names and Numbers)という団体が一括管理している。
プライベートIPアドレス
- 社内LANなどで使うプライベートなIPアドレス。
- 誰に申請することなく自由に使える。
2-2 VPCを作成する
AWSマネジメントコンソールでVPCを開きます。右上で東京Regionを選択し、「VPCを作成」を押します。
Regionとはデータセンターが配置されている地域のことで、エンドユーザーに近いRegionを選ぶとレスポンスが良くなります。
続いて、VPCの名前を「VPC領域」、IPv4 CIDRを「10.0.0.0/16」に設定して、「VPCを作成」を選択します。
これで 「10.0.0.0/16」というCIDRブロック、つまり「10.0.0.0~10.0.255.255」のIPアドレス範囲の「VPC領域」という名前を持つプライベートなネットワークが作成されました。
2-3 VPCをサブネットに分割
「10.0.0.0/16」というCIDRブロックを、サブネット(細分化したネットワーク)に分割します。サブネットを用いてネットワークを分割することで、部署ごとに独自のネットワーク設定を決めてセキュリティを向上したり、また、あるサブネットに障害が起きた時に違うサブネットを利用できるなどリスク分散することができます。
ここでは先ほど作成したVPCにパブリックサブネット(10.0.1.0/24)を作成します。
今回の記事では、パブリックサブネットしか作成しませんが、今後の記事を通して最終的にVPCをパブリックサブネット(10.0.1.0/24)とプライベートサブネット(10.0.2.0/24)に分割し、パブリックサブネットにwebサーバーを、またプライベートサブネットにはインターネットからアクセスできないDBサーバーを設置します。
それでは、パブリックサブネットを作成します。「サブネット」から「サブネットを作成」を選択します。
VPC IDを先ほど作成した「VPC領域」に設定し、サブネット名を「パブリックサブネット」、IPv4 CIDRブロックを「10.0.1.0/24」として「サブネットを作成」を選択します。
これでパブリックサブネットが作成されました。
2-4 パブリックサブネットをインターネットと接続する
2-4-1 インターネットゲートウェイの作成とVPCとの紐付け
VPCとインターネットの接続口であるインターネットゲートウェイを作成します。まず、「インターネットゲートウェイ」から「インターネットゲートウェイを作成」を選択します。
好きな名前タグを入力し、「インターネットゲートウェイの作成」を選択し、インターネットゲートウェイを作成します。
続いて作成したインターネットゲートウェイをVPCと紐付けます。作成したインターネットゲートウェイを選択し、「アクション」>「VPCにアタッチ」を選択します(下の画像では「テステス」を選択していますが、「テスト」を選択してください)。
作成した「VPC領域」を選択して「インターネットゲートウェイのアタッチ」を選択し、紐付けます。
2-4-2 ルートテーブル(ルーティングテーブル)の設定
TCP/IPでは、パケット単位でデータが送受信されます。パケットのヘッダー情報には宛先IPアドレスがあり、ルーターがこの宛先IPアドレスを見て、その場所に近いネットワークに転送していきます。この仕組みを実現するために、ルーターが「どのネットワークがより宛先IPアドレスに近いか」を知った上で転送しなければならず、それを設定するのがルートテーブルになります。
VPC作成後、デフォルトで「10.0.0.0/16」範囲外の宛先のパケットは全て破棄されるようになっています。これを「0.0.0.0/0」に設定し、全てのIPアドレス範囲の宛先パケットをインターネットゲートウェイに転送するようにします。また、このようなデフォルトの転送先をデフォルトゲートウェイと呼びます。
「ルートテーブル」から「ルートテーブルを作成」を選択します。
名前を「パブリックルートテーブル」として「ルートテーブルを作成」を選択し、ルートテーブルを作成します。
続いてルートテーブルにサブネットを割り当てます。「ルートテーブル」>「サブネットの関連付け」>「サブネットの関連付けを編集」を選択します。
パプリックサブネットを選択し、「関連付けを保存」を選択します
デフォルトゲートウェイをインターネットゲートウェイに設定します。「ルートテーブル」>「ルート」>「パブリックルートテーブル」>「ルート」>「ルートを編集」を選択します。
送信先を「0.0.0.0/0」、ターゲットをインターネットゲートウェイ(「igw-ランダム値」になってます)を選択して、「変更を保存」を選択します。
これで「1 概要」に記した以下のような構成のプライベートネットワークが作成できました!
3 最後に
簡単にネットワークを構築してみました。普段インフラを触らないので実際に手を動かすとものすごく勉強になりますね。またIPアドレスの知識などの復習にもなりました!
続編では、サーバーの構築、HTTPの動きの観測などなどしながらブログシステムを構築していきたいと思います。
この記事の参考元である👇の「Amazon Web Services 基礎からのネットワーク&サーバー構築」には、わかりやすく詳細説明がされているので、気になる方は是非購入してみてください!
4 参考
Discussion