AWSでNW構築を行う中で、サーバーへのアクセスのために踏み台サーバーを構築することが良くあるため、構築手順をブログにまとめておくことにしました。
AWSを初めて触る人でもわかりやすいように、なるべく噛む砕いて手順を書いていこうと思います。
今回は基盤となるVPC・サブネットの構築を行います。
「AWSのパブリックサブネットに踏み台サーバーを構築し、プライベートサブネットのサーバーへSSHする」の手順記事まとめ
①VPC・サブネット作成←今ここ
②踏み台Linuxサーバー構築
③踏み台経由のSSH接続
④Windowsnの踏み台サーバー作成
⑤プライベートサブネット上のLinuxサーバーをWEBサーバー化しWindowサーバーから接続確認をする
※関連記事
Route53でPrivateHostedZoneを作成しVPC内の名前解決を行う
用語の確認
構成を確認する前に、簡単に用語を確認しておきます。
構築手順だけ知りたい方はこの章は読み飛ばして「構成の確認」にお進みください。
そもそもクラウドとは
クラウドとは、「ユーザー側でサーバーやアプリを揃えるのではなく、インターネット経由で必要な時だけサービスを利用する」という考え方のことです。
AWS
AWSの正式名称は「Amazon Web Services」です。
AWSは、Amazonが提供するパブリッククラウドサービスのことです。AWSを利用すれば、ユーザー側でデータセンターや物理サーバーを用意せずとも、インターネット経由で大規模なシステム構築が可能となります。
参考:AWSとは?
リージョン
AWSはクラウドサービスとはいえ、実際は世界のどこかには物理的なデータセンターやサーバーが存在します。ユーザーはインターネット経由でAWSのデータセンター内の物理的なリソースにアクセスし、システムを構築します。AWSのデータセンターは世界各国に存在します。AWSのデータセンターが存在する地理的な場所のことを「リージョン」といいます。AWSのデータセンターは、各地のリージョン内の複数のアベイラビリティゾーン(AZ)に分散して存在します。
参考:リージョンとアベイラビリティーゾーン
アベイラビリティゾーン
アベイラビリティゾーンとは、AWSリージョン内に存在する1つ以上のデータセンターのことです。アベイラビリティゾーン内のリソースは電源やネットワーク、接続が冗長化されています。また、アベイラビリティゾーン同士は広帯域・低レイテンシーの冗長化された回線で相互に接続されています。
参考:リージョンとアベイラビリティーゾーン
VPC
AWS内に作成する仮想的なネットワークのことです。AWSを利用する場合は、VPCの上にサーバーやデータベースなどのリソースを構築することとなります。
/16 から /28 の範囲でIPCIDRを指定します。RFC1918の範囲からIPを指定することが推奨されています(IPv4 VPC CIDR ブロック)。
インターネットゲートウェイ(IGW)
VPCとインターネット間の通信を可能にする機能です。
構成図などでは省略して「IGW」と書かれていることがあります。
VPCにインターネットゲートウェイをアタッチし、ルートテーブルのデフォルトゲートウェイ(0.0.0.0/0)のターゲットとしてインターネットゲートウェイを指定することで、VPC内のサブネットからインターネットへの通信が行えるようになります。
サブネット
VPCのIPアドレス範囲をさらに分割したものです。サブネットのIPアドレス範囲は、VPCよりも狭い範囲で設定する必要があります。サブネットごとにルートテーブルを分けて設定できます。
AWSでは、インターネットゲートウェイへのルートがあるサブネットを「パブリックサブネット」、インターネットゲートウェイへのルートがないサブネットを「プライベートサブネット」といいます。
NATGateway
NATとは、送信元のIPアドレスを別のIPアドレスに変換する機能のことです。プライベートなネットワークからインターネットへ通信する際には、NATによりプライベートIPアドレスをパブリックIPアドレスへ変換します。オンプレミス環境ではNAT対応ルーターなどでNATによるIPアドレス変換を行っています。AWSでは、NATGatewayというマネージドサービスにより、NATの機能が利用できます。
構成の確認
今回は東京リージョンに10.0.0.0/21の範囲でVPCを構築します。
VPCにはインターネットゲートウェイをアタッチします。
VPCの中には、パブリックサブネット(10.0.0.0/24)、プライベートサブネット(10.0.1.0/24)の二つのサブネットを構築します。
パブリックサブネットのルートテーブルにはインターネットゲートウェイあてのルートを設定し、インターネットアクセスが行えるようにします。また、パブリックサブネットにNATGatewayを構築し、プライベートサブネットからNATGateway経由でインターネットアクセスを行えるように設定します。
今回構築するリソースを構成図に起こしたものが下記図となります。
また、ルートテーブルの情報まで記したものが下記図となります。
パブリックサブネットのデフォルトゲートウェイ(0.0.0.0/0)にはインターネットゲートウェイを指定します。プライベートサブネットのデフォルトゲートウェイ(0.0.0.0/0)にはNATGatewayを指定します。
VPCの構築
VPCの構築
VPCから構築していきます。
AWSアカウントへログインし、コンソール上部の検索窓に「VPC」と入力します。
表示されたリンクからVPCのサービス画面に移動します。
左メニューから「YourVPCs」というリンクを押下します。
VPCの作成画面が表示されます。
「作成するリソース」を「VPCのみ」とします。
※「VPCなど」を選択すると、VPC・サブネット・インターネットゲートウェイ・NatGatewayなどを一気に作成することも可能です。
「名前タグ」にVPCの名前を入力します。
今回は「HTTPS_DEMO_VPC」という名前でVPCを作成します。
「IPv4 CIDRブロック」に「IPv4 CIDRの自動入力」を指定します。
「IPv4 CIDR」のテキストボックスにVPCのアドレス範囲を入力します。
今回は10.0.0.0/21で作成しました。
「IPv6 CIDRブロック」は「IPv6 CIDRブロックなし」を指定します。
「テナンシー」は「デフォルト」を指定します。
(参考:テナンシー)
NAMEタグ以外のタグを設定したい場合は、「Add tag」ボタンを押下してタグを追加します。
全ての設定が完了したら、「VPCを作成」を押下します。
コンソール上部に「VPCが正常に作成されました」と表示されることを確認します。
これでVPCの構築が完了です。
インターネットゲートウェイの作成・アタッチ
インターネットゲートウェイを作成し、VPCにアタッチします。
左メニュー画面から「Internet gateway」のリンクを押下します。
インターネットゲートウェイの一覧が表示されます。
右上の「インターネットゲートウェイの作成」を押下します。
インターネットゲートウェイの作成画面が表示されます。
「名前タグ」にインターネットゲートウェイの名前を入力します。
名前タグ以外のタグを設定したい場合は「新しいタグを追加」を押下してタグを追加設定します。
全ての設定を終えたら、「インターネットゲートウェイの作成」を押下します。
画面上部に「インターネットゲートウェイが作成されました」と表示されることを確認します。
右上の「アクション」を押下します。
インターネットゲートウェイのアタッチ画面が表示されます。
「使用可能なVPC」のプルダウンメニューを展開し、先ほど構築したVPCを指定します。「インターネットゲートウェイのアタッチ」を押下します。
これで、インターネットゲートウェイの作成・アタッチが完了です。
サブネットの作成
作成したVPCにサブネットを作っていきます。
VPCの左メニューから「Subnets」を選択し、サブネットの一覧画面へ移動します。「サブネットを作成」を押下します。
サブネットの作成画面が表示されます。
「VPC ID」のプルダウンメニューから先ほど作成したVPCを選択します。
「サブネット名」にサブネット名を入力します。画像ではパブリックサブネットを作成しているため、「HTTPS_DEMO_SUB_PUB1a」というサブネット名を入力しています。
「アベイラビリティゾーン」に「ap-northeast-1a」を選択します。
「IPv4 CIDRブロック」のテキストボックスにサブネットのIPアドレス範囲を入力します。今回は「10.0.0.0/24」で入力しました。
NAMEタグ以外のタグを設定したい場合は、「Add tag」ボタンを押下してタグを追加します。
全ての設定が完了したら、「サブネットを作成」を押下します。
画面上部に「1件のサブネットが正常に作成されました」と表示されることを確認します。
同じ要領で、プライベートサブネット(HTTP_DEMO_SUB_PRV1a、10.0.1.0/24)も作成します。
パブリックサブネットのルートテーブル編集
サブネットが作成されたら、サブネットにアタッチするルートテーブルを編集します。
VPCの左メニューから「Route tables」を押下します。
VPCを作成した時点で、すでにルートテーブルが一つ追加された状態となっています。
先ほど作成したVPCに所属しているルートテーブルを選択します。
デフォルトの状態だと、ルートテーブルにはNAMEタグが設定されていません。
選択したサブネットの「Name」の位置にカーソルを合わせるとペンのマークが表示されます。
ペンマークを押下すると、NAMEタグの編集画面が表示されます。
デフォルトで存在するルートテーブルはパブリックサブネット用のルートテーブルとするため、「HTTPS_DEMO_SUB_PUB1a」と入力し、「保存」を押下します。
ルートテーブルにNAMEタグが設定されました。
コンソール下部に表示されている詳細メニューから「ルート」タブに移動し、「ルートを編集」を押下します。
ルートの編集画面が表示されます。
デフォルトの状態だと、VPCのIPアドレス範囲(10.0.0.0/21)のターゲットとして「local」が登録されています。このルートテーブルはパブリックサブネット用の物とするので、デフォルトゲートウェイ(0.0.0.0/0)に対してターゲットをインターネットゲートウェイとするようルートを設定します。
「ルートを追加」を押下すると、ルート入力用のテキストボックスが追加されます。
「送信先」に「0.0.0.0/0」を入力し、「ターゲット」のプルダウンメニューから先ほど作成したインターネットゲートウェイを選択します。「変更を保存」を押下します。
画面上部に「ルートを正常に更新しました」と表示されることを確認します。
「サブネットの関連付け」タブを押下します。
デフォルトの状態だと、「明示的なサブネットの関連付け」には何も表示されていません。
※ただし、VPC作成時に一緒に作成される初期ルートテーブル「メインルートテーブル」となるため、今回作成されたVPC内のサブネットについては、ルートテーブルが何も紐づけられていない場合は暗黙的にこのルートテーブルに紐づけられることとなります。
ここでは明示的にサブネットの関連付けを行います。
「サブネットの関連付けを編集」を押下します。
サブネットの関連付け編集画面が表示されます。
パブリックサブネットを選択し、「関連付けを保存」を押下します。
画面上部に「サブネットの関連付けが正常に更新されました」と表示されることを確認します。
これで、パブリックサブネットへのサブネットの関連付けが完了です。
プライベートサブネットのルートテーブル作成
これで、パブリックサブネットへのルートテーブル紐づけが完了しました。
次は、プライベートサブネットに紐づけるためのルートテーブルを作成します。
「ルートテーブル作成」を押下します。
ルートテーブルの作成画面が表示されます。
ルートテーブルの名前を入力します。
今回はプライベートサブネット用のルートテーブルのため、「HTTPS_DEMO_RTB_PRV」と入力します。
「VPC」のプルダウンメニューから先ほど作成した「HTTPS_DEMO_VPC」を選択します。
NAMEタグ以外のタグを設定する場合は「新しいタグを追加」を押下してタグを追加設定します。
「ルートテーブルを作成」を押下します。
作成直後の状態だと、ルートテーブルはどのサブネットにも紐づいていません。
「サブネットの関連付けを編集」を押下します。
サブネットの関連付け編集画面が表示されます。
「HTTPS_DEMO_SUB_PRV_1a」を選択し、「関連付けを保存」を押下します。
プライベートサブネット用のルートテーブル(HTTPS_DEMO_RTB_PRV)には、まだローカルCIDR範囲以外のルートテーブルが設定されていません。
プライベートサブネットはNatGateway経由でインターネットに接続するように設定したいため、NatGatewayの作成を行います。
NATGatewayの作成
VPCの左メニューから「Natgateways」を押下します。
NATゲートウェイの一覧画面に移動します。
現在はまだNATGatewayが一つも存在しない状態です。
右上の「NATゲートウェイを作成」を押下します。
NATGatewayの作成画面が表示されます。
「名前」のテキストボックスにNATGatewayの名前を入力します。
今回は「HTTPS_DEMO_NAT1a」と入力しました。
「サブネット」のプルダウンメニューから「HTTPS_DEMO_SUB_PUB1a」を選択します。
「接続タイプ」にパブリックを選択します。
デフォルトの状態だとElasticIP(リソースに割り当てられる固定のパブリックIPアドレス)が一つも存在しない為、「ElasticIPを割り当て」を押下しElasticIPを割り当てます。
「追加設定」を展開すると、NATGatewayに割り当てるプライベートIPアドレスを指定することができます。指定しない場合は、AWSにより空いているプライベートIPアドレスが割り当てられます。今回はプライベートIPアドレスを指定せずNATを作成するため、何も入力していません。
NAMEタグ以外のタグを設定する場合は「新しいタグを追加」で追加のタグを設定します。「NATゲートウェイを作成」を押下します。
「NATゲートウェイが正常に作成されました」と表示されることを確認します。
プライベートサブネット用のルートテーブルへのルート追加
プライベートサブネット用のルートテーブルに、NATゲートウェイあてのルートを追加します。
VPCの左メニューから「ルートテーブル」を押下します。
プライベートサブネット用のルートテーブル(HTTPS_DEMO_RTB_PRV)を選択し、ルートタブに移動します。「ルートを編集を押下します。
ルートの編集画面が表示されます。
デフォルトゲートウェイ(0.0.0.0/0)のターゲットを先ほど作成したNATGatewayに指定し、「変更を保存」を押下します。
これで、VPC・サブネット・インターネットゲートウェイ・ルートテーブル・NATGatewayの作成が完了しました。
作成したリソースの確認
再度、作成したリソースを確認します。
10.0.0.0/21のVPCの中に、パブリックサブネット(10.0.0.0/24)とプライベートサブネット(10.0.1.0/24)の二つが存在します。
パブリックサブネットのデフォルトゲートウェイ(0.0.0.0/0)はVPCにアタッチしたインターネットゲートウェイに設定されています。
プライベートサブネットのデフォルトゲートウェイ(0.0.0.0/0)はパブリックサブネットに作成したNATGatewayに設定されています。
ここまでお読みいただきありがとうございました。
次回はパブリックサブネット上に踏み台サーバーを構築します。