内容
・目標
・使用できるサービス
・参考サイト
・作業アカウント
・VPC作成とインターネット接続環境の作成
・ルートテーブルによる経路設定を理解
・プライベートサブネットからインターネットへのアクセス方法
・VPC外サービスへの接続方法(説明)
・VPC外サービスへの接続方法1(インターフェイス型)
・VPC外サービスへの接続方法2(ゲートウェイ型)
・後片付け
・結果
目標
AWS SAA合格と実務でしっかりやっていけるように学習!前回の学習のなかで、マルチAZ、サブネット、プライベート、パブリックといった環境に慣れるため必要性を感じたため、本題材を選択。
使用できるサービス
VPC,Internet gateway,NAT gateway,Endpoint,EIP,EC2,S3,IAM Role
参考サイト
作業アカウント
IAMユーザー(全権限付与済み)「み」だけひらがなw
VPC作成とインターネット接続環境の作成
ルートテーブルによる経路設定を理解
現状、サブネットはネーミングだけで分かれている。
ルーティングでPub、Priを分けていく。
サブネットが分かれている時点で、サブネットの役割はできているが、内向き、外向きの概念も併せて考える。
最初にPublicサブネットからインターネットゲートウェイ(IGW)を介してVPC外に接続するので、デフォルトルートに向けておく。
Privateルートはデフォルトルートを設定しない。そして名前を変えてあげる。
VPCのメインルートにセットされている状態から、各ルートに、サブネットをセットしていく。
構成図に従いPub-aをセットする。
画質悪いのごめんなさい(泣)
ストレージ設定についてハンズオンで学べることは、 EC2のデフォルトはgp3であって、問題なく使用できる優れものということ。 gp3は、gp2に比べてスループット性能が良い。料金も比較すると多少高い。
概要としては、
EC2を起動した時点でwebと接続できる設定となるようユーザーデータ欄に設定
#!/bin/bash
yum -y update
yum -y install httpd
systemctl enable httpd.service
systemctl start httpd.service
プライベートサブネットからインターネットへのアクセス方法
以降は下の図のように、プライベートサブネット内から外部に接続する。
具体例としては各ソフトのアップデートは外部と接続して取得したいけど、インバウンドは許しません。という設定を行っていく。
再度、構成確認
PriにNATゲートウェイへのルートを設定します。
疎通確認
EC2に移動し、SSMに直接接続することで、疎通を確認します。
この画面にエラーが表示されていない時点で、問題なく接続できる状態!!
接続をクリックした場合、SSMのbashを入力できる画面に遷移する。
つまり、疎通完了です。
外に繋がっていないPriから、Pubに設置したNATゲートウェイを経由し、VPC外にあるSSM(AWS Systems Manager)に接続できたということ。
ちなみに、SSMってVPC外に設置しているし(インターネット上)、SSHの設定をせずともサーバーに繋ぐこともできるし、不安要素が多い気がしたのですが、「暗号化通信に加え、トンネル接続、ログも収集可能」ということで安心しました。あまりに簡単に接続できたため調べちゃいましたw
VPC外サービスへの接続方法(説明)
次は、NATではなく、インターフェイス型という方式で、VPC内のサブネットとSSMを接続していきます。器用な接続方法によってVPC外と接続するよりレイテンシー良く接続可能。
なお。S3、dynamoDBはゲートウェイ型というルーティングを行う接続方式を無料で利用することができる。
VPC外サービスへの接続方法1(インターフェイス型)
Priに設定しているNATゲートウェイ向きのルートのみ削除する。
NATゲートウェイ自体の削除ではない。
インターフェイス型で外に出るということでDNS設定を有効にする。
外に出るのでセキュリティグループを設定する。
既存のVPCを設定し、グループ名を任意で設定
HTTPSで接続するため、これに合わせてアウトバウンド設定
現在作成している構成を再確認。VPCのネットワークを指定する。
エンドポイント(接続口)の設定
3種類の設定を行う必要がある。
1種類目
任意の名前を付ける。
VPCは既存のVPCを指定
構成図を再確認し、Pub-cから外に接続することを確認する。
先程作成したセキュリティグループを選択する。
見づらい(笑)
2種類目
名前は、1種類目とは違う名前を付与する。
既存VPCを指定
蛇足:
VPCエンドポイントを作成する際のコンソールに「サービス」とだけ書かれていてもわからんです(泣)
なので調べた結果はというと、外と接続する上で必要な「サービス」を受ける必要があるのです。amazonが提供してくれている「ssm(接続許可)」や「ssmmessages(セッションの設定・削除)」、「ec2messages(Systems Managerの呼出)」といったサービスを受けることで、接続できるので、設定するのです。
公式サイト:
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/systems-manager-setting-up-messageAPIs.html
またまた、ここでふと、今の設定であるとPubにはデフォルトルートが設定されているので、IGWからとPrivateLink(今設定しているエンドポイント。)からの2つのルートで外に繋がる手段があるのではと考えたため、Pubのデフォルトルートを消し去ります。
そうすることで、PrivateLinkがちゃんと機能しているか正確に確認できるという考えです(p_-)
ここでデフォルトルートを消した後に、SSMに接続して疎通確認を致します。
EC2に移動します。
いけたー!
VPC外サービスへの接続方法2(ゲートウェイ型)
次はゲートウェイ型、つまりルーティングで外に繋ぎます。料金も無料!S3とDynamoDBで使用可能!
準備1 S3を作成
準備2 既にあるIAMロールにポリシーを追加する。
S3作成開始!
バケット名はお好みで。一意である必要がある。
エンドポイントを追加していきます。
インターフェイス型ではサブネットに直接接続していましたが、ゲートウェイ型はルーティングで外と繋がります。
既存VPCを選択
これでEC2に移動し、SSMで接続することができれば、接続できています。
スクショ残していませんが(大泣)本記事のとおりすれば繋がりますw
後片付け
結果
勉強になりました。コンソールの使い方や、一部ではありますが、サービスに触れて理解が深まりました。継続して学習します!
では!