Google Compute Engine で MySQL をセットアップする方法

Google Cloud プロジェクトの一部として MySQL をデプロイするためのオプションはいくつかあります。Cloud SQL または Google Cloud Marketplace を使用するか、Compute Engine に MySQL を手動でインストールできます。

Cloud SQL は、MySQL をウェブサービスとして提供します。Cloud SQL を使用して Google のクラウドで MySQL データベースをホストし、Google Cloud でレプリケーション、パッチ管理、データベース管理などの管理作業を行うことができます。

Cloud Marketplace では、シンプルなクリック デプロイ インターフェースを利用できます。これにより、Compute Engine インスタンスに MySQL を簡単にインストールできます。Cloud Marketplace には、スタンドアロンの MySQL インストールに加え、MySQL を使用するいくつかのウェブ開発スタック(LAMP スタック、LEMP スタック、Percona MySQL クラスタなど)も含まれています。

MySQL を手動でインストールしてカスタマイズする場合は、Compute Engine を使用して、数分で MySQL データベースを作成できます。このドキュメントでは、選択するオプションに関するガイダンスを示し、Compute Engine での MySQL データベースの手動インストールについて説明します。

適切な MySQL デプロイ オプションの選択方法

Google Cloud でバックエンド データベースとサーバーの管理作業を行って利便性を求める場合、Cloud SQL は優れたオプションとなります。たとえば、Cloud SQL は自動バックアップとポイントインタイム リカバリを備えています。さらに、可用性と復元力が向上するように、データが複数のゾーンに複製されます。

Cloud SQL でサポートされていない MySQL 機能が必要な場合は、Compute Engine に MySQL をインストールすることをおすすめします。たとえば、Cloud SQL はユーザー定義関数や SUPER 権限をサポートしていません。詳細については、Cloud SQL のよくある質問をご覧ください。

Compute Engine に MySQL をインストールする場合は、Cloud Marketplace を使用して MySQL インストールをデプロイするか、Compute Engine インスタンスに MySQL を手動でインストールできます。Cloud Marketplace を使用すると、大規模な開発スタックの一部として MySQL を簡単にデプロイできます。Google Marketplace には、複数の MySQL インストールのオプション(スタンドアロンの MySQL インストール、LAMP スタック、LEMP スタック、Nginx スタック、Percona MySQL クラスタ インストールやその他のいくつかのオプション)が用意されています。

Cloud Marketplace のサービスがニーズに合わない場合は、Compute Engine インスタンスに MySQL を手動でインストールできます。たとえば、作成したカスタム イメージに MySQL をデプロイすることや、インストール プロセスを詳細に制御することができます。

Compute Engine インスタンスに MySQL を手動でインストールする場合、Compute Engine インスタンスを作成し、そのインスタンスに MySQL を直接インストールするだけです。このドキュメントの残りでは、Compute Engine インスタンスへの MySQL の手動インストールについて説明します。

目標

  • Compute Engine インスタンスの作成
  • MySQL のインストール
  • MySQL への接続

前提条件

  1. Google Cloud Console で新しいプロジェクトを作成します。既存のプロジェクトを使用することもできますが、新しいプロジェクトを作成することによって、クリーンアップが容易になります。

    このドキュメントの手順はすべて、Google Cloud Console を使用して完了できますが、gcloud コマンドライン ツールを使用する場合は、次の手順に従って Compute Engine API を有効にし、Cloud SDK をインストールします。

  2. Google Cloud Console を使用して Compute Engine API を有効にします

  3. Cloud SDK をインストールします。

  4. コマンドが冗長にならないようにワークスペースを構成します。次のコマンドの [PROJECT_ID][ZONE] は、プロジェクトの値で置き換えます。ゾーンの完全なリストについては、利用可能なリージョンとゾーンをご覧ください。

    gcloud config set project [PROJECT_ID]
    gcloud config set compute/zone [ZONE]
    

Compute Engine インスタンスの作成

MySQL 用の Compute Engine インスタンスを作成し、新しく作成したインスタンスへの SSH 接続を確立します。デフォルトのオペレーティング システムは Debian バージョン 9 です。このチュートリアルで別のオペレーティング システムを使用する場合は、Compute Engine ドキュメントの公開イメージのページに記載されているオプションから選択できます。

Console

Google Cloud Console で Compute Engine インスタンスを作成するには:

  1. Google Cloud Console を開きます。

  2. 新しく作成したプロジェクトを選択し、[続行] をクリックします。

  3. [インスタンスを作成](既存のインスタンスがある場合は、[新しいインスタンス])をクリックします。インスタンスに mysql-test という名前を付けます。

  4. デフォルト値以外のオペレーティング システムを指定するには、[ブートディスク] セクションで [変更] をクリックして、ブートディスクのプロパティを構成します。[公開イメージ] タブで、オペレーティング システムを選択し、[保存] をクリックします。

  5. [作成] をクリックします。

SSH 接続を確立するには:

  1. [VM インスタンス] ページで、リスト内の新しい VM インスタンスを見つけます。

  2. [接続] 列で、[SSH] をクリックします。SSH ターミナルがブラウザ ウィンドウに表示されます。

gcloud

  1. Compute Engine インスタンスを作成するには、gcloud compute instances create コマンドを使用します。別のオペレーティング システムを使用する場合は、--image パラメータの後にイメージ名を追加します。たとえば、Debian 9 を使用するには、--image debian-9 を追加します。

    gcloud compute instances create mysql-test
    
  2. ssh を使用してインスタンスに接続します。

    gcloud compute ssh mysql-test
    

MySQL のインストール

次の手順では、Compute Engine インスタンス上で MySQL をインストールする方法について説明します。

Debian と Ubuntu

  1. apt-get パッケージ マネージャーを更新します。

    sudo apt-get update
    
  2. MySQL をインストールします。インストール プロセスが専用の MySQL サービスを開始します。

    sudo apt-get -y install mysql-server
    

CentOS 6 と RHEL 6

  1. MySQL をインストールします。

    sudo yum -y install mysql-server
    
  2. MySQL サーバーを開始します。

    sudo service mysqld start
    

CentOS 7 と RHEL 7

CentOS と RHEL のバージョン 7 には、現在、パッケージ管理システムの一部として MySQL の代わりに MariaDB が含まれています。CentOS 7 上で MySQL をインストールするには、まず、パッケージ マネージャーを更新する必要があります。

  1. MySQL を含むようにパッケージ マネージャーを更新します。

    sudo rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
    
  2. MySQL をインストールします。

    sudo yum -y install mysql-community-server
    
  3. MySQL サーバーを開始します。

    sudo /usr/bin/systemctl start mysqld
    

MySQL インストールのセキュリティの強化

MySQL インストールのセキュリティを強化するには、mysql_secure_installation コマンドを実行します。インストール プロセス中にパスワードを設定しなかった場合は、この手順でパスワードを作成します。このコマンドの詳細については、mysql_secure_installation の MySQL ドキュメントをご覧ください。

sudo mysql_secure_installation

MySQL への接続

次の手順では、mysql-test インスタンスから MySQL に接続する方法について説明します。

  1. MySQL クライアントを使用して MySQL に接続します。

    sudo mysql -u root -p
    

    MySQL に接続すると、プロンプトが次のように変化します。

    mysql>

    そうするると、MySQL コマンドを実行することができるようになります。たとえば、次のコマンドは、現在の接続を含む、実行中のスレッドを表示します。

    mysql> SHOW processlist;
    +----+------+-----------+------+---------+------+-------+------------------+
    | Id | User | Host      | db   | Command | Time | State | Info             |
    +----+------+-----------+------+---------+------+-------+------------------+
    | 51 | root | localhost | NULL | Query   |    0 | NULL  | show processlist |
    +----+------+-----------+------+---------+------+-------+------------------+
    1 row in set (0.00 sec)

    次のコマンドを使用して、ユーザーのリストを生成できます。

    mysql> SELECT User, Host, Password FROM mysql.user;
    +------------------+------------+-------------------------------------------+
    | User             | Host       | Password                                  |
    +------------------+------------+-------------------------------------------+
    | root             | localhost  | *992C4DB09F487A275976576CCFA554F7D20A4207 |
    | root             | mysql-test | *992C4DB09F487A275976576CCFA554F7D20A4207 |
    | root             | 127.0.0.1  | *992C4DB09F487A275976576CCFA554F7D20A4207 |
    | root             | ::1        | *992C4DB09F487A275976576CCFA554F7D20A4207 |
    | debian-sys-maint | localhost  | *AD7B08AF7691A552A57900F1A9D8AE26ED499117 |
    +------------------+------------+-------------------------------------------+
    5 rows in set (0.00 sec)
  2. コマンドの実行が完了したら、exit コマンドを使用して MySQL クライアントを終了し、再度 exit を使用して Compute Engine インスタンスからログアウトします。

    mysql> exit
    exit

クリーンアップ

MySQL のチュートリアルが終了したら、Google Cloud で作成したリソースをクリーンアップして、今後割り当ての消費と料金が発生しないようにします。次のセクションで、リソースを削除または無効にする方法を説明します。

プロジェクトの削除

課金をなくす最も簡単な方法は、チュートリアル用に作成したプロジェクトを削除することです。

プロジェクトを削除するには:

  1. Cloud Console で [リソースの管理] ページに移動します。

    [リソースの管理] ページに移動

  2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
  3. ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。

インスタンスの削除

Compute Engine インスタンスを削除するには:

  1. Cloud Console で、[VM インスタンス] ページに移動します。

    [VM インスタンス] ページに移動

  2. 削除するインスタンスをクリックします。
  3. [削除] をクリックしてインスタンスを削除します。

次のステップ

ここまで、Compute Engine に MySQL サーバーをインストールする方法を学びました。MySQL を使用する複雑なアプリケーションを参照するには、MySQL を使用する Cloud Marketplace でさまざまな開発スタックをご覧ください。

要件に高可用性とスケーラビリティが含まれている場合は、Compute Engine 上での MySQL Cluster のインストールを検討します。MySQL Cluster は、シェアードナッシング クラスタリングとオートシェーディングを通して高可用性とスケーラビリティを提供します。Cloud Marketplace は、MySQL クラスタリング用のオープンソース ソリューションである Percona 用のクリック デプロイ オプションを提供します。

MySQL のスケーラビリティに関するもう 1 つのオープンソース ソリューションは、2011 年からすべての YouTube データベース トラフィックを供給している Vitess です。Vitess は、コンテナ内で動作するアプリケーションに最適です。コンテナ環境での Vitess の使用方法については、Kubernetes 上での Vitess の実行をご覧ください。

MySQL の詳細については、公式の MySQL ドキュメントをご覧ください。

Google Cloud のその他の機能を試す。チュートリアルをご覧ください。