ClusterControl 1.6は、AWS、Azure、Google Cloudと緊密に統合されているため、ClusterControlユーザーインターフェイスから直接、新しいインスタンスを起動してMySQL、MariaDB、MongoDB、PostgreSQLをデプロイできるようになりました。このブログでは、アマゾンウェブサービスにクラスターをデプロイする方法を紹介します。
この新機能には、 clustercontrol-cloudという2つのモジュールが必要であることに注意してください。 およびclustercontrol-clud 。前者はクラウド通信のCMON機能を拡張するヘルパーデーモンであり、後者はクラウドインスタンスにファイルをアップロードおよびダウンロードするためのファイルマネージャークライアントです。どちらのパッケージもclustercontrolUIパッケージの依存関係であり、存在しない場合は自動的にインストールされます。詳細については、コンポーネントのドキュメントページを参照してください。
クラウドクレデンシャル
ClusterControlを使用すると、統合(サイドメニュー)->クラウドプロバイダー:
でクラウドクレデンシャルを保存および管理できます。このリリースでサポートされているクラウドプラットフォームは、Amazon Web Services、Google Cloud Platform、MicrosoftAzureです。このページでは、新しいクラウドクレデンシャルを追加したり、既存のクレデンシャルを管理したり、クラウドプラットフォームに接続してリソースを管理したりできます。
ここで設定された資格情報は、次の目的で使用できます。
- クラウドリソースを管理する
- データベースをクラウドにデプロイする
- バックアップをクラウドストレージにアップロード
[AWSの管理]ボタンをクリックした場合に表示される内容は次のとおりです。
クラウドインスタンスで簡単な管理タスクを実行できます。次のスクリーンショットに示すように、[AWSVPC]タブでVPC設定を確認することもできます。
上記の機能は、特にデータベースの展開を開始する前にクラウドインスタンスを準備するときに、参照として役立ちます。
クラウドでのデータベースの導入
ClusterControlの以前のバージョンでは、クラウドへのデータベースの展開は、標準ホストへの展開と同様に扱われ、事前にクラウドインスタンスを作成してから、[データベースクラスターの展開]ウィザードでインスタンスの詳細と資格情報を指定する必要がありました。展開手順では、動的IPとホスト名の割り当て、NAT化されたパブリックIPアドレス、ストレージの弾力性、仮想プライベートクラウドネットワーク構成など、クラウド環境の追加機能と柔軟性を認識していませんでした。
バージョン1.6では、クラウドクレデンシャルを提供するだけで済みます。このクレデンシャルは、「クラウドプロバイダー」インターフェイスを介して管理でき、「クラウドでのデプロイ」展開ウィザードに従います。 ClusterControl UIから、[デプロイ]をクリックすると、次のオプションが表示されます。
現在、サポートされているクラウドプロバイダーは、Amazon Web Service(AWS)、Google Cloud、MicrosoftAzureの3大企業です。将来のリリースでは、より多くのプロバイダーを統合する予定です。
最初のページに、クラスターの詳細オプションが表示されます:
このセクションでは、サポートされているクラスタータイプ、MySQL Galeraクラスター、MongoDBレプリカセット、またはPostgreSQLストリーミングレプリケーションを選択する必要があります。次のステップは、選択したクラスタータイプでサポートされているベンダーを選択することです。現在、次のベンダーとバージョンがサポートされています。
- MySQL Galera Cluster-Percona XtraDB Cluster 5.7、MariaDB 10.2
- MongoDBクラスター-MongoDB、IncによるMongoDB 3.4およびPerconaによるMongoDB3.4用のPerconaServer(レプリカセットのみ)。
- PostgreSQLクラスター-PostgreSQL10.0(ストリーミングレプリケーションのみ)。
次のステップでは、次のダイアログが表示されます。
ここで、選択したクラスタータイプを適宜構成できます。ノードの数を選択します。クラスター名はインスタンスタグとして使用されるため、クラウドプロバイダーダッシュボードでこの展開を簡単に認識できます。クラスタ名にスペースは使用できません。 My.cnf Templateは、ClusterControlがクラスターのデプロイに使用するテンプレート構成ファイルです。 ClusterControlホストの/usr/ share / cmon/templatesの下に配置する必要があります。残りのフィールドはかなり自明です。
次のダイアログでは、クラウドのクレデンシャルを選択します。
[新しいクレデンシャルの追加]ボタンをクリックして、既存のクラウドクレデンシャルを選択するか、新しいクレデンシャルを作成できます。次のステップは、仮想マシンの構成を選択することです。
このステップのほとんどの設定は、選択した資格情報によってクラウドプロバイダーから動的に入力されます。オペレーティングシステム、インスタンスサイズ、VPC設定、ストレージタイプ、サイズを設定し、ClusterControlホスト上のSSHキーの場所を指定することもできます。 ClusterControlに、これらのインスタンス専用の新しいキーを生成させることもできます。 Virtual PrivateCloudの横にある[AddNew]ボタンをクリックすると、新しいVPCを作成するためのフォームが表示されます。
VPCは、クラウドプラットフォーム内にある論理ネットワークインフラストラクチャです。 VPCは、IPアドレス範囲を変更し、サブネットを作成し、ルートテーブル、ネットワークゲートウェイ、およびセキュリティ設定を構成することで構成できます。分離、セキュリティ、ルーティング制御のために、このネットワークにデータベースインフラストラクチャを導入することをお勧めします。
新しいVPCを作成するときは、サブネットを使用してVPC名とIPv4アドレスブロックを指定します。次に、IPv6をネットワークとテナンシーオプションの一部にするかどうかを選択します。その後、この仮想ネットワークをデータベースインフラストラクチャに使用できます。
最後のステップは展開の概要です:
この段階では、選択した仮想ネットワークの下で、データベースを実行するサブネットを選択する必要があります。選択したサブネットで、パブリックIPv4アドレスの自動割り当てを有効にする必要があることに注意してください。 [新しいサブネットの追加]ボタンをクリックして、このVPCの下に新しいサブネットを作成することもできます。すべてが正しいかどうかを確認し、[クラスターの展開]ボタンを押して展開を開始します。
次に、[アクティビティ]->[ジョブ]->[クラスターの作成]->[完全なジョブの詳細]をクリックして、進行状況を監視できます。
接続によっては、完了するまでに10〜20分かかる場合があります。完了すると、ClusterControlダッシュボードの下に新しいデータベースクラスターが一覧表示されます。 PostgreSQLストリーミングレプリケーションクラスターの場合、展開が完了したら、マスターIPアドレスとスレーブIPアドレスを知る必要がある場合があります。 [ノード]タブに移動するだけで、左側のノードリストにパブリックIPアドレスとプライベートIPアドレスが表示されます。
これで、データベースクラスターがAWSにデプロイされ、実行されました。
現時点では、スケールアップは標準ホストと同様に機能します。事前に手動でクラウドインスタンスを作成し、ClusterControl->クラスターの選択->ノードの追加でホストを指定する必要があります。
内部的には、展開プロセスは次のことを行います。
- クラウドインスタンスを作成する
- セキュリティグループとネットワークを構成する
- ClusterControlから作成されたすべてのインスタンスへのSSH接続を確認します
- すべてのインスタンスにデータベースをデプロイする
- クラスタリングまたはレプリケーションリンクを構成する
- ClusterControlへの展開を登録します
この機能はまだベータ版であることに注意してください。それでも、この機能を使用すると、単一のユーザーインターフェースからさまざまなクラウドプロバイダーのデータベースクラスターを制御および管理することで、開発およびテスト環境を高速化できます。
クラウド上のデータベースバックアップ
この機能はClusterControl1.5.0から使用されており、AzureCloudStorageのサポートが追加されました。これは、作成したバックアップを3つの主要なクラウドプロバイダー(AWS、GCP、Azure)すべてにアップロードおよびダウンロードできることを意味します。アップロードプロセスは、バックアップが正常に作成された直後に実行されます([バックアップをクラウドにアップロード]を切り替えた場合)。または、バックアップリストのクラウドアイコンボタンを手動でクリックすることもできます。
その後、ローカルバックアップストレージを失った場合や、バックアップのローカルディスクスペースの使用量を減らす必要がある場合に備えて、クラウドからバックアップをダウンロードして復元できます。
現在の制限
以下に示すように、クラウド展開機能にはいくつかの既知の制限があります。
- 現在、クラウドインスタンスの「アカウンティング」はありません。データベースクラスターを削除する場合は、クラウドインスタンスを手動で削除する必要があります。
- クラウドインスタンスを使用してノードを自動的に追加または削除することはできません。
- クラウドインスタンスを使用してロードバランサーを自動的にデプロイすることはできません。
多くの環境とセットアップで機能を広範囲にテストしましたが、見逃した可能性のあるコーナーケースが常にあります。詳細については、変更ログをご覧ください。
クラウドでのクラスタリングをお楽しみください!