Amazon Web Services ブログ

AWS Client VPN を活用しリモートワーク接続をスケールさせる

この記事は、Using AWS Client VPN to scale your work from home capacity を翻訳したものです。

従来のオンプレミス VPN サービスは性能が決まっており、迅速かつオンデマンドでのスケールアップまたはスケールダウンが困難です。ハードウェアの制約、ライセンス、帯域幅などの問題により、急速に成長するリモートワーカーのニーズを満たすことができません。このような場合、クラウドの伸縮自在性と AWS Client VPN の従量課金制の料金が役立ちます。AWS Client VPN は、AWS とオンプレミスの両方のリソースへの接続に使用できる、スケーラブルで可用性の高い OpenVPN ベースのサービスです。

このブログでは、以前の投稿 を拡張し、AWS Client VPN 接続と、リモートワーカーがクラウドとオンプレミスの両方のリソースにアクセスするためのアーキテクチャについて説明します。

AWS Client VPNの仕組みとクライアントとの接続方法

AWS Client VPN サービスは、ユーザーが接続できるスケーラブルなエンドポイントを提供します。伸縮性があり、接続数の増加に対応するために拡張できます。デフォルトでは、エンドポイントは最大 2,000 の同時接続まで拡張できます。この制限は、サポートコンソール上で上限緩和申請を行うことで大幅に増やすことができます。また、エンドユーザーは、証明書ベースの相互認証または Active Directory 認証を使用して、AWS Client VPN に対して 認証 が行えます。Active Directory 認証では多要素認証 (MFA) を有効にして、セキュリティを強化することができます。

AWS Client VPN の仕組みについて説明します。
AWS Client VPN は、ユーザーからのネットワークトラフィックを VPC 内に置かれた AWS Client VPN の エンドポイントを経由させるように動作します。そのため、AWS Clint VPN を設定する際、エンドポイントをAZごとに1つ以上のサブネットにアタッチする必要があります。高可用性を得るには、少なくとも2つのサブネットにアタッチすることを推奨します。アタッチを行うと、指定したサブネット内に Elastic Network Interface (ENI) が作成されます。クライアントサブネットからのネットワークトラフィックはすべて ENI の IP アドレスに NAT されます。これにより、接続されているクライアントは、サブネットルートテーブルを使用して VPC の内部と外部の両方のリソースに接続できます。

リソースへのアクセスを制限することもできます。ユーザーのすべてのネットワークトラフィックが AWS Client VPN を通過する設定(full-tunnel) と Cliet VPN サブネットのルートテーブルに記載されている宛先へのトラフィックのみが AWS Client VPN を通過する設定(split-tunnel) を選択できます。
また、承認ルール を利用することで、特定のユーザーや AD グループに対し、特定のネットワークへのアクセス許可を行うというきめ細やかなアクセス制限を行うこともできます。

AWS Client VPN を利用するときに考慮すべき点としては、VPN クライアント用のサブネットは、VPC の CIDR と重複しない十分に大きなサブネットとする点です。Client VPN の CIDR のサイズを決める際には、想定最大同時接続数の2倍以上のサイズとなるようにします。下図では、クライアントサブネットとして 10.254.0.0/16 を使用したリモートワーカー接続を示しています。

アーキテクチャの紹介

AWS Client VPN エンドポイントに接続したリモートワーカーは、Client VPN サブネットがルートを持つ任意の宛先にアクセスすることができます(アクセスを許可する承認が必要です)。これにより、VPC 内のリソースだけでなく、追加の VPC や オンプレミスのリソースにもアクセスできます。

複数VPCとの接続

複数の VPC と接続したい場合について考えてみます。ユーザーからのネットワークトラフィックは VPC 内に配置した Client VPN 用の ENI で NAT されるという仕組みであるため、複数の VPC と接続するには、Client VPN エンドポイントがある VPC から目的の VPC までの通信が可能である必要があります。
VPC 間を接続する方法は 2 つあります。VPC ピアリングと AWS Transit Gateway です。どちらを利用する場合でも、Client VPN エンドポイントを配置したサブネットのルーティングテーブルを適切に設定することでユーザーは複数の VPC に接続することができます。この構成例を次の図に示します。

オンプレミスとの接続

AWS Clinet VPN を使用すると、リモートワーカーは AWS Direct Connect (DX) と AWS Site-to-Site VPN を使用してオンプレミスのリソースに接続できます。このようにして、リモートワーカーの VPN キャパシティは、オンプレミスのインフラストラクチャや帯域幅とは無関係に拡張できます。接続の仕組みは先ほど紹介した複数の VPC を接続する例と同じです。接続する VPC が一つの場合、VPC とオンプレミスの接続には DX 接続または VPN 接続を使用できます。よりスケーラブルな代替手段として、AWS Transit Gateway を使用して、多数の VPC を接続したり、Direct Connect ゲートウェイ (トランジット仮想インターフェイスを使用) または VPN を介したオンプレミス接続を使用したりできます。このアーキテクチャを以下に示します。

Client VPN を介した インターネットへの接続

ユーザーからの通信をすべてAWS Client VPN を経由するように設定 (full-tunnel) している場合、ユーザーからインターネットへのトラフィックは Client VPN サブネットのルートテーブルに従い デフォルトルート 0.0.0.0/0 へルーティングされます。つまり、ユーザーは VPC に存在する NAT Gateway や サードパーティ製アプライアンスを使用してインターネットに接続できます。高可用性や拡張性を実現するには、複数の NAT ゲートウェイまたはアプライアンスを使用しましょう。このアーキテクチャを以下に示します。

別の方法として、インターネットへの下りトラフィックに Client VPN ENI を直接使用することもできます。Client VPN にアタッチするサブネットとしてパブリックサブネットを選択すると、各 ENI は パブリック IP アドレスを持つため、NAT ゲートウェイや関連する料金なしでインターネットアクセスを提供できます。このアーキテクチャを以下に示します。

まとめ

この投稿では、リモートで働くユーザーを VPC リソース、インターネット、オンプレミスリソースに接続するいくつかのアーキテクチャを説明しました。これらのアーキテクチャは、リモートワーカーの要件に合わせて柔軟に組み合わせることができます。AWS Client VPN を使用すると、リモートワーカーのニーズを満たすスケーラブルなリモートアクセスソリューションを簡単に作成できます。