CI部の水本です。
サーバーワークスでは、オンプレミスのコンピュータをAWSへ移行する手段として、CloudEndure Migrationを用いた移行を提案することがあります。
CloudEndureではインターネット経由とVPN経由でのレプリケーション1をサポートしており、お客様はレプリケーション用のネットワーク設計を柔軟に行うことが可能ですが、データセンター等では外部向け通信が厳格に管理されており、許可申請に難儀されることも少なくないと考えます。
上記のような外部向け通信の制限下においてCloudEndureを利用する場合に留意すべきことがいくつかありますので、本記事にて紹介します。
CloudEndureでの移行を検討されている方への参考になれば幸いです。
CloudEndureについて
CloudEndureはAWSが提供しているマイグレーション・DRサービスで、ソースマシンにエージェントをインストールすることで、レプリカインスタンス(ソースマシンと同一のコピー)を作成することができるのが特長です。
ソースマシンとの同期が常に行われている為、旧来の移行ツールより柔軟なタイミングで移行検証や本番切替を行うことが可能です。
通信要件の確認
まずはCloudEndureの通信要件を確認2しましょう。
CloudEndureで求めている要件はアウトバウンド通信のみで、下記の通信が許可されている必要があります。
尚、CloudEndureではプロキシ経由も利用可能ですが、 認証には対応していません のでご注意ください。
送信元 | プロトコル:ポート | 送信先 | 用途 |
---|---|---|---|
ソースマシン | TCP:443 | 【ドメインの場合】 console.cloudendure.com 【IPの場合】 52.72.172.158 52.53.92.136 Agentをソースマシンから直接DLするなら下記も追記 s3.amazonaws.com s3.us-west-1.amazonaws.com s3.eu-west-1.amazonaws.com |
CloudEndureコンソール |
ソースマシン | TCP:1500 | レプリケーションサーバのグローバルIPまたはローカルIPを範囲登録 | データ転送 |
レプリケーションサーバの挙動について
レプリケーションサーバはAWS側に作成し、移行元のマシンへインストールしたCloudEndureエージェントを経由してストレージのデータを受信し、AWS側へSnapshotを生成します。
CloudEndureの利用にあたって、レプリケーションサーバへのTCP1500通信が正常に行われることが必須となりますが、ここで留意しなければいけない挙動が1つあります。
CloudEndureがレプリケーション中に通信異常を検知すると、復旧対応の一環として、 レプリケーションサーバの廃棄、再生成を行います。すなわち、レプリケーションサーバのIPアドレスは不定期に変動 します。
これは「管理者の手を煩わせることなく自動的にトラブルシューティングを行い、レプリケーションを再開させる」という点で良い機能ではあるのですが、許可先アドレスを 「最初に確定したIPアドレス/32」 で設定していた場合、レプリケーションサーバが再生成された以後のレプリケーションが全て失敗します。3
これに加え、過去には「通信失敗のによるリトライが多く繰り返された場合は、 後々通信許可を再設定してもレプリケーションは自動再開しない 」という事象が希に発生することも確認しており、この面からも/32での許可指定はしないようにお願いしています。(どの範囲で許可すべきかは後述します)
外部向け通信制限下で推奨する接続許可設計
では、外部向け通信制限下で推奨する接続許可の設計はどのようなものかを紹介します。
(1)VPN経由とし、プライベート通信でレプリケーションする
まずそもそもの話ではありますが、VPN経由であればTCP1500通信はプライベートIPにできます。つまり、接続許可すべきCIDRの範囲がグローバルIPアドレスと比較し圧倒的に小さくなり、その範囲についても自由に設計可能です。
AWSは一時的に使うリソースもすぐに作ることができますので、例えばレプリケーションの期間中だけ利用する専用VPCを作って、移行マシンの拠点とをVPNで結ぶことも可能です。
上記を踏まえて、移行計画の段階から、インターネット経由ではなくVPN経由にできるかを検討してください。
AWS側ではSite-to-Site-VPNでAWSとオンプレミス環境の常時接続をサポートしています。
(2)インターネット経由で移行する場合は、AWS公開情報からグローバルIP範囲を取得する
VPNが厳しいという場合はインターネットで実施が必須ですので、その場合はAWSがJSONで公開しているIPアドレス範囲を入手して、EC2が利用しているグローバルIPアドレス範囲を抽出の上、通信許可を実施しましょう。
同フォルダで下記を実行すると、東京リージョンのアドレス範囲を確認できます。(jqコマンドが必要です。)
$ jq -r '[.prefixes[] | select(.region=="ap-northeast-1" and .service=="EC2").ip_prefix] | .[]' < ip-ranges.json
尚、本記事では記載していませんが、もちろん TCP443の許可も必要 ですので忘れないようにしましょう。 DNS参照ができない場合はhostsでの名前解決も必要となります。
まとめ
まとめると、CloudEndureのレプリケーションサーバは自動で再生成される為、/32では許可しない、可能であればVPNでの移行計画を推奨しますというお話でした。
お知らせ
サーバーワークスではオンプレミスからのAWS移行についてのご相談にも対応しています。当社へのご相談は問い合わせ窓口からどうぞ。
-
レプリケーションは複製の意ですが、ここではSync(初期同期)とCDP(継続的複製)を指します。↩
-
最新はhttps://docs.cloudendure.com/#Preparing_Your_Environments/Network_Requirements/Network_Requirements.htm?Highlight=network参照のこと↩
-
移行元マシンは、レプリケーションサーバのIP変更をTCP443で通信しているCloudEndureコンソールから受信します。↩