フォーム読み込み中
ご覧いただきありがとうございます。ソフトバンクの結城です。
この記事は、ソフトバンクアドベントカレンダー 2022 24日目 クリスマスイブの記事です。
パブリッククラウドを取り扱っている中で、異なるクラウドのプライベートネットワーク同士を接続したいといったご要望をよく聞くことがあります。これを実現する方法の一つとして、IPsecVPNを使った接続が挙げられます。また、弊社では中国に強みを持ったパブリッククラウド「Alibaba Cloud」を取り扱っているため、中国でのビジネス展開に向けたご相談をいただくことがしばしばあります。その中で、中国現地でクラウド環境を構築しつつ、その環境と他のパブリッククラウドを接続したい、といったご要望もいただくことがあります。
そこで今回は、IaaSの市場で圧倒的なシェアを誇るAWSと、中国で最も使われているAlibaba CloudをIPsec-VPNでプライベートネットワーク同士を接続する方法について紹介いたします。
AWSでは23か国 / 28リージョン(2022年12月24日現在)、Alibaba Cloudでは15か国 / 28リージョン(2022年12月24日現在)を提供しています。このうち中国リージョンとして、AWSは、「北京、寧夏」、Alibaba Cloudは「青島、北京、張家口、フフホト、ウランチャブ、杭州、上海、深セン、河源、広州、成都」リージョンが提供されています。また、Alibaba Cloudでは中国本土外に香港リージョンが提供されています。比較をするとAWSが提供している中国リージョン数は2リージョンであるのに対し、Alibaba Cloudでは12の中国リージョンを提供しており、AWSが提供している中国リージョン数と比較すると6倍です。
パブリッククラウドが提供しているリージョン / ゾーンの考え方としては、リージョン = 国 / 地域、ゾーン = データセンターの所在地という考え方が一般的です。利用する場所が、利用リージョン / ゾーンに近いほど、通信の遅延を最小限に抑えることができ、なおかつレスポンスタイムを短くすることができます。一方、利用する場所が、利用リージョン / ゾーンから遠いほど通信の遅延は増え、レスポンスタイムが長くなります。異なるパブリッククラウド同士をあわせて利用する理由としては、利用する場所 / 地域に近いリージョン / ゾーンが提供されている、メインで使っているパブリッククラウドに無いプロダクトや機能を利用したいといった理由があります。
別のBlogでご紹介していますので詳細については、パブリッククラウドVPNのサービス比較(Alibaba Cloud / AWS / Azure / Google Cloud)をご参照ください。
クラウド間をIPsec VPNで接続し、それぞれのクラウドに設置した仮想サーバ間でプライベート通信が可能か検証する
Alibaba CloudのECSとAWSのEC2で双方からそれぞれのプライベートIPに対しpingを実行し、疎通確認
●Alibaba Cloud
VPC
VPN Gateway
ECS
●AWS
VPC
AW
EC2
●Alibaba Cloud
VPC : 172.16.0.0/16 (北京リージョン)
vSwitch : 172.16.1.0/24 (北京リージョン)
ECS : CentOS7.7 / パブリックIP付与 / 北京リージョン
Security Group : ICMPをALL, 検証で使用するクライアント環境の接続元IPアドレスをSSHで許可
※Alibaba Cloudで中国リージョンのプロダクトを利用する場合、実名認証を完了させている必要があります。詳細については、Real-name registration FAQsをご参照ください。
●AWS
VPC : 10.0.0.0/16 (東京リージョン)
サブネット : 10.0.1.0/24 (東京リージョン)
EC2 : AmazonLinux / パブリックIP付与 / 東京リージョン
※インターネットに接続ができる状態
Security Group : ICMPをALL, 検証で使用するクライアント環境の接続元IPアドレスをSSHで許可
30 ~ 45分ほど
1. Alibaba Cloud側での設定
2. AWS側での設定
3. Alibaba Cloud側での設定
4. 動作確認前のチェック
<1.1>
Alibaba Cloudコンソールにログインし、プロダクト一覧より「VPN Gateway」を選択します。
<1.2>
「Create VPN Gateway」をクリックし、VPN Gatewayの作成を行います。
<1.3>
以下の通りパラメータを設定し、VPN Gatewayを作成します。
■設定パラメータ
設定項目 | パラメータ |
---|---|
Name | 任意の名前を入力 |
Region | China(Beijing) |
Gateway Type | Standard |
Network Type | Public |
VPC | 事前に作成したVPCを選択 |
Specify VSwitch | No |
Maximum Bandwidth | 10 Mbit/s |
Traffic | Pay-by-data-transfer |
IPsec-VPN | Enable |
SSL-VPN | Disable |
<1.4>
作成されたVPN Gatewayが表示されるか確認します。
※VPN GatewayのIPは後続の設定で入力しますのでメモしておいてください。
<2-1>
AWSコンソールにログインし、プロダクト一覧より「仮想プライベートゲートウェイ」を選択し、「仮想プライベートゲートウェイの作成」をクリックします。
<2.2>
以下の通りパラメータを設定し、仮想プライベートゲートウェイを作成します。
■設定パラメータ
設定項目 | パラメータ |
名前タグ - オプション | 任意の名前を入力 |
自律システム番号(ASN) | Amazon デフォルト ASN |
<2.3>
仮想プライベートゲートウェイが作成されたことを確認したら、「アクション」→「VPCへアタッチ」をクリックします。
<2.4>
使用可能なVPCに事前に準備したVPCプルダウンから選択し、「VPCへアタッチ」をクリックします。
<2.5>
仮想プライベートゲートウェイの状態が「Attached」の状態であることを確認します。
<2.6>
プロダクト一覧より「カスタマーゲートウェイ」を選択し、「カスタマーゲートウェイの作成」をクリックします。
<2.7>
以下の通り、パラメータを入力し、カスタマーゲートウェイを作成します。
※IPアドレスには、Alibaba CloudのVPN GatewayのIPアドレスを入力します。
■設定パラメータ
設定項目 | パラメータ |
名前タグ - オプション | 任意の名前を入力 |
BGP ASN | 65000(デフォルト値) |
IPアドレス | <1.4>でメモしたAlibaba Cloud VPN GatewayのIPを入力 |
<2.8>
カスタマーゲートウェイが作成されたことを確認します。
※IPアドレスに<1-4>でメモしたAlibaba Cloud VPN GatewayのIPアドレスが表示されていることを確認します。
<2.9>
プロダクト一覧より「サイト間 VPN接続」を選択し、「VPN接続を作成する」をクリックします。
<2.10>
以下の通り、パラメータを入力し、VPN接続を作成します。
■設定パラメータ
設定項目 | パラメータ |
名前タグ - オプション | 任意の名前を入力 |
ターゲットゲートウェイのタイプ | 仮想プライベートゲートウェイ |
仮想プライベートゲートウェイ | <2.2で>で作成した仮想プライベートゲートウェイを選択 |
カスタマーゲートウェイ | 既存 |
カスタマーゲートウェイID | <2.7>で作成したカスタマーゲートウェイを選択 |
ルーティングオプション | 静的 |
静的IPプレフィックス | Alibaba CloudのVPC CIDR Blockを入力 |
ローカルIPv4ネットワーク CIDR オプション | Alibaba Cloud ECSに設定したvSwitchのCIDR Blockを入力 |
リモートIPv4ネットワーク CIDR オプション | AWS EC2に設定したサブネットのCIDR Blockを入力します |
トンネル1の事前共有キー | 任意の値を入力 (後程、Alibaba Cloud側に設定するのでメモしてください) ※今回は「yukitest12345」と入力 |
トンネル1の詳細オプション | デフォルトのオプションを使用する |
トンネル2の事前共有キー | 任意の値を入力 (後程、Alibaba Cloud側に設定するのでメモしてください) ※今回は「yukitest12345」と入力 |
トンネル2の詳細オプション | デフォルトのオプションを使用する |
<2-11>
VPN接続が作成されたことを確認し、VPN IDをクリックします。
<2-12>
下にスクロールし、トンネル1またはトンネル2のIPアドレスを確認します。以下の図を確認するとトンネルのステータスがDownしていますが、Downしている理由としては、Alibaba CloudのVPN Gatewayの設定がされていないためです。このため、トンネルのステータスがDownの状態で以降の手順を実施ください。
※今回はトンネル1のIPアドレスで設定を行います。後続の設定で入力しますのでメモしておいてください。
<2-13>
プロダクト一覧より「ルートテーブル」を選択し、仮想プライベートゲートウェイにアタッチしたVPCのルートテーブルのIDをクリックします。その後、「ルートの編集」をクリックし、以下のルートを追加します。
■設定情報
設定項目 | 設定情報 |
送信元 | Alibaba Cloud VPCのCIDR Block |
ターゲット | 作成した仮想プライベートゲートウェイ |
<2-14>
ルートが追加されたことを確認します。
<3-1>
Alibaba Cloudコンソールにログインし、プロダクト一覧より「VPN Gateway」を選択します。表示された画面の左ペインより、「Customer Gateways」を選択し、「Create Customer Gateway」をクリックします。
<3.2>
以下の通り、パラメータを入力し、カスタマーゲートウェイを作成します。
■設定パラメータ
設定項目 | パラメータ |
Name | 任意の名前を入力 |
IP Address | <2.10>でメモしたAWSのトンネルのIPを入力します。 |
<3.3>
プロダクト一覧より「VPN Gateway」を選択します。表示された画面の左ペインより、「IPsec Connections」を選択し、「Create IPsec Connection」をクリックします。以下の通り、パラメータを入力し、IPsec Connectionを作成します。
■設定パラメータ
設定項目 | パラメータ |
Name | 任意の名前を入力 |
Associate Resource | VPN Gateway |
VPN Gateway | <1.3>で作成したVPN Gatewayを選択 |
Customer Gateway | <3.2>で作成したCustomer Gatewayを選択 |
Routing Mode | Destination Routing Mode |
Effective Immediately | Yes |
Pre-Shared Key | <2.10>でメモしたAWSのトンネルの事前共有キーを入力 |
Version | ikev2 |
Negotiation Mode | main |
Encryption Algorithm | aes |
Authentication Algorithm | sha1 |
DH Group | group2 |
SA Life Cycle (secounds) | 86400 (デフォルト値) |
LocalId | Alibaba Cloud ECSに設定したvSwitchのCIDR Blockを入力 |
RemoteId | AWS EC2に設定したサブネットのCIDR Blockを入力 |
Encryption Algorithm | aes |
Authentication Algorithm | sha1 |
DH Group | group2 |
SA Life Cycle (secounds) | 86400 (デフォルト値) |
<3.4>
IPsec Connectionが作成されたか確認します。
<3.5>
プロダクト一覧より「VPN Gateway」を選択します。その後、作成したVPN GatewayのインスタンスIDをクリックします。「Policy-based Routing」のタブをクリックし、「Add Route Entry」をクリックします。
<3.6>
以下の通り、パラメータを入力し、ルートエントリを追加します。
■設定パラメータ
設定項目 | パラメータ |
Destination CIDR Block | AWS EC2に設定したサブネットのCIDR Blockを入力 |
Source CIDR Block | Alibaba Cloud ECSに設定したvSwitchのCIDR Blockを入力 |
Next Hop Type | IPsec Connection |
Next Hop | <3.3>で作成したIPsec Connectionを選択 |
Publish to VPC | Yes |
Weight | 100(Active) |
Policy Priority | 10 |
<3.7>
ルートエントリが追加されたか確認します。
<3.8>
プロダクト一覧より「Virtual Private Cloud」を選択します。表示された画面の左ペインより、「Route Tables」を選択し、VPN Gateway作成時に指定したVPCのルートテーブルのインスタンスIDをクリックします。その後、「Custom Route」のタブをクリックし、「Add Route Entry」をクリックします。
<3.9>
以下の通り、パラメータを入力し、ルートエントリを追加します。
■設定パラメータ
設定項目 | パラメータ |
Name | 任意の名前を入力 |
Destination CIDR Block | AWS EC2に設定したサブネットのCIDR Blockを入力 |
Next Hop Type | VPN Gateway |
VPN Gateway | <1.3>で作成したVPN Gatewayを選択 |
設定は以上となります。
<動作確認前のチェック>
Alibaba Cloud、AWSのそれぞれVPN接続のステータスを確認します。
●Alibaba Cloud
Connection Statusで緑のチェックマーク(Phase2が成功している)ことを確認します。
●AWS
使用しているトンネルのステータスがUPになっている状態であることを確認します。
ステータスがダウンになっている場合、パラメータの設定間違いや、設定パラメータが異なっている可能性が考えられます。ご紹介させていただいた手順をもう一度確認いただき、設定パラメータをご確認ください。
解決しない場合、以下のドキュメントをご参照ください。
●Alibaba Cloud : FAQ about IPsec-VPN connections
●AWS : カスタマーゲートウェイデバイスの VPN トンネルの非活動性、不安定性、またはトンネルダウンをトラブルシューティングするにはどうすればよいですか?
<疎通確認>
① Alibaba Cloud ECSとAWS EC2にそれぞれSSHログインします。
② Alibaba Cloud ECSとAWS EC2のプライベートIPに対して、それぞれの環境からプライベートIPに対してpingを実行します。
●Alibaba Cloud ECS環境
●AWS EC2環境
結果を見ると、Alibaba Cloud ECSからAWS EC2、AWS EC2からAlibaba Cloud ECSでそれぞれping応答があり、ネットワークの疎通ができていることが分かります。
今回はAlibaba CloudとAWSをIPsec-VPNで接続する方法についてご紹介させていただきましたがいかがでしたでしょうか。
AWSをはじめ、4大クラウドのAzure, Google Cloudも中国リージョンの提供数が少なく、AWS, Azure Google Cloudをメインで利用しているが、提供されている中国リージョンから利用リージョン / ゾーンから遠いといった場合、中国リージョンの提供数が多いAlibaba Cloudとあわせてマルチクラウドで利用することをお勧めいたします。
今後、「Alibaba CloudとAzure」、「Alibaba CloudとGoogle Cloud」をIPsec-VPNで接続する方法についての記事投稿を予定していますので、ぜひご覧いただけますと幸いです。
条件に該当するページがございません