11
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

BeeXAdvent Calendar 2023

Day 8

AWSのパブリックサブネットに踏み台サーバーを構築し、プライベートサブネットのサーバーへSSHする①(VPC・サブネット作成)

Last updated at Posted at 2023-12-08

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経由でインターネットアクセスを行えるように設定します。

今回構築するリソースを構成図に起こしたものが下記図となります。

image.png

また、ルートテーブルの情報まで記したものが下記図となります。

image.png

パブリックサブネットのデフォルトゲートウェイ(0.0.0.0/0)にはインターネットゲートウェイを指定します。プライベートサブネットのデフォルトゲートウェイ(0.0.0.0/0)にはNATGatewayを指定します。

VPCの構築

VPCの構築

VPCから構築していきます。
AWSアカウントへログインし、コンソール上部の検索窓に「VPC」と入力します。
表示されたリンクからVPCのサービス画面に移動します。
左メニューから「YourVPCs」というリンクを押下します。

image.png

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ブロックなし」を指定します。
「テナンシー」は「デフォルト」を指定します。
(参考:テナンシー

image.png

NAMEタグ以外のタグを設定したい場合は、「Add tag」ボタンを押下してタグを追加します。
全ての設定が完了したら、「VPCを作成」を押下します。

image.png

コンソール上部に「VPCが正常に作成されました」と表示されることを確認します。

image.png

これでVPCの構築が完了です。

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

インターネットゲートウェイを作成し、VPCにアタッチします。
左メニュー画面から「Internet gateway」のリンクを押下します。

image.png

インターネットゲートウェイの一覧が表示されます。
右上の「インターネットゲートウェイの作成」を押下します。

image.png

インターネットゲートウェイの作成画面が表示されます。
「名前タグ」にインターネットゲートウェイの名前を入力します。
名前タグ以外のタグを設定したい場合は「新しいタグを追加」を押下してタグを追加設定します。
全ての設定を終えたら、「インターネットゲートウェイの作成」を押下します。

image.png

画面上部に「インターネットゲートウェイが作成されました」と表示されることを確認します。
右上の「アクション」を押下します。

image.png

インターネットゲートウェイのアタッチ画面が表示されます。
「使用可能なVPC」のプルダウンメニューを展開し、先ほど構築したVPCを指定します。「インターネットゲートウェイのアタッチ」を押下します。

image.png

これで、インターネットゲートウェイの作成・アタッチが完了です。

サブネットの作成

作成したVPCにサブネットを作っていきます。
VPCの左メニューから「Subnets」を選択し、サブネットの一覧画面へ移動します。「サブネットを作成」を押下します。

image.png

サブネットの作成画面が表示されます。
「VPC ID」のプルダウンメニューから先ほど作成したVPCを選択します。
「サブネット名」にサブネット名を入力します。画像ではパブリックサブネットを作成しているため、「HTTPS_DEMO_SUB_PUB1a」というサブネット名を入力しています。

「アベイラビリティゾーン」に「ap-northeast-1a」を選択します。
「IPv4 CIDRブロック」のテキストボックスにサブネットのIPアドレス範囲を入力します。今回は「10.0.0.0/24」で入力しました。

image.png

NAMEタグ以外のタグを設定したい場合は、「Add tag」ボタンを押下してタグを追加します。
全ての設定が完了したら、「サブネットを作成」を押下します。

image.png

画面上部に「1件のサブネットが正常に作成されました」と表示されることを確認します。

image.png

同じ要領で、プライベートサブネット(HTTP_DEMO_SUB_PRV1a、10.0.1.0/24)も作成します。

image.png
image.png

パブリックサブネットのルートテーブル編集

サブネットが作成されたら、サブネットにアタッチするルートテーブルを編集します。
VPCの左メニューから「Route tables」を押下します。
VPCを作成した時点で、すでにルートテーブルが一つ追加された状態となっています。
先ほど作成したVPCに所属しているルートテーブルを選択します。

デフォルトの状態だと、ルートテーブルにはNAMEタグが設定されていません。
選択したサブネットの「Name」の位置にカーソルを合わせるとペンのマークが表示されます。

image.png

ペンマークを押下すると、NAMEタグの編集画面が表示されます。
デフォルトで存在するルートテーブルはパブリックサブネット用のルートテーブルとするため、「HTTPS_DEMO_SUB_PUB1a」と入力し、「保存」を押下します。

image.png

ルートテーブルにNAMEタグが設定されました。
コンソール下部に表示されている詳細メニューから「ルート」タブに移動し、「ルートを編集」を押下します。

image.png

ルートの編集画面が表示されます。
デフォルトの状態だと、VPCのIPアドレス範囲(10.0.0.0/21)のターゲットとして「local」が登録されています。このルートテーブルはパブリックサブネット用の物とするので、デフォルトゲートウェイ(0.0.0.0/0)に対してターゲットをインターネットゲートウェイとするようルートを設定します。
「ルートを追加」を押下すると、ルート入力用のテキストボックスが追加されます。
「送信先」に「0.0.0.0/0」を入力し、「ターゲット」のプルダウンメニューから先ほど作成したインターネットゲートウェイを選択します。「変更を保存」を押下します。

image.png

画面上部に「ルートを正常に更新しました」と表示されることを確認します。
「サブネットの関連付け」タブを押下します。

image.png

デフォルトの状態だと、「明示的なサブネットの関連付け」には何も表示されていません。
※ただし、VPC作成時に一緒に作成される初期ルートテーブル「メインルートテーブル」となるため、今回作成されたVPC内のサブネットについては、ルートテーブルが何も紐づけられていない場合は暗黙的にこのルートテーブルに紐づけられることとなります。
ここでは明示的にサブネットの関連付けを行います。
「サブネットの関連付けを編集」を押下します。

image.png

サブネットの関連付け編集画面が表示されます。
パブリックサブネットを選択し、「関連付けを保存」を押下します。

image.png

画面上部に「サブネットの関連付けが正常に更新されました」と表示されることを確認します。

image.png

これで、パブリックサブネットへのサブネットの関連付けが完了です。

プライベートサブネットのルートテーブル作成

これで、パブリックサブネットへのルートテーブル紐づけが完了しました。
次は、プライベートサブネットに紐づけるためのルートテーブルを作成します。
「ルートテーブル作成」を押下します。

image.png

ルートテーブルの作成画面が表示されます。
ルートテーブルの名前を入力します。
今回はプライベートサブネット用のルートテーブルのため、「HTTPS_DEMO_RTB_PRV」と入力します。
「VPC」のプルダウンメニューから先ほど作成した「HTTPS_DEMO_VPC」を選択します。
NAMEタグ以外のタグを設定する場合は「新しいタグを追加」を押下してタグを追加設定します。
「ルートテーブルを作成」を押下します。

image.png

作成直後の状態だと、ルートテーブルはどのサブネットにも紐づいていません。
「サブネットの関連付けを編集」を押下します。

image.png

サブネットの関連付け編集画面が表示されます。
「HTTPS_DEMO_SUB_PRV_1a」を選択し、「関連付けを保存」を押下します。

image.png

プライベートサブネット用のルートテーブル(HTTPS_DEMO_RTB_PRV)には、まだローカルCIDR範囲以外のルートテーブルが設定されていません。
プライベートサブネットはNatGateway経由でインターネットに接続するように設定したいため、NatGatewayの作成を行います。

image.png

NATGatewayの作成

VPCの左メニューから「Natgateways」を押下します。
NATゲートウェイの一覧画面に移動します。
現在はまだNATGatewayが一つも存在しない状態です。
右上の「NATゲートウェイを作成」を押下します。

image.png

NATGatewayの作成画面が表示されます。
「名前」のテキストボックスにNATGatewayの名前を入力します。
今回は「HTTPS_DEMO_NAT1a」と入力しました。
「サブネット」のプルダウンメニューから「HTTPS_DEMO_SUB_PUB1a」を選択します。
「接続タイプ」にパブリックを選択します。
デフォルトの状態だとElasticIP(リソースに割り当てられる固定のパブリックIPアドレス)が一つも存在しない為、「ElasticIPを割り当て」を押下しElasticIPを割り当てます。

image.png

「追加設定」を展開すると、NATGatewayに割り当てるプライベートIPアドレスを指定することができます。指定しない場合は、AWSにより空いているプライベートIPアドレスが割り当てられます。今回はプライベートIPアドレスを指定せずNATを作成するため、何も入力していません。
NAMEタグ以外のタグを設定する場合は「新しいタグを追加」で追加のタグを設定します。「NATゲートウェイを作成」を押下します。

image.png

「NATゲートウェイが正常に作成されました」と表示されることを確認します。

image.png

プライベートサブネット用のルートテーブルへのルート追加

プライベートサブネット用のルートテーブルに、NATゲートウェイあてのルートを追加します。

VPCの左メニューから「ルートテーブル」を押下します。
プライベートサブネット用のルートテーブル(HTTPS_DEMO_RTB_PRV)を選択し、ルートタブに移動します。「ルートを編集を押下します。

image.png

ルートの編集画面が表示されます。
デフォルトゲートウェイ(0.0.0.0/0)のターゲットを先ほど作成したNATGatewayに指定し、「変更を保存」を押下します。
image.png

これで、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に設定されています。

image.png

ここまでお読みいただきありがとうございました。
次回はパブリックサブネット上に踏み台サーバーを構築します。

11
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?