1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめての記事投稿
Qiita Engineer Festa20242024年7月17日まで開催中!

素人がおぼえながら作るawsのvpn環境①

Last updated at Posted at 2024-07-08

はじめに

本記事では、インフラ構成についてAWSで構築を行い、
VPNで特定のメンバーにのみ通信が可能なアプリケーションの作成を目指します。

image.png

AWS公式からVPNクライアントツールをダウンロードし、所定の手順により作成したプロファイルを読み込むことで特定のメンバーだけが通信可能となります。

image.png

image.png

VPNクライアントツールで接続し、再度URLを入力すると、アクセスが可能になります。

image.png

本システムのインフラ構成について

【図1】
図1_スクリーンショット 2024-06-23 163121.png

各装置の機能・役割は以下の通りです。

【図2】
図2_スクリーンショット 2024-06-23 164536.png

  1. 【アプリサーバとデータベースサーバ】
      本システムの中核となるサーバーです。
    図3_スクリーンショット 2024-06-23 164648.png

  2. 【ロードバランサー】
    本来の機能は負荷分散で冗長構成ありきのものですが、
    ドメイン設定と連携させることができ、本システムではURLによる名前解決を担います。

図4_スクリーンショット 2024-06-23 164744.png

3.【VPNエンドポイント】
 特定のメンバーのみに通信を許可する仕組みです

図5_スクリーンショット 2024-06-23 164858.png

目次

1.ネットワーク設計
2.EC2構築と各種インストール
3ドメイン周り設定
4.セキュリティ設定
5.参考文献

1.ネットワーク設計

1-1.VPC、サブネットグループの作成

まずは、VPC、サブネットグループの作成から始めていきます。

図6_スクリーンショット 2024-06-23 175731.png

  1. VPC作成

image.png

2.サブネット"VPN-EFI-1c"作成

image.png

3.サブネット"App-Public-1c"作成
image.png

1-2.インターネットゲートウェイ作成

図7_スクリーンショット 2024-06-23 181757.png

ネットワークをVPN化するまえに、インターネットを介して各種インストールが必要なものがあるため、一時的にインターネットゲートウェイを作成する。

1.インターネットゲートウェイ作成
スクリーンショット 2024-04-28 192651.png

image.png

2.作成したインターネットゲートウェイをVPCにアタッチ
スクリーンショット 2024-04-28 193141.png

image.png

VPCの中にサブネットを作成しただけでは、例えて言うなら、ネットワーク内にVLANがただ点在しているのみで、通信は成立しません。
VPC内で異なるネットワーク同士を束ねるスイッチないしルータの役割を果たすのが、ルートテーブルという機能です。
このルートテーブルにサブネットを関連付け、インターネットゲートウェイへのルートを登録することで、VPC内のEC2へインターネットを介して各種インストールが可能になります。

図8_スクリーンショット 2024-06-23 191043.png

3.ルートテーブル設定
①対象のVPCのルートテーブルにチェックし、「サブネットの関連付けを編集」を押下
スクリーンショット 2024-04-28 193708.png
すべてのサブネットを関連付けます。

図14_スクリーンショット 2024-06-24 212318.png

②ルートテーブル一覧に戻り、「ルートを編集」を押下
スクリーンショット 2024-04-28 194717.png
インターネットゲートウェイを追加
image.png

1-3.セキュリティグループ作成

セキュリティグループは、一般的にはACL(アクセスコントロールリスト)の機能を担うとされています。
本システムでは、このセキュリティグループで最終的にはアプリサーバを交点として十字方向に通信を制御する設計になります。

縦方向は、システム運用管理者用の通信経路になります。

図10_スクリーンショット 2024-06-23 224516.png

①上側(赤枠内)は、S3からの資材(主に編集を加えたコードを想定)をアプリサーバに供給する経路です。

②下側(黒枠内)は、SSHの通信をユーザ向け経路と分けるシステム(SessionManager)で、セキュリティーグループとは別にEC2にIAMロールを適宜設定(後述)し、システム運用者用に安全な経路を確保します。

横方向はユーザ向け通信とし、ロードバランサー、アプリサーバ、DBサーバの順をたどるよう通信を制御します。

図11_スクリーンショット 2024-06-23 223350.png

ともあれ、上記セキュリティ設計の実装は後述の各種インストールが完了してからとなります。現段階では"ハコのみ"作成します。

1.セキュリティーグループ"WEB-SG","APP-SG","DB-SG"作成
image.png
image.png
image.png

2.現段階ではインバウンドルール、アウトバウンドルールすべて
 ・タイプ-「すべてのトラフィック」
 ・ソース,送信先-「0.0.0.0/0」
に設定しておきます。
image.png

1-4.RDS構築

ここから、サーバの作成と設置を行います。
最初にDBサーバから、作成していきます。

図13_スクリーンショット 2024-06-23 231740.png

作成方法は「標準作成」、エンジンオプションは「MySQL」を選択、
テンプレートは「無料利用枠」を使用します。
image.png

image.png

image.png

マスターパスワードを設定し、セキュリティグループに「DB-SG」を指定、
アベイラビリティゾーンに「ap-northeast-1c」を指定します。
その他の設定値はデフォルト値から変更しません。

スクリーンショット 2024-04-28 202456.png

スクリーンショット 2024-04-28 202637.png

1-5.アラート発報の実装

RDSの容量が少なくなるとメールで通知が来るよう、設定をします。
①Amazon-SNS設定
Amazon-SNS設定画面にて、トピックの作成をします。
スクリーンショット 2024-05-05 174629.png
「スタンダード」を選択し、名前を入力します。
スクリーンショット 2024-05-05 174718.png
「トピックの作成」を押下し、遷移後の画面で「サブスクリプションの作成」を押下します。

a3978900-0199-0891-420c-2c8bc7cd2d4e.png

「プロトコル」で「Eメール」を選択し、エンドポイントに通知を受け取るEメールアドレスを入力します。

417aeb9a-a842-93e0-3d4c-80ed481fe6e9.png

サブスクリプション作成直後はステータスが「保留中の確認」になっています。登録したEメールに確認のメールが来ていますので、メール文面の「Confirm subscription 」を押下します。

9c8ecac1-c3e2-4380-5329-1337ed3e15fc.png

69fe226d-ac96-a58a-7108-4724fd727882.png

リンク先の画面で「Subscription confirmed!」のメッセージが表示され、登録が完了します。

d9f44f44-61ad-313a-6f45-bbb9281ba46a.png

47a5a1a7-aab6-8d43-d548-f83005307802.png

②アラームの作成
 Cloudwatchの設定画面からアラームの設定を行います。
 アラームの項目から「アラームの作成」を押下します。
スクリーンショット 2024-05-05 175141.png
 「メトリクスの選択」を押下します。
スクリーンショット 2024-05-05 175211.png
 「RDS」>「DBInstanceIdentifier」の順に選択します。
スクリーンショット 2024-05-05 175249.png
スクリーンショット 2024-05-05 175315.png
 対象RDSの「FreeStorageSpace」を選択し、チェックを入れます。
スクリーンショット 2024-05-05 175425.png
 次に、しきい値の設定をします。RDSの無料利用枠は20Gですが、空き容量が3G以下になったとき、アラームが通知されるよう設定します。
 設定値の入力単位は、メガバイトでもキロバイトでもなく、バイトになります。0の数に注意してください。
スクリーンショット 2024-05-05 175537.png
 「次へ」を押下し、設定したしきい値を下回ったときの挙動を設定します。
スクリーンショット 2024-05-05 175620.png

 「アラーム状態トリガー」が「アラーム状態」、「次のSNSトピックに通知を送信」が「既存のSNSトピックを選択」になっていることを確認してください。
 「通知の送信先」に先ほど作成したSNSトピックを選択します。

スクリーンショット 2024-05-05 175728.png
スクリーンショット 2024-05-05 175815.png

 最後に「アラーム名」を入力し、これまでの設定内容を確認して、作成完了です。

次節では、EC2の構築と各種インストールをしていきます。

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?