【完全ガイド】Google Compute Engine VM上でMySQLにリモート接続する方法
Google Compute Engine VM上でMySQLにリモート接続する方法
ファイアウォールルールを設定してリモートアクセスを許可する
この方法は、最も一般的でシンプルな方法です。以下の手順を実行することで、GCEのファイアウォールルールを設定し、MySQLサーバーへのリモートアクセスを許可することができます。
手順:
- GCPコンソール にアクセスし、 Compute Engine > VMインスタンス を選択します。
- リモート接続したいVMインスタンスを選択します。
- ファイアウォール タブをクリックします。
- 名前 に任意の名前を入力します。
- ターゲット で すべてのパブリックIPアドレス または 指定されたIPアドレス範囲 を選択します。
- プロトコル で tcp を選択します。
- ポート に 3306 を入力します。
- アクション で 許可 を選択します。
- 作成 をクリックします。
上記の設定により、ファイアウォールルールが作成され、指定されたIPアドレスからのMySQLサーバーへの3306ポートへのアクセスが許可されます。
Cloud SQL Proxyは、データベースへの安全な接続を可能にするプロキシサービスです。Cloud SQL Proxyを使用すると、ファイアウォールルールを開放せずに、GCE VM上のMySQLサーバーにリモート接続することができます。
- Cloud SQL Proxy をインストールします。
- MySQLクライアントを使用して、Cloud SQL Proxyのポート経由でMySQLサーバーに接続します。
Cloud SQL Proxyの詳細については、以下のドキュメントを参照してください。
https://cloud.google.com/sql/docs/mysql/sql-proxy
補足:
- 上記以外にも、SSHトンネルを使用してMySQLサーバーにリモート接続する方法もあります。
- リモート接続する前に、必ずMySQLサーバーのユーザー名とパスワードを設定してください。
- 接続に問題がある場合は、MySQLサーバーのログを確認してください。
# ファイアウォールルールを作成する
gcloud compute firewall-rules create my-firewall \
--target=all-ip-ranges \
--protocol=tcp \
--ports=3306
上記のコマンドを実行すると、my-firewall
という名前のファイアウォールルールが作成され、すべてのIPアドレスからの3306ポートへのアクセスが許可されます。
次に、以下のコマンドを使用してMySQLクライアントからMySQLサーバーに接続することができます。
# MySQLクライアントを使用して接続する
mysql -u root -p -h <VMインスタンスのIPアドレス>
上記のコマンドを実行すると、MySQLクライアントが起動し、MySQLサーバーに接続するように求められます。ユーザー名とパスワードを入力すると、接続が確立されます。
# Cloud SQL Proxyをインストールする
curl -fsSL https://storage.googleapis.com/cloud-sql-proxy/sql-proxy/releases/latest/sql-proxy-linux-x64.tar.gz | tar -xzvf -
./sql-proxy &
# Cloud SQL Proxyを構成する
echo "user:password@tcp:<MySQLサーバーのIPアドレス>:3306" > ~/.sql_proxy/config.json
# MySQLクライアントを使用して接続する
mysql -u root -p -h 127.0.0.1 -P 33060
上記のコマンドを実行すると、Cloud SQL Proxyがインストールされ、構成されます。その後、MySQLクライアントを使用して、Cloud SQL Proxyのポート経由でMySQLサーバーに接続することができます。
- 上記のコードはあくまで一例であり、ご自身の環境に合わせて変更する必要があります。
- 最新の情報については、Google Cloudのドキュメントを参照することをお勧めします。
Google Compute Engine VM上でMySQLにリモート接続するその他の方法
VPNを使用する
VPN(Virtual Private Network)を使用すると、セキュアなトンネルを介してGCE VM上のMySQLサーバーに接続することができます。これは、ファイアウォールルールを開放したくない場合や、インターネット経由で接続するのが不安な場合に有効な方法です。
- VPNサーバー をセットアップします。
- GCE VM をVPNネットワークに接続します。
SSHトンネリングは、SSH接続を使用して、別のネットワーク上のリモートサービスに安全に接続する方法です。これは、ファイアウォールルールを開放せずに、GCE VM上のMySQLサーバーにリモート接続する場合に有効な方法です。
- GCE VM にSSHで接続します。
- 以下のコマンドを実行して、SSHトンネルを作成します。
ssh -L 33060:localhost:3306 <ユーザー名>@<GCE VMのIPアドレス>
Bastions を使用する
Bastionsは、インターネットから直接アクセスできるVMインスタンスで、そこから他のVMインスタンスに安全に接続できるようにするものです。これは、ファイアウォールルールを厳格に制御したい場合や、追加のセキュリティレイヤーが必要な場合に有効な方法です。
- Bastion インスタンスをセットアップします。
- GCE VM をBastionインスタンスのネットワークに接続します。
- Bastion インスタンスからSSHで GCE VM に接続します。
注意事項:
- 上記の方法はいずれも、高度な技術的な知識が必要です。
- 実行する前に、必ずGoogle Cloudのドキュメントを参照し、ご自身の環境に合わせて設定してください。
- セキュリティ上の理由から、リモート接続する際は、必ず強固なパスワードを使用し、ファイアウォールルールを適切に設定してください。
mysql google-compute-engine mariadb