LoginSignup
14
13

Amazon Web Services基礎からのネットワーク&サーバー構築 プライベートサブネット・NAT構築

Last updated at Posted at 2024-04-28

※前回はこちら

今回の目標

DB用サーバのEC2をプライベートサブネットに配置し、外部インターネットから隔離します。

ただ外部インターネットと完全に遮断すると、DB用サーバのソフトウェアアップデート・インストールが不便なため、NATを構築して プライベートサブネット> 外部インターネット への通信のみ許可します。

プライベートサブネットを構築する

まずはオレンジ枠の箇所を構築します。
※MariaDBのインストールは次回実施します。

Amazon Web Services基礎からのネットワーク&サーバー構築.drawio.png

まずプライベートサブネットを作成します。
VPC ID では、事前に作成したVPCを選択します。

image.png

サブネットの設定におけるアベイラビリティーゾーンは、パブリックサブネットが存在するゾーンを選択します。
またサブネットのCIDRブロックは 10.0.2.0/24 とします。

image.png

ルートテーブルを確認すると、プライベートサブネットはデフォルトのルートテーブルが設定されてます。
今回のプライベートサブネットは外部インターネットに接続しないため、このままでOKです。

image.png

DB用サーバを構築する

次にDB用サーバとするEC2インスタンスを作成します。
名前は『HogeDBServer』とします。

image.png

AWSの1年間の無料利用枠で利用できるLinuxサーバは1台分のみです。
2台目のEC2インスタンスは課金の対象になるため注意してください。

基本的な箇所は以下記事で設定した内容と同じです。本記事では相違点のみ記載します。

サブネットは先ほど作成したプライベートサブネットを選択し、パブリックIPの自動割り当てを無効化します。

image.png

新たにセキュリティグループを作成し、MariaDB の通信ポート『3306』のみ許可する設定を追加してください。
※後ほど NAT を構築した際にアクセスするため、ソースタイプは任意の場所とします。

image.png

またIPアドレスは『10.0.2.10』とします。

image.png

相違点は以上です。
EC2インスタンス起動完了後はPingコマンドで疎通確認をします。

DB用サーバのセキュリティグループに、ICMPプロトコルを許可する設定を追加します。

image.png

その後セッションマネージャーからWebサーバ用のEC2インスタンスに接続し、下記pingコマンドを実行します。

$ ping 10.0.2.10

疎通していれば画像のように返答が戻ってきます。

image.png

DB用サーバにSSHポートフォワードを使用してログインする

今回はSSHポートフォワードを用いて、DB用サーバに接続します。
Rloginで新規接続設定を行います。

まず踏み台サーバ > プロトコルから、ポートフォワードを選択します。

image.png

新規設定として以下の内容を追加します。

image.png

次にDB用サーバの設定を行います。
ポイントは前接続先に踏み台サーバを指定する必要があることです。

image.png

その後プロキシ設定を行います。
Select Proxy Protocol で『SOCK5』を選択し、Proxy Server Address と Socket Port には踏み台サーバのポートフォワード設定と同じ内容を入力します。

image.png

ただこの時点ではDB用サーバがSSHプロトコルを許可していなかったため、接続できませんでした…
DB用サーバに以下のセキュリティグループを追加し対応しました。
※ソースには踏み台サーバのセキュリティグループを指定してます。

image.png

こうして無事接続することができました。ただこのままではソフトウェアインストール・アップデートができないため、NATを構築します。

image.png

NATを構築する

NATを介することで、外部インターネットからプライベートサブネット内のDB用サーバへの送受信を拒みつつ、DB用サーバから外部ネットワークへ送受信のみ許可することができます。

Amazon Web Services基礎からのネットワーク&サーバー構築.drawio (1).png

今回はNATゲートウェイを使って構築します。
NATゲートウェイを作成時にはパブリックサブネットを選択し、ElasticIPを割り当てます。
image.png

次にルートテーブルを編集します。
メインルートテーブルを選択し、『ルートの編集』を押下します。

image.png

NATゲートウェイへ送信先『0.0.0.0/0』のルートテーブルを追加し、保存します。

image.png

NATゲートウェイの疎通を確認する

crulコマンドをDB用サーバで実行し、HTMLが表示されるか確認します。
※URLはQiitaです。

$ curl https://qiita.com

実行してHTMLが表示されれば、OKです。
お疲れさまでした。

image.png

ここまで Amazon Web Services基礎からのネットワーク&サーバー構築 の内容を実践してきました。今まで学んできた内容の復習に丁度良い教材でした。本書では次回チャプターでDBを用いたブログシステムの構築を行っているので、興味のある方はぜひご購入ください。

参考文献

Amazon Web Services基礎からのネットワーク&サーバー構築

14
13
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
14
13