16.VPCハンズオン

AWSのグローバルインフラストラクチャやVPCについての座学説明が終了しました。ここではいよいよ実際にVPCの作成をハンズオン形式で進めていきましょう!構成のゴールとしては以下図のようになります。一つずつ手順を踏んで進めますので慌てずゆっくり作成していきましょう。

【ハンズオン】2つのサブネットを作成しインスタンスを配置しよう

【ハンズオン:01】マネージメントコンソールよりVPCを選択する

AWSマネージメントコンソールより、VPCを選択します。

VPCの操作画面が表示されます。

【ハンズオン:02】VPCを作成する

標準でVPCは1つ準備されていますが、今回は新しく作成を行います。
左側メニューよりVPCをクリックします。

すでに1つありますが、新しく作成しますのでVPCを作成ボタンを押します。

【ハンズオン:03】VPCの情報を入力する

VPC名やIPv4CIDRブロックなど必要情報を入力していきます。今回は以下の内容で設定してみました。

VPC名:handson-vpc
IPv4 CIDRブロック:10.0.0.0/21

IPv6 CIDRブロックはなし、テナンシーはデフォルトにしてみました。

タグ情報ですがNameタグはVPC名設定時に自動的に入力されているはずです。管理を考慮しタグ付けが必要ならば新しいタグを追加より要件にそったタグ名および値を指定されてください。入力が終了したらVPCを作成ボタンを押します。

これで新しいVPCが作成されました。イメージとしては以下図の状況です。

ポイント

VPC作成時のIPv4 CIDRですが、余裕を持ったIPアドレス幅(レンジ)を割り振った方が良いです。

今後、用途に応じてサブネット分割やネットワーク拡張などを考慮しての設計です。

【ハンズオン:04】インターネットゲートウェイを作成

外部ネットワークからVPCにアクセスするためには出入口が必要になります。その出入口がインターネットゲートウェイになりますので、左側メニューより選択します。

1つのVPCに1つのインターネットゲートウェイの紐付けが可能です。新しく作成したVPC用にインターネットゲートウェイを作成します。

必要情報の入力になります。名前やタグを適宜付与し、インターネットゲートウェイの作成ボタンを押します。

インターネットゲートウェイ名:handson-gateway

インターネットゲートウェイが作成されました。

【ハンズオン:05】インターネットゲートウェイをVPCにアタッチする

作成したVPCとインターネットゲートウェイ。このままでは関連性がありません。VPCにアタッチすることでインターネットゲートウェイが利用可能になります。アクションボタンよりVPCにアタッチを選択します。

どのVPCにアタッチするかの選択画面に移動します。使用可能なVPC欄の空白をクリックすると候補が出てきますの選択します。その後インターネットゲートウェイのアタッチボタンを押します。

無事にアタッチが完了するはずです。

構成としては以下図の状況になります。

【ハンズオン:06】サブネットを作成する

インターネットゲートウェイの設置が終わりましたので、次は用途に応じたサブネットの作成に進みます。左側メニューのサブネットを選択します。

新しいサブネットの作成となりますので、サブネットを作成ボタンを押します。

どのVPC内にサブネットを作成するのか?リストボックスより先程新規作成したVPCを選択します。

1つ目は外部からアクセスできるパブリックなサブネットにしますので、以下内容で必要情報を入力していきます。

サブネット名:handson-subnet-public
アベイラビリティゾーン:(リージョン内でどれか1つを選択。今回はus-east-1aを選択)
IPv4 CIDRブロック:10.0.1.0/24

2つ目のサブネットの作成もしたいので、下記にある新しいサブネットを追加ボタンを押します。

2つ目のプライベートなサブネット情報も以下内容で入力します。

サブネット名:handson-subnet-private
アベイラビリティゾーン:(リージョン内でどれか1つを選択。今回はus-east-1aを選択)
IPv4 CIDRブロック:10.0.2.0/24

必要情報の入力が終わりましたので、最後にサブネットを作成ボタンを押します。

少し待つとサブネットの作成が進みます。その後作成したサブネットが一覧で表示されます。

構成としては以下図の状況になります。

補足説明

今回の作業ですが補足説明があります。おそらく識者な方は気づいていると思いますが・・

①AZが1つのみで運用していてAZ障害時に可用性としては問題がある(今後のハンズオンで改修予定)

【ハンズオン:07】ルーティングテーブルを変更する

サブネット作成をしました。ではインターネットとの通信が可能にするためにルーティングテーブルにインターネットゲートウェイを追加しましょう。作成したサブネットのうちインターネットとの通信を許可するパブリックサブネットを選択します。

下部に詳細画面が出てきます。その中のルートテーブルのリンクをクリックします。

ルートテーブルの画面に変わります。選択したルートテーブルの下部メニューよりルートを選択します。

現時点でのルート情報が表示されます。まだインターネットゲートウェイへの経路が追加されていませんのでルートの編集ボタンを押します。

ルートの編集画面になりますのでルートの追加ボタンを押します。

インターネットへの通信を行うため、既存のVPCネットワーク以外の通信は全てインターネットゲートウェイに出ていくように設定します。設定内容は以下の通りです。

送信先:0.0.0.0/0
ターゲット:メニューより作成したインターネットゲートウェイを選択

最後にルートの保存ボタンを押します。

無事ルートの編集が終わります。

【ハンズオン:08】ルーティングテーブルを新規追加しサブネットと関連付ける

ルーティングテーブルを作成しました。しかし実はこれだと問題があります。サブネットメニューよりプライベートサブネットのルート情報を確認してみてください。

ルートテーブルを見てみると、インターネット外部からアクセスされてはNGなサブネットなのに出入口となるインターネットゲートウェイが関連付けされています。まずいですね!

VPC内のみ通信経路を設定する新しいルートテーブルを作成しましょう!左側メニューよりルートテーブルを選択します。

新しく作成しますのでルートテーブルの作成ボタンを押します。

ルートテーブル情報を入力します。今回は以下のように入力しました。

名前タグ:handson-routetable-private
VPC:作成したVPCを選択

その後、作成ボタンを押します。

無事に作成されましたので閉じます。

ルートテーブル一覧に作成したルートテーブルがありますので選択します。

プライベートサブネットとの関連付けを行いますので、サブネットの関連付けを押します。

どこにも関連付けられていない状況です。サブネットの関連付けの編集ボタンを押して編集しましょう!

今回関連付けを行うのはプライベートなサブネットです。プライベートサブネットを選択して保存ボタンを押します。

これでパブリックサブネットとプライベートサブネットは異なるルートテーブルが設定されました。比較してみましょう!左側のサブネットメニューを選択後

プライベートサブネットのルートテーブル情報

パブリックサブネットのルートテーブル情報

それぞれ異なるルートテーブル情報になっていることが確認できました。構成図としては以下の状況です。

【ハンズオン:09】インスタンスを作成したVPC内のサブネットに設置する。

これで土台となるVPCの準備は完了です。次はEC2インスタンスそれぞれのサブネットに設置していきます。以前で行ったハンズオンのようにEC2の作成を進めますが、以下ネットワーク設定の箇所が異なります。

ネットワーク:新規作成したVPCを選択する
サブネット:新規作成したサブネットを選択する
割当パブリックIP:公開するパブリックサブネットなら有効。非公開なプライベートサブネットなら無効

課題

あえてEC2インスタンスの作成手順は明記しません。
作成したVPC内のパブリックサブネットおよびプライベートサブネットそれぞれにEC2インスタンスを準備設置してください。

なお新しくVPCを作成しましたので、セキュリティグループも新規で作成が必要です。ご注意下さい。

2つのEC2インスタンスが無事に作成できると、サブネット内のプライベートIPアドレスが自動的に付与されているはずです。

まずはパブリックサブネットに設置したEC2インスタンスの場合

次にプライベートサブネットに設置したEC2インスタンスの場合

ここまでの構成は以下図のようになります。

【ハンズオン:10】パブリックサブネットのインスタンスにSSH接続をする

各サブネットにEC2インスタンスを設置しました。次はVPCの外にいる学習者はパブリックサブネットにSSH接続をしてみましょう!パブリックサブネットに設置したEC2インスタンスのパブリックIPv4アドレスを調べます。

そのパブリックIPv4アドレスでSSH接続を行います。

(WindowsでのTeratermでの場合)

AmazonLinuxでインスタンスを準備した場合にはユーザー名はec2-userを入力し、ダウンロードしたキーペアを指定し接続をします。

セキュリティグループなどが適切に設定されていればSSH接続できるはずです!

現在の構成状況は以下図の内容となっています。

【ハンズオン:11】プライベートサブネットのインスタンスにSSH接続をするには?(セキュリティグループの設定)

パブリックサブネットには接続できました。では次にどうやってプライベートサブネットに設置されたインスタンスにSSH接続を行うか?です。方法は色々とありますが、今回はパブリックサブネットのEC2インスタンスを踏み台として利用しましょう!

まずはプライベートサブネット側に設置したインスタンスのセキュリティグループを確認します。左側メニューよりセキュリティグループを選択します。

パブリックサブネットに設置したインスタンス用のセキュリティグループを選択し、インバウンドルールを確認します。

SSH接続を許可するルールが入っていれば問題ありません(ソースは適切にネットワーク環境にあわせて設定が必要です)

次はプライベートサブネットに設置するインスタンスのセキュリティグループを作成していきます。右上にあるセキュリティグループを作成ボタンを押します。

必要情報を入力していきます。

セキュリティグループ名:handson-private-sgと命名しました。
説明:上記の説明文を記載します。
VPC:作成したVPCを選択します。

つづいてインバウンドルールの設定です。インバウンドルールではSSHの接続を許可しますのでプロトコルにはSSHを選択します。またソースにはパブリックサブネットに設置したインスタンス用のセキュリティグループの選択が可能です。

ついでにPingも出来るようにICMPも同様に許可設定をしましょう!

最後にセキュリティグループを作成ボタンを押して完了です。

作成したVPC分のセキュリティグループは準備完了です。

パブリックサブネット用、プライベートサブネット用とそれぞれのインスタンス用のセキュリティグループを準備しましたので、2つのサブネットそれぞれのインスタンスを作成し、今回のセキュリティグループをそれぞれ付与します。

インスタンス作成後、一覧画面でちゃんとサブネット毎にセキュリティグループが別れているか確認して下さい。またSSHで接続するキーも併せて確認します。

【ハンズオン:12】踏み台サーバにSSH接続し、SCPでキーペアを送信する

セキュリティグループ設定やサブネット選択が正しければパブリックサブネットに設置した踏み台サーバにSSH接続できるはずです。

パブリックサブネットに設置した踏み台サーバからプライベートサブネット内のインスタンスにSSH接続する際、キーペアが必要です。しかし踏み台サーバにはキーペアがありません。どうやって準備するか?

今回はSCPを用いてキーペアデータを送信します。

(WindowsでTeratermを使用している場)

接続中のウィンドウにキーペアをドラッグアンドドロップすると転送作業が始まります。

ファイル送信の確認画面が出てきますのでOKボタンを押します。

ファイル転送後はログイン中の踏み台サーバでファイルが存在するか確認します。lsコマンドを投入するとそのキーペアが転送終了し表示されます。

あとはこのキーペアを用いてプライベートサブネット内のインスタンスへSSH接続すればOKです。

ssh -i [キーペア名] ec2-user@[プライベートサブネット内のサーバーのプライベートIPアドレス]

キーペアの権限設定をしてないと以下のように権限エラーが表示されます。

よって踏み台サーバに送信したキーペアの権限を変更します。

chmod 400 送信したキーペア名

再度SSH接続を行います。

 ssh -i [キーペア名] ec2-user@[プライベートサブネット内のサーバーのプライベートIPアドレス]

無事に踏み台サーバ経由でプライベート内のインスタンスにSSH接続が出来ました。


(macやWSLなどでキーペアを送る方法は?)

ではWindows以外のOSの場合にはどうやってキーペアを送信したらいいでしょうか?
答えはSCPを使います。

 scp -i [接続で用いるキーペア] [送りたいデータ] [接続ユーザー名]@[接続するサーバ情報]:[保存先のディレクトリ]

まずはmacやWSLでログインし接続で用いるキーペアを準備します。lsでファイルが存在するか確認してください。

 ls -l

キーペアの準備について

MacやWSLでキーペアをホームディレクトリに設置するにはcpやmvなどのコマンド操作が必要になります。

別途コマンド学習が必要となりますのでご注意下さい。 >> 参考情報::Man page of CP

次にキーペアの権限を変更します。

chmod 400 キーペア名

SCPを用いてキーペアを踏み台サーバーへ送信しましょう!保存先はec2-userのホームディレクトリにします。

 scp -i [接続で用いるキーペア] [プライベートサブネットのインスタンス接続で用いるキーペア] ec2-user@踏み台サーバのパブリックIPアドレス:~/

送信後はssh接続をし踏み台サーバにアクセスできるか確認します。

 ssh -i [接続で用いるキーペア] ec2-user@踏み台サーバのパブリックIPアドレス

無事に接続できました。踏み台サーバにSCPで送信したキーペアがあるか確認します。

 ls -l

プライベートサブネットへの接続で用いるキーペアが踏み台サーバに準備できましたので、プライベートサブネットへ設置されているインスタンスにssh接続をします。

 ssh -i [キーペア名] ec2-user@[プライベートサブネット内のサーバーのプライベートIPアドレス]

無事に接続できました。これで接続形態としては最初に提示した構成図のように踏み台サーバ経由での接続となりました。

実はまだ問題があります。

この構成ですが接続確認までは良いのですが、問題があります。

次のハンズオンではその問題を解決する内容に取り組みます!

戻る: AWS基礎コース > AWS基礎-VPC実習