【AWS VPC入門】4.NatGateway/Bastion

【AWS VPC入門】4.NatGateway/Bastion:


前回までの記事

【AWS VPC入門】0.概要
【AWS VPC入門】1.VPC/Subnet
【AWS VPC入門】2.EC2/Internet Gateway/Route Table
【AWS VPC入門】3.ELB


今回のゴール


  • SampleWebへのSSH接続をするためのSampleBastionをPublicサブネットに設置する。
  • Privateサブネット内のインスタンスがインターネットと通信するためのNATゲートウェイを配置する。


Bastion(踏み台)サーバー

PrivateサブネットのようにDMZに配置されていないインスタンスに対してメンテナンス時や調査時の接続を目的としたサーバー。


NatGateway

Privateサブネットに配置されたIPアドレスを持たないインスタンスからインターネットへアクセスする際にネットワークアドレス変換を行うためのゲートウェイ。


サブネットのルートテーブル変更

今までは動作確認のためPrivateサブネットにインターネットゲートウェイをアタッチしていましたが、「概要編」で紹介した全体図にするため、それぞれのサブネットのルートテーブルを変更します。

SamplePublicSubnetにはルートテーブルが存在しないため、VPCのダッシュボードから 「ルートテーブルの新規作成」を選択肢、SamplePublicRouteTableを作成します。

詳細な手順は 【AWS VPC入門】2.EC2/Internet Gateway/Route Table で実施した内容と同じです。


スクリーンショット 2018-12-23 11.52.31.png


作成したSamplePublicRouteTableのルートを編集し、デフォルトゲートウェイをインターネットゲートウェイに設定します。


スクリーンショット 2018-12-23 11.53.55.png


SamplePublicRouteTableSamplePublicSubnetにアタッチします。


スクリーンショット 2018-12-23 11.54.33.png


Privateサブネットからはインターネットへ直接アクセスすることを禁止するため、SamplePrivateRouteTableのルートからインターネットゲートウェイの設定を削除します。


スクリーンショット 2018-12-23 12.28.42.png



Bastionサーバーの設置

続いてパブリックサブネットにBastionサーバーを配置します。

インスタンスの作成からSampleWebと同じスペックのSampleBastionを作成します。


スクリーンショット 2018-12-23 11.00.40.png


サブネットにSamplePublicSubnetを選択し、PublicIPの自動割当 を有効にしておきます。


スクリーンショット 2018-12-23 11.21.16.png


セキュリティグループを以下の内容で設定します。


スクリーンショット 2018-12-23 11.04.20.png


こちらのSampleWebと同様に、後ほどSSH接続を行うためpemファイルのDLが必要です。(SampleVPCBastion.pem)


BastionサーバーからWebサーバーへのSSH

前準備としてBastionサーバーにSampleWeb用のpemファイルを配置します。

$ chmod 600 SampleVPCBastion.pem 
$ scp -i SampleVPCBastion.pem ./SampleVPCWeb.pem ec2-user@BastionサーバーのグローバルIP:~/.ssh/ 
続いてSampleWebのセキュリティグループを変更します。

SSHのインバウンドを任意のIPからBastionサーバーのセキュリティグループ(SampleBastionSG)に変更します。


スクリーンショット 2018-12-23 12.10.57.png


以下のコマンドでSSHの接続確認を行います。

# ローカル環境からBastionサーバーへの接続 
$ cd .ssh/ 
$ ssh -i "SampleVPCBastion.pem" ec2-user@BastionサーバーのグローバルIP 
 
# BastionサーバーからSampleWebへの接続 
$ cd .ssh/ 
$ ssh -i "SampleVPCWeb.pem" ec2-user@SampleWebサーバーのローカルIP 
ここまでで SampleBastion->SampleWeb のSSH接続が可能になりました。

ですが本章の最初でSamplePrivateSubnetのルートテーブルからインターネットゲートウェイへのルートを削除したため、SampleWebからインターネットへの接続ができない状態になっています。

# SampleWeb内からインターネットへの接続は不可 
$ sudo yum update 
タイムアウトエラー 
この状態を解決するためNATゲートウェイを設置します。


NATゲートウェイの配置

VPCのダッシュボードからNATゲートウェイを選択し、NATゲートウェイの作成を行います。



スクリーンショット 2018-12-23 12.38.23.png


配置先のサブネットはSamplePublicSubnetを選択します。

EIPの割当が必須のため、新しいEIPを発行して割り当てます。


スクリーンショット 2018-12-23 12.52.19.png


SamplePrivateSubnetルートテーブルを再度編集します。


スクリーンショット 2018-12-23 12.40.44.png


デフォルトゲートウェイを先程作成したNATゲートウェイにします。


スクリーンショット 2018-12-23 12.41.35.png


ここまでで、SampleWeb内からNAT経由のインターネットへの接続が可能になりました。

# SampleWeb内からインターネットへの接続が可能になるyum updateが成功するはず。 
$ sudo yum update 
.... 


LBの再設定

現在の状態では、SamplePrivateSubnetのルートテーブルからインターネットゲートウェイを削除したため、ロードバランサーを経由したSampleWebへのアクセスが行えません。

そのため現在使用しているELBを削除し新たに作成します。
前回の記事と同じ手順ですすめ、「サブネットの選択」をSamplePublicSubnetにします。


スクリーンショット 2018-12-23 13.10.44.png


続いてSampleWebのセキュリティグループを変更します。

HTTPのインバウンドをELBのIPアドレスからELBのセキュリティグループ(SampleElbSG)に変更します。



スクリーンショット 2018-12-23 13.08.03.png


動作確認のため SampleELB に設定されたDNS名を取得し、ブラウザからアクセスしてみます。

前回と同様に Welcome to nginx on Amazon Linux! と書かれたNGINXのWelcomeページが表示されていれば成功です。


次章

TODO

コメント

このブログの人気の投稿

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2020-12-01 09:41:49 RSSフィード2020-12-01 09:00 分まとめ(69件)