AWS CLIで簡単にVPN接続!AWS Client VPNの設定方法と料金解説
生徒
「AWSでVPN接続を作りたいんですが、CLIで設定することはできますか?」
先生
「はい、AWS CLIを使えば、AWS Client VPNの設定から接続までコマンドだけで操作できます。」
生徒
「GUIでやるよりも簡単ですか?あと料金も気になります。」
先生
「CLIは慣れると非常に便利です。料金についても後で詳しく解説しますので安心してください。」
1. AWS Client VPNとは?
AWS Client VPNは、AWS上のリソースに安全に接続するためのマネージドVPNサービスです。社内ネットワークやクラウド環境へのアクセスを暗号化して安全に行えます。CLIから設定することで、GUI操作よりも自動化やスクリプト化が可能です。
2. AWS CLIの準備と認証設定
AWS CLIでVPNを操作するには、まずCLIをインストールし、アクセスキーやシークレットキーを設定する必要があります。
aws configure
AWS Access Key ID [None]: YOUR_ACCESS_KEY
AWS Secret Access Key [None]: YOUR_SECRET_KEY
Default region name [None]: ap-northeast-1
Default output format [None]: json
この設定により、CLIからAWSリソースに安全にアクセスできるようになります。
3. VPNエンドポイントの作成
AWS CLIでClient VPNエンドポイントを作成するには、以下のコマンドを使用します。
aws ec2 create-client-vpn-endpoint \
--client-cidr-block 10.0.0.0/16 \
--server-certificate-arn arn:aws:acm:ap-northeast-1:123456789012:certificate/abcdefg \
--authentication-options Type=certificate-authentication,MutualAuthentication={ClientRootCertificateChainArn=arn:aws:acm:ap-northeast-1:123456789012:certificate/xyz123} \
--connection-log-options Enabled=true,CloudwatchLogGroup=/aws/vpn,CloudwatchLogStream=log-stream
ここで、client-cidr-blockはVPN接続時に割り当てるIPレンジです。サーバー証明書とクライアント証明書もARNで指定します。
4. VPNルートの設定
VPN接続先のルートを設定することで、アクセスできるネットワークを指定します。
aws ec2 associate-client-vpn-target-network \
--client-vpn-endpoint-id cvpn-endpoint-0123456789abcdef0 \
--subnet-id subnet-0abcd1234ef56789
サブネットIDを指定することで、VPN経由でアクセス可能なVPCの範囲を決められます。
5. 認証ルールとアクセス許可の設定
VPNを使うユーザーやグループに対して、アクセス許可を設定します。
aws ec2 authorize-client-vpn-ingress \
--client-vpn-endpoint-id cvpn-endpoint-0123456789abcdef0 \
--target-network-cidr 10.0.1.0/24 \
--authorize-all-groups
この例では、VPN接続したすべてのユーザーに対して指定したネットワークへのアクセスを許可しています。
6. VPN接続用のクライアント設定ファイルをダウンロード
ユーザーが接続するための設定ファイル(.ovpn形式)を作成します。
aws ec2 export-client-vpn-client-configuration \
--client-vpn-endpoint-id cvpn-endpoint-0123456789abcdef0 \
--output json > client-vpn-config.ovpn
このファイルをOpenVPNなどのクライアントソフトで読み込むことでVPN接続が可能です。
7. VPN接続の確認
接続状況を確認するには以下のコマンドを使います。
aws ec2 describe-client-vpn-connections \
--client-vpn-endpoint-id cvpn-endpoint-0123456789abcdef0
接続中のユーザーやIPアドレスが表示され、VPNが正しく動作しているか確認できます。
8. AWS Client VPNの料金解説
AWS Client VPNは、主に下記の課金要素があります。
- エンドポイント時間課金:VPNエンドポイントが稼働している時間に応じて課金
- 接続時間課金:VPNに接続しているクライアント数に応じて課金
- データ転送費用:VPN経由で送受信するデータ量によって課金
料金の目安は公式ページで確認できますが、小規模環境ではエンドポイントと接続クライアント数に応じて1時間あたり数十円程度から始まります。無駄な料金を避けるために不要なエンドポイントは停止しましょう。
9. AWS CLIを活用するメリット
GUIよりCLIでVPNを設定するメリットは次の通りです。
- スクリプト化により自動化が可能
- 複数環境への一括設定が簡単
- 設定の履歴を管理しやすい
企業や開発環境では、CLIを活用することで運用負荷を大幅に減らせます。
まとめ
今回はAWS CLIを活用してAWS Client VPNを構築する方法について基礎から順番に整理しました。AWS Client VPNはクラウド環境に安全に接続するためのマネージドVPNサービスであり、インターネット経由でも暗号化された安全な通信を実現できます。特にリモートワークや在宅勤務が増えている現代では、AWS上のVPCやEC2インスタンスへ安全にアクセスするためのVPN構築は重要なテーマです。
AWS CLIを使うことで、GUIを操作せずにコマンドラインからVPNエンドポイント作成、ターゲットネットワーク関連付け、ルート設定、認証ルール追加、クライアント設定ファイル出力、接続確認まで一貫して実行できます。これはインフラ自動化や構成管理を行う上で非常に大きなメリットです。Infrastructure as Codeの考え方と組み合わせれば、同じ構成を複数環境へ再現することも可能です。
VPNエンドポイント作成ではclient cidr blockを指定し、サーバー証明書やクライアント証明書のARNを正確に設定することが重要です。証明書の設定が誤っていると接続エラーの原因になります。またassociate client vpn target networkコマンドでサブネットを関連付けなければ通信は成立しません。authorize client vpn ingressでアクセス許可を定義することで、特定ネットワークへの到達を制御できます。
クライアント設定ファイルのエクスポートではexport client vpn client configurationコマンドを利用し、生成されたovpnファイルをOpenVPNクライアントへ読み込ませることで接続が可能になります。describe client vpn connectionsを使えば現在の接続状況を確認でき、運用監視にも活用できます。
料金面ではエンドポイント時間課金、接続時間課金、データ転送料金の三つが基本です。開発検証用途であれば利用後にエンドポイントを削除することで無駄なコストを抑えられます。AWS CLIでdelete client vpn endpointコマンドを実行することで安全に削除できます。コスト管理はクラウド運用において非常に重要な要素です。
エンドポイント削除のサンプルコマンド
不要になったVPNエンドポイントは削除することで料金最適化につながります。
aws ec2 delete-client-vpn-endpoint \
--client-vpn-endpoint-id cvpn-endpoint-0123456789abcdef0
{
"Status": {
"Code": "deleting"
}
}
運用確認用のJavaサンプルプログラム
例えばVPN接続後に社内システムへ接続確認を行う簡単なJavaプログラムは次のように記述できます。実際の業務ではHTTP通信やデータベース接続確認を行うケースが多いです。
public class VpnConnectionCheck {
public static void main(String[] args) {
String vpnStatus = "CONNECTED";
if ("CONNECTED".equals(vpnStatus)) {
System.out.println("VPN接続が確立されています");
} else {
System.out.println("VPN接続が確立されていません");
}
}
}
VPN接続が確立されています
このようにVPN接続状態を確認する仕組みをアプリケーションに組み込むことで、AWS Client VPNと連携した安全なクラウド利用が可能になります。AWS CLIによるVPN構築、VPC接続設定、認証ルール管理、料金管理、運用監視まで一連の流れを理解することが重要です。
生徒
今回はAWS CLIでAWS Client VPNを構築する流れが理解できました。エンドポイント作成から認証ルール設定まで順番が大切ですね。
先生
その通りです。VPNエンドポイント作成、ターゲットネットワーク関連付け、アクセス許可設定、この三つが基本構成です。どれか一つでも欠けると通信はできません。
生徒
料金についても理解できました。エンドポイントを停止や削除しないと課金が続く点は注意ですね。
先生
はい。AWSは従量課金制なので、使わないリソースを放置しないことが重要です。CLIを使えば削除作業も簡単に実行できます。
生徒
AWS CLIでVPNを設定できるようになると、自動化やスクリプト化にも応用できそうです。
先生
その理解で正解です。AWS CLIとAWS Client VPNを組み合わせることで、安全なクラウド接続環境を効率よく構築できます。実際にコマンドを何度も実行して体で覚えていきましょう。