Nutanixが提供するデータ保護機能 (CloudConnect編)

# はじめに
この記事は、[Nutanix Advent Calendar 2016](http://www.adventar.org/calendars/1783) 12月15日の分として作成しました。本記事の内容はこの日付の情報に基づいています。

またこの記事は[Nutanixが提供するデータ保護機能(サイト間での移行・復旧編) その2](http://qiita.com/shmza/items/812082ccedbc715ac470)の続編となります。前回の記事はNutanixのAsyncDRの機能が提供するサイト間での復旧・移行の具体的な操作方法を解説しました。

今回の記事では、パブリッククラウドへスナップショットを転送・保管する機能、Cloud Connectを紹介します。

# Cloud Connectとは
Cloud ConnectはAOSのバージョン4.1からNutanixに標準で組み込まれているデータ保護の機能の一つで、オンプレミスのNutanixクラスターの仮想マシンのスナップショットデータを、パブリッククラウドに対して転送し保管する機能です。Amazon Web ServicesとMicrosoft Azureの2つのパブリッククラウドをサポートしています。

<img width="486" alt="Cloud Connectイメージ" src="https://qiita-image-store.s3.amazonaws.com/0/83432/2d0d0308-7a50-29ee-a114-c9c1d4614559.png">


## 特徴
Cloud Connectの特徴は以下のような特徴を持っています。
- Prismから簡単に設定、構成が可能
- パブリッククラウドでは任意のリージョンを選択可能
- データ転送量は最小限。スナップショット取得間の差分データのみを圧縮して転送する

## 制約
Cloud Connectには以下の制約事項があります。
- スナップショットデータをパブリッククラウド上で保管する機能であり、パブリッククラウドのインスタンスとして復旧することはできない
- スナップショットデータを復旧させる場合は、そのデータをオンプレミスのNutanixクラスターに転送する必要がある。(転送にかかる時間のぶんだけRTOが長くなります)

# CloudConnectの構成
CloudConnectはオンプレミスのNutanixクラスターから設定します。設定するとオンプレミスのNutanixクラスターからはパブリッククラウド上にNutanixのクラスターが構成されて、リモートサイトとして設定されるように見えます。どのようなインスタンスが構成されるのかをAWSを例にとってご紹介します。

- EC2インスタンス: NutanixのCVMのサブセットが構成されます。通常のオンプレミスでのNutanixクラスターは最低3台のCVMが必要ですが、AWS上のCVMは1台で動作します。インスタンスのサイズはEU (Frankfurt) (eu-central-1)の場合はm3.xlarge、その他のリージョンではm1.xlargeです
- EBS: CVMの起動領域やメタデータを格納するストレージとしてEBSが構成されます
- S3: スナップショットデータの保管領域としてS3のバケツが構成されます。標準では10TBサイズです

ご留意いただきたいのは、単純にスナップショットの保管場所としてS3のバケツが用意されているわけでは無く、Nutanixのクラスターのサブセットがパブリッククラウド上に構成されている点です。これにより、オンプレミス同士のNutanixのデータ保護の機能と同一の操作にてクラウドへのデータ保護が実現できます。

# パブリッククラウドへのネットワーク接続
パブリッククラウドへのネットワーク接続はSSHトンネルとVPN/VPC接続2つの方式がサポートされています。
SSHトンネルの方式は非常に手軽に設定できますが、パフォーマンスはVPN/VPC方式より劣ります。本番環境で使用する際にはVPN/VPC方式を利用いただくことが推奨されています。

CloudConnectを設定するためにネットワーク的には、以下の要件を満たす必要があります
- Nutanixのクラスターがインターネットに接続されていること
- Nutanixのクラスターにネームサーバーの設定がされており、名前解決が行えること
- クラウド上のインスタンスに対して以下のポートで接続可能なこと

| プロトコル | ポート番号 | 用途 |
|:-----------|:-----------:|:------------:|
| TCP        |        2009/2020 |     AOSの通信      |
| UDP    |      53 |    DNS    |
| HTTPS       |        443 |    AWSやAzureの通信    |
| TCP        |          22 |      CVMへのSSH通信      |

# Cloud Connectの設定方法
Cloud Connectの設定は保護対象の仮想マシンが存在するオンプレミスのNutanixクラスターから行います。

## 事前準備
AWSの管理コンソールに接続して、Access KeyとSecret Access Keyを入手しましょう。設定の中でAWSの管理コンソールを操作するのはこの手順のみです。

## リモートサイトの登録
AWS上にNutanixのクラスターのサブセットを作成し、リモートサイトとして登録します
+ **「Data Protection」メニューの「+ Remote Site」、「Cloud」をクリックする**
<img width="1274" alt="リモートサイト追加" src="https://qiita-image-store.s3.amazonaws.com/0/83432/f3ef2cee-ebb3-2b20-21c1-eb7b47a6d817.png">

+ **「Cloud Type」でAWSかAzureを選択する**

この設定例ではAWSを選択します
<img width="817" alt="Add New Key" src="https://qiita-image-store.s3.amazonaws.com/0/83432/18a820dd-b166-1794-6935-a15f9c2e1e5b.png">

+ **「Credentials」でAccess Keyを登録する**

AWSのCredentialsを選択する画面となります。初期状態では何も登録されていないため「Add New Key」をクリックしてAccess Keyを登録します。

<img width="820" alt="Credential選択画面" src="https://qiita-image-store.s3.amazonaws.com/0/83432/3b44c9c3-e123-8abe-66ff-87ed88e2b399.png">

Access Keyの登録画面です。
<img width="819" alt="Credential登録画面" src="https://qiita-image-store.s3.amazonaws.com/0/83432/9546c77f-33ef-def0-d5d9-e140651e176d.png">

+ **「Remote Site Settings」でパブリッククラウドの設定項目を入力する**

Access Keyを登録し、「Next」をクリックすることでAWS上のリモートサイトの設定項目を入力する画面に遷移します。

<img width="818" alt="AWS設定画面" src="https://qiita-image-store.s3.amazonaws.com/0/83432/14c5cdb2-48f4-ac09-dd81-143d33d90d4c.png">

必要項目を入力し「Create」をクリックすると、AWS上にインスタンスを生成して自動的に設定が行われます。設定が完了するとRemote Siteとして利用可能な状態となります。

<img width="1276" alt="Remote Site登録完了" src="https://qiita-image-store.s3.amazonaws.com/0/83432/c2737c79-e2b6-a033-58b6-5da08e50a341.png">

これでリモートサイト登録完了です。

## Protection Domainの設定
仮想マシンなどのデータを保護するためのProtection Domainの設定を行います。この手順はローカルスナップショットからの復旧の手順と同様です。詳細については[Nutanixが提供するデータ保護機能 (リモートレプリケーション編)](http://qiita.com/shmza/items/cb7116def4c8629919e1)の「バックアップの設定」のセクションをご参照ください。

# 終わりに
Nutanixが提供するパブリッククラウド連携機能であるCloudConnectをご紹介しました。次回はオンプレミスのNutanixクラスターが全断してしまった時に、パブリッククラウド上のスナップショットデータを用いて、仮想マシンを復旧する手順をご紹介します。