このガイドでは、PolarDB for MySQL エッジクラスターの使用を開始するための主要な手順 (ネットワークの作成、クラスターの作成、データベースアカウントの作成、データベースへの接続) について説明します。
サポートされているエッジリージョン
現在、PolarDB for MySQL エッジクラスターは Haikou Telecom、Türkiye (Istanbul)-1、マカオ (中国)-2、Vietnam (Hanoi)-3 でのみ利用可能です。
1. ENS ネットワークの作成
クラスターをデプロイするリージョンにネットワークを作成します。
ENS を初めて使用する場合は、まずサービスを有効化する必要があります。
-
ENS コンソールに移動します。左側のナビゲーションペインで、 を選択し、ネットワークの作成 をクリックします。
-
ネットワークの作成 ページで、サポートされているエッジリージョンのいずれかに必要なネットワーク (VPC と vSwitch) を作成します。
2. エッジクラスターの作成
PolarDB のエッジクラスター購入ページに移動して、PolarDB for MySQL エッジクラスターを作成します。次のパラメーターを設定し、他のパラメーターはデフォルトのままにします。
|
パラメーター |
説明 |
|
[課金方法] |
エッジクラスターは サブスクリプション 課金方法のみに対応しています。 説明
サブスクリプション 方式は、固定のリソース仕様を選択して前払いするプリペイドモデルです。サブスクリプション期間が長いほど、割引率が高くなります。このモデルは、安定的で長期的なワークロードに最適です。 |
|
[エッジプライマリデータセンター] |
クラスターのエッジノードを選択します。 説明
PolarDB クラスターと、接続する ENS インスタンスが同じリージョンにあることを確認してください。そうでない場合、プライベートネットワーク経由では通信できません。 |
|
[互換性] |
クラスターの MySQL 互換バージョンを選択します。
|
|
データベースエディション |
[専用仕様]エディションと [一般仕様]エディションから選択します:
詳細な比較については、「汎用仕様と専用仕様の選択方法」をご参照ください。 |
|
ネットワーク |
ステップ 1 で作成した ENS ネットワークを選択します。すでに ENS インスタンスを作成しており、インスタンスが存在する VPC が要件を満たしている場合は、その VPC と vSwitch を選択できます。 |
|
[仕様] |
ノードの仕様を選択します。仕様によって、CPU、メモリ、最大ストレージ容量、IOPS のレベルが異なります。ビジネスニーズに最も適したものを選択してください。 |
|
[ノード数] |
デフォルトは 2 ノード (1 つの読み取り/書き込みノードと 1 つの読み取り専用ノード) です。ワークロードに基づいてノード数を設定できます。 説明
|
|
ストレージタイプ |
エッジクラスター向けの PolarDB は、低レイテンシー、高性能、高耐久性、高信頼性を実現する ENS 向けのブロックストレージ製品である ENS Cloud Disk を使用します。2 つのパフォーマンスレベルが利用可能です:
|
|
ストレージ容量 |
クラスターの初期ストレージ容量を設定します。デフォルトは 100 GB です。 |
3. データベースアカウントの作成
エッジクラスター向けの PolarDB コンソールに移動し、対象クラスターの ID をクリックして詳細ページを開きます。左側のナビゲーションペインで、 を選択し、[Create Account] をクリックします。ダイアログボックスで、データベースアカウント名を入力し、アカウントタイプを選択し、パスワードを設定・確認してから [OK] をクリックします。
[高特権アカウント]または [普通口座]のいずれかを作成できます。これらのアカウントタイプは権限が異なります。ビジネスニーズに合ったものを選択してください。詳細については、「アカウント権限」をご参照ください。
4. クラスターエンドポイントの取得
エッジクラスター向けの PolarDB コンソールに移動し、対象クラスターの ID をクリックして詳細ページを開きます。左側のナビゲーションペインで、データベースへの接続 をクリックします。[Database Connections] ページで、[Cluster Endpoint [Recommended]] カードを見つけ、プライベートネットワークの行にある [Copy] をクリックして、クラスターのプライベートエンドポイントを取得します。
-
プライベートネットワークエンドポイントは、ENS VPC 内の IP アドレスです。ロードバランサーを使用して、コンピューティングノード間でトラフィックがルーティングされます。
-
クラスターのエンドポイント の使用を推奨します。デフォルトのポートは 3306 です。
5. データベースへの接続
データベースクラスターにはいくつかの方法で接続できます。ニーズに合った方法を選択してください。以下のセクションで例を示します:
クライアントを使用したクラスターへの接続
任意の汎用クライアントを使用して PolarDB クラスターに接続できます。このセクションでは、MySQL Workbench 8.0.29 を例として説明します。他のクライアントの手順も同様です。
MySQL Workbench をインストールします。公式のダウンロードリンクについては、MySQL Workbench のダウンロードページをご参照ください。
MySQL Workbench を開き、 を選択します。
接続情報を入力し、[OK] をクリックします。

パラメーター
説明
例
ホスト名
pc-2***.rwlb.rds.aliyuncs.com
ポート
データベースエンドポイントのポート番号。
説明デフォルトのポートは 3306 です。
3306
ユーザー名
polardb_mysql_user
パスワード
データベースアカウントのパスワード。
Pass***233
コマンドラインを使用したクラスターへの接続
ご利用のサーバーに MySQL クライアントがインストールされている場合は、コマンドラインを使用して PolarDB for MySQL データベースクラスターに接続できます。
構文:
mysql -h<endpoint> -P<port> -u<database_username> -p<database_user_password>例:
mysql -h pc-2***.rwlb.rds.aliyuncs.com -P3306 -upolardb_mysql_user -pPass***233パラメーター | 説明 | 例 |
-h | pc-2***.rwlb.rds.aliyuncs.com | |
-P | データベースエンドポイントのポート番号。 説明
| 3306 |
-u | polardb_mysql_user | |
-p | データベースアカウントのパスワード。 説明 このパラメーターは必須です。
| Pass***233 |
アプリケーションを使用したクラスターへの接続
PolarDB for MySQL クラスターへの接続方法は、他の MySQL データベースへの接続方法と同じです。データベースのエンドポイント、ポート、アカウント、パスワードを置き換えるだけです。以下のセクションでは、さまざまなプログラミング言語を使用してアプリケーションから PolarDB データベースにアクセスする方法の例を示します:
Java
このセクションでは、Maven プロジェクトを例に、MySQL Java Database Connectivity (JDBC) ドライバーを使用して PolarDB for MySQL クラスターに接続する方法を示します。
まず、MySQL JDBC ドライバーの依存関係を pom.xml ファイルに追加します。以下のコードは例です:
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.27</version> </dependency>クラスターに接続します。
<HOST>、ポート番号、<USER>、<PASSWORD>、<DATABASE>、<YOUR_TABLE_NAME>、および<YOUR_TABLE_COLUMN_NAME>パラメーターを実際の情報に置き換えます。import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class DatabaseConnection { public DatabaseConnection() { } public static void main(String[] args) { // 接続するデータベースのエンドポイント、ポート、名前。 String url = "jdbc:mysql://<HOST>:3306/<DATABASE>?useSSL=false&serverTimezone=UTC"; // データベースアカウント。 String user = "<USER>"; // データベースアカウントのパスワード。 String password = "<PASSWORD>"; try { Class.forName("com.mysql.cj.jdbc.Driver"); Connection conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createStatement(); // 取得するデータテーブルの名前。 ResultSet rs = stmt.executeQuery("SELECT * FROM `<YOUR_TABLE_NAME>`"); while(rs.next()) { // 取得するデータテーブルの列名。 System.out.println(rs.getString("<YOUR_TABLE_COLUMN_NAME>")); } rs.close(); stmt.close(); conn.close(); } catch (Exception var7) { var7.printStackTrace(); } } }
Python
このセクションでは、Python 3 を例に、PyMySQL ライブラリを使用して PolarDB for MySQL クラスターに接続する方法を示します。
まず、PyMySQL ライブラリをインストールします。インストールしていない場合は、次のコマンドを実行します:
pip3 install PyMySQLクラスターに接続します。
<HOST>、ポート番号、<USER>、<PASSWORD>、<DATABASE>、および<YOUR_TABLE_NAME>パラメーターを実際の情報に置き換えます。import pymysql # データベース接続パラメーター host = '<HOST>' # PolarDB クラスターのエンドポイント port = 3306 # デフォルトのポートは 3306 user = '<USER>' # データベースアカウント password = '<PASSWORD>' # データベースアカウントのパスワード database = '<DATABASE>' # 接続するデータベースの名前 try: # データベース接続を作成 connection = pymysql.connect( host=host, port=port, user=user, passwd=password, db=database ) # カーソルを取得 with connection.cursor() as cursor: # SQL クエリを実行 sql = "SELECT * FROM `<YOUR_TABLE_NAME>`" # 取得するデータテーブルの名前 cursor.execute(sql) # クエリ結果を取得 results = cursor.fetchall() for row in results: print(row) finally: # データベース接続を閉じる if 'connection' in locals() and connection.open: connection.close()
Go
このセクションでは、Go 1.23.0 を例に、database/sql パッケージと go-sql-driver/mysql ドライバーを使用して PolarDB for MySQL クラスターに接続する方法を示します。
まず、
go-sql-driver/mysqlドライバーをインストールします。次のコマンドを実行してインストールできます:go get -u github.com/go-sql-driver/mysqlクラスターに接続します。
<HOST>、ポート番号、<USER>、<PASSWORD>、<DATABASE>、および<YOUR_TABLE_NAME>パラメーターを実際の情報に置き換えます。package main import ( "database/sql" "fmt" "log" _ "github.com/go-sql-driver/mysql" ) func main() { // データベース接続パラメーター dbHost := "<HOST>" // PolarDB クラスターのエンドポイント dbPort := "3306" // デフォルトのポートは 3306 dbUser := "<USER>" // データベースアカウント dbPass := "<PASSWORD>" // データベースアカウントのパスワード dbName := "<DATABASE>" // 接続するデータベースの名前 // データソース名 (DSN) を構築 dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local", dbUser, dbPass, dbHost, dbPort, dbName) // データベース接続を開く db, err := sql.Open("mysql", dsn) if err != nil { log.Fatalf("データベースへの接続に失敗しました: %v", err) } defer db.Close() // 接続をテスト err = db.Ping() if err != nil { log.Fatalf("データベースへの ping に失敗しました: %v", err) } // カーソルを作成 var result string err = db.QueryRow("SELECT VERSION()").Scan(&result) if err != nil { log.Fatalf("クエリの実行に失敗しました: %v", err) } // データベースのバージョンを出力 fmt.Printf("データベースに接続しました、バージョン: %s\n", result) // SQL クエリを実行 rows, err := db.Query("SELECT * FROM `<YOUR_TABLE_NAME>`") // 取得するデータテーブルの名前 if err != nil { log.Fatalf("クエリの実行に失敗しました: %v", err) } defer rows.Close() }