のぐそんブログ

暗いおじさんがシコシコ書くブログです。

AWS超初心者のメモその1

EC2がなんなのかもよくわからない素人のメモです。
なんとなく怖くてキャプチャに沢山モザイクかけてしまうくらいの素人です。

備忘録としてメモしています。間違っているかもしれません。

VPCとEC2

AWSVPC(Amazon Virtual Private Cloud)EC2(Amazon Elastic Compute Cloud)を利用してネットワークを作成します。

手順としては、以下になります。
1. VPCを作成
2. VPCの中にサブネットを作成
3. サブネットの中にEC2を作成
4. サブネットをインターネットに接続

VPCについて

AWSで仮想ネットワークを作成するためのサービスです。

VPCという領域を作ると、その中に自由なネットワークを作成することができます。

AWSではVPCを作り、その中にネットワーク(サブネット)を作っていきます。 ネットワークの中にはサーバー(EC2インスタンス)を配置することができます。

VPCをサブネットに2つにわける。 1つをパブリックサブネット、もう一つをプライベートサブネットにする。

サブネットの中に、EC2を作成します。

EC2インスタンス

AWSではEC2というサービスを利用してサーバーを作成します。

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

パブリックサブネット

インターネットに接続され、公開されたネットワークです。 Webサーバーを配置します。

プライベートサブネット

インターネットに直接接続せず、外部から隠され、内部からのみアクセス可能なネットワークです。 DBサーバーを配置します。

NAT(Network Address Translation)という技術で実現します。 DBサーバーからはインターネットに接続できるけど、インターネットからはDBサーバーに接続できない状態になります。

サブネットマスクは更に分割することができます。

やってみる

ネットワークに接続する為に、以下の手順でやっていきます。

  1. VPCを作る
  2. VPCをサブネットに分割する
  3. インターネットゲートウェイを作成する
  4. ルートテーブル(ルーティング情報)を設定する

VPCを作る

まずはプライベートIPアドレスの空間であるVPCを作成します。
サイドナビのVPCを押して、画面上部のVPCの作成」ボタンを押します。

IPv4 CIDR ブロック」「10.0.0.0/16」と入力します。
VPCの仕様で、プレフィックスは16以上を指定する必要がるみたいなのですが、このあたりがよくわかりませんでした。

とりあえず10.0.0.0/16でやっておきます。

サブネットを作る

VPC領域をサブネットに分割します。
ここでは、256分割(/24)します。

サイドナビの「サブネット」を押して、画面上部の「サブネット作成」を押します。

インターネットからアクセスできる、パブリックサブネットを「10.0.1.0/24」で作成します。 DBサーバーを置くプライベートサブネットは「10.0.2.0/24」で作成します。

ここまででこんな感じになりました。

インターネットに接続

次にサブネットをインターネットに接続するにはインターネットゲートウェイを利用します。

インターネットゲートウェイの作成

インターネットゲートウェイを作成するにはVPS > インターネットゲートウェイに移動します。

画面上の「インターネットゲートウェイの作成」を押します。

ダイアログが表示され、名前タグ(空欄でもOK)を入力して、作成ボタンを押すと、インターネットゲートウェイが作成されます。 作成されたインターネットゲートウェイVPCにアタッチを押すと、VPC領域にインターネットゲートウェイが結びつきます。 ※detachedからattachedになるのに少し時間がかかった。

ルートテーブル設定

ルートテーブル設定することで、ネットワークにデータが流れるようになります。

サブネットやインターネットゲートウェイの間にルーターの役割を果たすソフトウェアが動いています。

ネットワークにデータを送る際に、TCP/IPというプロコトルが利用されます。
TCP/IPではデータをパケットという単位で送受信します。

パケットはヘッダー情報と、データ情報を持っており、ヘッダー情報には「宛先IPアドレスが含まれています。

ルーターは「宛先IPアドレス」を見て、近いネットワークにパケットを送ってくれます。 そのため、ルーター「宛先IPアドレス値に対しての送り先」を設定しておく必要があります。

その設定をルートテーブルにおこないます。

ルートテーブルは、宛先アドレス(ディスティネーション) : 送信するネットワークの入り口となるルーター(ターゲット)のように定義します。
パケットが迷子にならないようにする為の地図のようなものでしょうか。。。

上の例でいくと、

ルーターAのルートテーブルは以下になります。 localは自分自身のネットワークを指します。

ディスティネーション ターゲット
クライアント(インターネット) local
サーバー1 local
サーバー2 local
サーバー3 ルーター2
サーバー4 ルーター2

ルーターBのルートテーブルは、

ディスティネーション ターゲット
クライアント(インターネット) ルーター1
サーバー1 ルーター1
サーバー2 ルーター1
サーバー3 local
サーバー4 local

パブリックサブネットをインターネットに接続する

パブリックサブネット(10.0.0.0/16)はインターネットと通信できません。 デフォルトでは、パブリックサブネットのルートテーブルは以下になっている為、それ以外の宛先のパケットは破棄されます。

ディスティネーション ターゲット
10.0.0.0/16 local

デフォルトゲートウェイの設定をする

10.0.0.0/16以外の宛先のパケットを、インターネットゲートウェイに転送するように設定を変更します。

設定にはパブリックサブネットのルートテーブルに宛先アドレスとして「全てのIPアドレスの範囲」を示す、「0.0.0.0/0」をに追加します。
ターゲットは、インターネットゲートウェイにします。

この設定が「転送先がない場合の転送先(デフォルトゲートウェイ)」となります。

1. 新しいルートテーブルを作成

パブリックサブネットに設定する為のルートテーブルを作成します。

サイドナビの「ルートテーブル」から「ルートテーブルの作成」を押します。

ルートテーブル名とVPCを選択して保存します。

2. ルートテーブルをサブネットに関連付ける

ルートテーブルをパブリックサブネットに関連付けます。

「サブネットの関連付け」タブを押して、「サブネットの関連付けの編集」ボタンを押します。

関連付けるサブネット(ここではパブリックサブネット)を選択して保存します。

3. デフォルトゲートウェイをインターネットゲートウェイに設定する

「ルート」タブを押して「ルートの変種」を押します。

「ルートの追加」を押して、送信先「0.0.0.0/0」、ターゲットに「インターネットゲートウェイを設定します。
インターネットゲートウェイは「igw-xxxxxxxx」という名称のものです。

4. 確認する

ルートテーブルが正しく設定されているかを確認します。

サイドナビの「サブネット」をクリックします。
「ルートテーブル」タブを押してデフォルトゲートウェイが設定されているのを確認します。

まとめ

ここまでで、VPCは以下のような状態になっています。