はじめに
前回の記事(https://qiita.com/hugo-crt/items/7819a61ea4cb63532787)
の続きとなります。
今回は、前回作成したVPCのルートテーブルが実際に機能しているか、またPublicとPrivateではインターネットからの接続に対してどのような挙動を見せるのかをハンズオン形式で学習していきます。
ハンズオン
IAMユーザ作成編学習しましたが、作業ユーザに適切な権限を与えて作業するんでしたね。
ということは今回、Public Subnet内でwebサーバを立てるので、権限が必要です。
現在作業しているユーザは画像の2つのロールしか持っておらず、
今回のハンズオンには関係がないため、新しいロールを作成しましょう。
今回webサーバを立てるにあたって、EC2というサービスを使用します。
一連のハンズオン学習ではタイトルとしては学習していませんが、
今回の目的はルートテーブルの通信テストなため、説明は割愛します。
-
信頼されたエンティティタイプはAWSのサービスを選択します。
-
ポリシーの検索窓でssmと入力します。
※ssmとはsystems managerの略で、以下の説明が参考になります。
作成が成功すると以下のような画面になります。この後EC2を利用してサーバを立ち上げるための設定を行うときに、このロールを使用します。
ここからEC2の設定項目が多く混乱しがちですが、上から順に設定していきます。
-
次にOSイメージを設定します。
今回はデフォルトで選択されていたAmazon Linuxのままにします。 -
次にネットワーク設定です。デフォルトではネットワークがデフォルトVPCとなっているため、右上の「編集」をクリックします。
-
前回作成した「hands on」というVPCを選択し、サブネットはPublic Subnet-aを選択しましょう。
-
セキュリティグループ名はwebとします。
-
ルールの部分のタイプはデフォルトではSSHとなっていますが、今回はブラウザから接続のテストを行うため、HTTPを選択します。
- 高度な詳細では、IAMインスタンスプロフィールを、先ほどSSMのフルアクセス権限を与えたロール「handson」を選択します。
- 下にスクロールするとユーザーデータという項目があります。この部分は起動時にEC2に対してコマンドを渡して実行させることができます。
そこで、起動時に起動時にwebサーバを立ち上げられるよう、以下のコマンドを入力します。
#!/bin/bash
yum -y update
yum -y install httpd
systemctl enable httpd.service
systemctl start httpd.service
-
この状態で「インスタンスを起動」をクリックします。
-
すると以下のキーペア作成の確認画面が出てくるため、キーペアなしで続行を選択して、「キーペアなしで続行」をクリックします。
-
インスタンスの起動が成功すると、以下のように灰色のステータスが2箇所あるため、画面真ん中の項目の保留中と、ステータスチェックが緑色の文字に変わるまで数分待ちます。
-
詳細のパブリックIPv4アドレスの左側にあるコピーアイコンをクリックしてください。
これをブラウザの検索窓に入力して接続テストを行います。
前回のルートテーブルの設定で「Public Root Table」に「Public Subnet-a」を関連付け、そのサブネット内にEC2インスタンスを立ち上げたので、接続ができていることが確認できますね。
では、VPCのPublic Subnet-aをPublic Root TableからPrivate Root Tableに関連付け直したらどうなるでしょうか。
設定方法は前回の記事で確認してください。
先ほどコピーしたパブリックIPv4アドレスを再度ブラウザの検索窓に入力してエンターを押すと、実行待ちの末、エラーが出ると思います。
これで接続テストは完了となります。
最後に
自分に必要ないスペックの高いガジェットって、不要ってわかってても欲しくなっちゃいますよね。
ことMacに関してはiMacとMac Bookだけなんですけど、
M1 Mac MiniとiPad Airで十分なんだよなあと。
ボーナス近づいてきたし欲しいけど我慢。他の有益なものを買います。