VMware Cloud on AWS を担当しているソリューションアーキテクトの黒岩 宣隆です。
前回の記事では VMware Cloud on AWS の大きな特徴の一つであるアマゾン ウェブ サービス (AWS) の各種サービスとの連携概要について記載しました。
今回は、連携の一つである Amazon Relational Database Service(Amazon RDS)との連携について解説します。
VMware Cloud on AWS と Amazon RDS との連携
Amazon RDS では、Oracle や Microsoft SQL Server などのデータベースをクラウドのサービスとして利用できます。 VMware Cloud on AWS と Amazon RDS を連携して利用することで下記メリットがあります。
- データベースインスタンスを AWS 管理にすることで、ユーザはよりアプリケーション開発・管理に集中することが可能
- データベースにかかるライセンスコストおよびデータベース運用コストの軽減
- データベースのスケーラビリティ、可用性の確保
- VMware Cloud on AWS と Amazon RDS 間の高速かつ低遅延のネットワークにより、パフォーマンスの良いシステムを構築可能
技術面から具体的に見ていきたいと思います。
前回の blog で記載したとおり、VMware Cloud on AWS と Amazon RDS 間のネットワークは、VMware Transit Gateway(VTGW) または Elastic Network Interface(ENI)経由で接続します。 VMware Cloud on AWS 側ではゲートウェイのファイアウォール、AWS 側ではセキュリティグループを設定することでお互いの通信が行えるようになります。
図 1 は、VMware Cloud on AWS 上にアプリケーションや Web を配置し、VTGW または ENI 経由で Amazon RDS と連携する例です。 オンプレミスまたはインターネットからその Web やアプリケーションへアクセスします。
図 1 VMware Cloud on AWS と Amazon RDS との連携概要
VMware Cloud on AWS と Amazon RDS との連携手順
では、実際に VMware Cloud on AWS から Amazon RDS の連携手順を確認します。
今回は、VMware Cloud on AWS の SDDC 上にデプロイされている仮想マシンから、ENI 経由で Amazon RDS へ接続を行います。 AWS 側にはあらかじめ VPC と RDS を接続するためのプライベートサブネットが準備されており、VMware Cloud on AWS には RDS へ接続を行うための仮想マシンがデプロイされていることを前提とします。
下記のような手順で Amazon RDS と接続を行います。
- Amazon RDS のデプロイ
- AWS 管理コンソールで AWS セキュリティグループの設定
- VMware Cloud on AWS コンソールでファイアウォールの設定
- 仮想マシンから Amazon RDS への接続
Amazon RDS のデプロイ
AWS に記載のドキュメントに従い、RDS をデプロイします。 ここでは主な設定部分を記載します。
RDS では図3のようなデータベースが利用できます。 今回の例では Amazon Aurora(MySQL 互換)のデータベースインスタンスを作成します(図 2)。
図 2 データベースの作成(AWS 管理コンソール画面)
データベースは、下記用途何れかを選択します(図 3)。
- 本番稼働用
本番として利用するため、マルチ AZ で、プライマリ・スタンバイ構成でデータベースを作成します。 プライマリ、スタンバイインスタンスが接続するサブネットを選択します。 - 開発/テスト
開発やテスト用途で利用のため、シングル AZ 構成でデータベースを作成します。
データベースインスタンスが接続するサブネットを選択可能です。
図 3 データベースのテンプレートの選択(AWS 管理コンソール画面)
接続の項目では、データベースインスタンスがデプロイされる VPC とサブネットを選択します(図 4)。
ここで、VMware Cloud on AWS の SDDC と ENI 経由で接続する場合は、ENI が接続されている VPC を選択する必要があります。 また、補足情報として ENI が接続されているサブネットと同じサブネットを選択すると AZ 間のデータ転送料がかからなくなります。
VMware Cloud on AWS の SDDC と VTGW 経由で接続する場合は、同じリージョンである必要があること以外は特に上記のような注意点はありません。
図 4 データベースインスタンスが接続されるVPC、サブネットの設定(AWS 管理コンソール画面)
データベースの作成が完了すると、ステータスが緑色で利用可能となります(図 5)。
データベースへのアクセスは、エンドポイント名を使います。データベースの種類や構成により変わりますが、下記例では書き込み用エンドポイント名と読み込み用エンドポイント名がそれぞれあります。データベースへ書き込みを行う場合と、読み込みを行う場合のケースでそれぞれ使い分けます。
図 5 データベースインスタンスの作成完了(AWS 管理コンソール画面)
AWS 管理コンソールで AWS セキュリティグループの設定
次にセキュリティグループを設定し、VMware Cloud on AWS の SDDC 上の仮想マシンからデータベースへアクセスできるようにします。
今回は、書き込み用のデータベースインスタンスを例に解説します。 まずは書き込み用のデータベースインスタンスをクリックし、セキュリティグループをクリックすることで、対応したセキュリティグループの設定が行なえます(図 6)。
図 6 セキュリティグループの設定(AWS 管理コンソール画面)
図 7 Amazon RDS へ VMware Cloud on AWS からのアクセスを許可する設定(AWS 管理コンソール画面)
VMware Cloud on AWS コンソールでファイアウォールの設定
次に、仮想マシンから Amazon RDS のデータベースインスタンスへアクセスできるように、VMware Cloud on AWS のコンソールでファイアウォールを設定します(図 8)。
図 8 VMware Cloud on AWS コンソールのファイアウォール設定
仮想マシンから Amazon RDS への接続
前述したとおり、AWS のセキュリティグループと VMware Cloud on AWS のファイアウォールを設定するだけで、VMware Cloud on AWS 上の仮想マシンから Amazon RDS へ接続が行えます。
では、VMware Cloud on AWS 上の仮想マシンから Amazon RDS へ接続を行います(図 9)。
データベースインスタンスへの接続はコマンドラインにより行います。 あらかじめ仮想マシンに mysql client(詳細はこちら) がインストールされていることを前提とします。
下記コマンドで、データベースインスタンス名を指定し接続します。 ユーザ名とパスワードは、Amazon RDS データベースの作成ウィザードで指定したユーザ名とパスワードを使用します。
mysql -u データベースユーザ名 -p -h データベースインスタンス名
図 10 の例では、ログイン後に確認のためデータベースとテーブルの作成を行っています。
図 9 データベースインスタンスへのログイン
まとめ
今回は、VMware Cloud on AWS と AWS サービスとの連携パターンとして Amazon RDS との連携について解説しました。このように AWS サービスとの連携は簡単に行なえ、かつライセンスや運用管理コスト削減のメリットが出てきます。
ぜひ皆様も VMware Cloud on AWS と AWS 各種サービスとの連携をご検討ください。
関連情報リンク
- VMware Cloud on AWS Japan Blog: ブログサイト
- VMware Cloud on AWS と AWS の連携: ブログサイト
- Amazon RDS ユーザガイド: AWS ドキュメント