「AWS上で、クライアントVPNエンドポイントを作成し、VPN接続する手順がマジで謎過ぎる。。。分かりやすい手順が知りたい。。。」「というかそもそもEC2の立て方が知りたい」
このような疑問に対し、現役インフラエンジニアである筆者が、お答えいたします。
というのも、筆者自身が同様の問題で何カ所か苦労し解決まで2日ほどハマってしまいました。その代わり、最終的に30分から1時間ほどで構築可能になるまで手順を整理することができましたので、本記事で共有させていただきます。
※本記事は2回に分けてご紹介させていただきます。
>> 【第1回】VPN接続手順【AWS】EC2インスタンス開始方法/EC2の立て方(本記事)
>> 【第1回】VPN接続手順【AWS】クライアントVPNエンドポイントを作成し、VPN接続する手順(第2回記事)
この記事でわかること
- 本構成の要件、ゴール、構成図、投稿の背景、参考手順
- AWSでEC2インスタンスをたてる方法(本記事でご紹介)
- AWS上にVPNクライアントエンドポイントを構築し、VPN接続する方法(第2回でご紹介)
本構成の要件、ゴール、筆者の環境、構成図、参考URL
本構成の要件
- AWSでEC2をたてる
- クライアントPCからインターネット経由で、AWS上のEC2インスタンスにVPN接続する
- AWSのマネージドサービスである、VPNエンドポイント利用する
- サーバー証明書・キー、クライアント証明書・キーを発行し、相互認証によりVPN接続をする
補足
VPNエンドポイントをAWSに設置することで、セキュアにAWS上のリソースにアクセスが可能になります。
- 理由(1):AWS上のリソースはインターネット上に公開せず、ローカルIPのみの運用が可能になるため
- 理由(2):VPNを使用することで、証明書とキーを持たないクライアントPCからの接続ができないため
本構成のゴール
ローカルPCでクライアントVPNを起動し、VPN経由でAWS内のEC2(linux)にログインできるところまでがゴールです。
また、第1回(本記事)では、作成したEC2にSSH接続するまでをゴールといたします。
本構成の構成図
投稿の背景
構築するのに、2日ほどハマってしまいました。
一度やってみれば、それほど難しいわけではないのですが、何点か分かりにくい点がありますので、自身の備忘録として、さらに、この記事をご覧になった方がハマらずに、サクッと構築できるように本記事を作成しました。
ハマらなければ1時間ほどで構築可能です。
筆者の環境
ローカル開発環境 | Windows10からブラウザよりAWSマネジメントコンソールに接続して作業 |
EC2のOS | Amazon Linux 2 |
SSH通信 | TeraTermを利用 |
作図 | dwarioのAWS19アイコンを利用 |
- 新しい認証局(CA)の概念が分かりにくかった
- AWSでVPNエンドポイントを作成する際、AWS独特の概念や用語に戸惑った
- クライアントPCでクライアントVPN用の設定ファイルを作成する際に、戸惑った
参考手順
ゼロから1時間以内にAWS上にVPNクライアントエンドポイントを構築し、VPN接続するまでの手順
ざっくり分けると、手順は2つあります。
- 手順1 AWSでEC2(Linux)をたてる
- 手順2 VPN接続するための手順
まず、手順1はVPN構成を作る前提として、テスト用のEC2をAWS上にたてて、インターネット経由でTeraTremで接続できるようにするところまでです。慣れれば、15分程度で実施可能です。
第1回ではこの手順を扱います。ちなみに、この操作はAWSを扱うエンジニアなら日常的に対応する作業なので、これからAWSエンジニアを目指される方は慣れておくといいかもです。
次に手順2は、VPN接続をするための各種手順です。ちょっと長いですが、ステップバイステップで実施すれば、それほど迷わずに進めるかと思います。ハマりやす箇所は都度筆者が対応策ご紹介します。
手順2につきましては、2回目の記事でご紹介いたします。
関連記事
>> 【AWS】EC2インスタンス開始方法/EC2の立て方(本記事)
>> 【AWS】クライアントVPNエンドポイントを作成し、VPN接続する手順(第2回記事)
手順1 AWSでEC2(Linux)をたてる
- (1) VPCの作成
- (2) インターネットゲートウェイの作成
- (3) サブネットの作成
- (4) ルートテーブルの作成
- (5) 作成したサブネットとルートテーブルの関連付け
- (6) EC2の作成
AWSでEC2(Linux)をたてる
(1) VPCを作成する
> AWSマネジメントコンソールを開く
> VPCのダッシュボードを開く
> VPC > VPCを作成をクリック
> VPCの設定項目で以下を設定 ・・・表01/図01
> 「VPCを作成」をクリック
> VPCが作成されていることを確認 ・・・図02
表01
名前タグ – オプション | test-nat-vpc (好きな名前でOK) |
IPv4 CIDR ブロック | 172.16.0.0/16 ※好きなプライベートアドレスを振ればOK。 ※クラスA,B,CなんでもOK。 |
図01
図02
(2) インターネットゲートウェイの作成
> AWSマネジメントコンソール
> VPC
> 左メニュー
> インターネットゲートウェイをクリック
> 名前タグに「test-igw-01」と入力
> インターネットゲートウェイの作成をクリック ・・・図03
> インターネットゲートウェイが作成されたら、チェックボックスにチェックをいれる
> アクション
> VPCにアタッチをクリック・・・図04
図03
図04
(3) サブネットの作成
> AWSマネジメントコンソール
> VPC
> サブネット
> 以下のサブネットを作成
> 以下のように入力・・・表4/図5
> サブネットを作成をクリック
表04
サブネット名 | test-nat-subnet |
IPv4 CIDR ブロック | 172.16.1.0/24 |
図05
(4) ルートテーブルの作成
> AWSマネジメントコンソール
> VPC
> ルートテーブル
> ルートテーブルの作成で以下を選択・・・表05
> 「作成」をクリック
> ルートテーブルの作成をクリック・・・図06
表05
名前タグ | test-nat-route-table |
VPC | test-nat-vpc |
図06
(5) ルートテーブルとサブネットの関連付け
> 先ほど作成したルートテーブルにチェックボックスを入れる
> アクション
> サブネットの関連付けの編集・・・図07
> サブネットの関連付けの編集
> 先ほど作成した、サブネットを指定
> 「保存」をクリック・・・図08
図07
図08
(6) EC2の作成
続いて、EC2を作成します。
> AWSマネジメントコンソール
> EC2
> インスタンスの作成
> 以下のように選択し、作成をクリック・・・表06
> sshの「秘密鍵」を作成する
表06
ステップ1 Amazon マシンイメージ (AMI) |
「Amazon Linux 2 AMI (HVM), SSD Volume Type」を選択 |
ステップ2 インスタンスタイプの選択 |
t2.micro(無料利用枠の対象)を選択 |
ステップ3 インスタンスの詳細の設定 |
以下の4カ所を選択/それ以外はデフォルトでOK (1)ネットワーク :test-nat-vpc (2)サブネット :test-nat-subnet (3)自動割り当てパブリック IP :有効 ※後ほど、TeraTeraTermでログインするため有効にします (4)ネットワークインターフェース:プライマリIP:172.16.1.11と入力 ※プライベートIPは自動で割り振られますが、ここで指定することもできます。 ※サブネットで指定した範囲内で割り当て可能なIPを割り当てましょう |
ステップ4 ストレージの追加 |
デフォルトのままでOK |
ステップ5 タグの追加 |
Name :test-server |
ステップ6 セキュリティグループの設定 |
すべて 0.0.0.0/0 |
ステップ7 インスタンス作成の確認 |
設定に問題ないか確認し、「作成」をクリック |
図09
EC2への接続を確認する
> AWSマネジメントコンソール
> EC2
> 実行中のインスタンス
> 「test-server」をクリック
> インスタンスの「Elastic IP」を確認
※今回の例「54.178.193.126」
> 上記で確認したElastic IPに対し、TeratermでSSH接続・・・図10/11/12
※EC2の作成時に作成したSSHの秘密鍵「***.pem」ファイルを利用して接続する。
>ログインできたことを確認・・・CODE01
図10
図11
図12
CODE01
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
[ec2-user@ip-172-16-1-11 ~]$
以上で、IGW, VPC, サブネットの作成と関連付けが完了です。
まとめ
本記事では「AWS上で、クライアントVPNエンドポイントを作成し、VPN接続する手順がマジで謎過ぎる。。。分かりやすい手順が知りたい。。。」「というかEC2 インスタンスの立て方が知りたい」という疑問に対し、現役インフラエンジニアである筆者が、ご紹介いたしました。
この記事でご紹介したこと
- 本構成の要件、ゴール、構成図、投稿の背景、参考手順
- AWSでEC2インスタンスをたてる方法(本記事でご紹介)
- AWS上にVPNクライアントエンドポイントを構築し、VPN接続する方法(第2回でご紹介)
関連記事
>> 【AWS】EC2インスタンス開始方法/EC2の立て方
>> 【AWS】クライアントVPNエンドポイントを作成し、VPN接続する手順
本記事がお役にたてると幸いです。