本ガイドでは、Edge Node Service(ENS)上で実行される PolarDB for MySQL エッジクラスターの作成、設定、および接続手順について説明します。
サポート対象リージョン
PolarDB for MySQL on ENS は、現在以下のリージョンのみでご利用いただけます。
海口電信
トルコ (イスタンブール)-1
マカオ (中国)-2
ベトナム (ハノイ)-3
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
ENS が有効化された Alibaba Cloud アカウント。ENS をこれまで使用したことがない場合は、まずENS の有効化プロセスを完了してください。
ENS コンソールおよびPolarDB コンソールへのアクセス権限。
ステップ 1:ENS ネットワークの作成
エッジクラスターは、ENS ネットワーク内に配置する必要があります。
ENS コンソールへ移動します。
左側のナビゲーションウィンドウで、VPC 管理 > ネットワーク を選択します。
ネットワークの作成 をクリックします。
[ネットワークの作成] ページで、クラスターをデプロイする予定のリージョン (ノード) の VPC と vSwitch を設定します。
ステップ 2:エッジクラスターの作成
エッジクラスター購入ページへ移動します。
以下のパラメーターを設定します。本クイックスタートでは、その他の設定はすべてデフォルト値のままとしてください。
必須パラメーター
| パラメーター | 推奨値 | 説明 |
|---|---|---|
| 課金方法 | サブスクリプション(前払い) | エッジクラスターでサポートされる唯一の課金方法です。安定した長期ワークロードに適しています。 |
| エッジプライマリデータセンタ | ご利用の ENS ネットワークと同じリージョン | クラスターが配置されるリージョン(ノード)。ステップ 1 で作成した ENS ネットワークと一致させる必要があります(非公開ネットワーク接続を有効化するため)。 |
| ネットワークおよびゾーン | ステップ 1 で作成した VPC および vSwitch | ステップ 1 で作成した VPC および vSwitch を選択します。 |
確認を推奨する任意パラメーター
| パラメーター | 説明 |
|---|---|
| 互換性 | クラスターの MySQL 互換バージョンです。MySQL 8.0.2 はコミュニティ版 MySQL 8.0.18 以前と完全互換です。MySQL 8.0.1 はコミュニティ版 MySQL 8.0.13 以前と完全互換です。 |
| データベースエディション | 専用:各クラスターが割り当てられた CPU を専有し、より安定したパフォーマンスを提供します。汎用:同一サーバー上のクラスターがアイドル CPU を共有し、コストパフォーマンスに優れます。比較については、「汎用仕様と専用仕様の選択方法」をご参照ください。 |
| 仕様 | ノードの CPU およびメモリ容量です。パフォーマンス要件に応じて適切なサイズを選択してください。 |
| ノード | デフォルトは 2 ノードです(1 台の読み取り/書き込みノード(プライマリノード)と 1 台の読み取り専用ノード)。読み取り/書き込みノードは書き込み操作および一部の読み取り操作を処理します。読み取り専用ノードは、プライマリノードからの読み取り負荷を軽減し、高可用性を提供します。また、列ストア読み取り専用ノードを追加することも可能です。これは、インメモリ列指向インデックス(IMCI) 機能専用のノードであり、カラム型ストレージを活用して分析クエリ(OLAP)を高速化し、プライマリノードおよび読み取り専用ノードの負荷を軽減します。 説明 読み取り専用ノードを含むクラスターを購入した場合、読み取り専用ノード数を 0 に減らすことはできません。この操作を行うには、Data Transmission Service(DTS)またはメジャーバージョンアップ機能を用いてデータを移行し、新しいクラスターを購入してください。 |
| ストレージタイプ | PL0 ESSD:パフォーマンスレベル 0。PL1 ESSD:パフォーマンスレベル 1(PL0 ESSD の IOPS の 5 倍)。 |
| ストレージ容量 | デフォルトは 100 GB です。 |
ステップ 3:データベースアカウントの作成
エッジクラスター向け PolarDB コンソールへ移動し、新しく作成したエッジクラスターを選択します。
左側メニューで、設定項目および管理 > アカウント をクリックします。
アカウントの作成 をクリックします。セキュリティ要件に応じて、特権アカウント または 標準アカウント を選択してください。権限の詳細については、「アカウントの権限」をご参照ください。

ステップ 4:クラスターエンドポイントアドレスの取得
エッジクラスター向け PolarDB コンソールで、クラスターの詳細ページを開きます。
左側メニューで、データベース接続 をクリックします。
クラスターエンドポイント アドレスをコピーします。このエンドポイントは、クラスター内の全ノードに接続をロードバランスします。デフォルトポートは
3306です。

ステップ 5:データベースへの接続
前のステップで取得したクラスターエンドポイントおよびデータベースアカウントを使用して接続します。以下に、一般的な接続方法を 3 つ示します。
クライアントを使用する方法
本例では MySQL Workbench 8.0.29 を使用します。その他の MySQL 互換クライアントでも同様の手順で接続できます。
MySQL Workbench をインストールします。ダウンロードは「MySQL Workbench ダウンロードページ」から行ってください。
MySQL Workbench を起動し、Database > Connect to Database を選択します。
接続情報を入力し、OK をクリックします。

| パラメーター | 説明 | 例 |
|---|---|---|
| ホスト名 | クラスターエンドポイント。「データベース接続」をご参照ください。 | pc-2***.rwlb.rds.aliyuncs.com |
| ポート | クラスターエンドポイントのポート番号。デフォルトは 3306 です。 | 3306 |
| ユーザー名 | データベースアカウント。詳細については、「データベースアカウントの作成」をご参照ください。 | polardb_mysql_user |
| パスワード | データベースアカウントのパスワードです。 | Pass***233 |
CLI を使用する方法
サーバーに MySQL クライアントがインストールされている場合、以下のコマンドを実行します。
構文:
mysql -h <Endpoint> -P <Port> -u <Account> -p<Password>例:
mysql -h pc-2***.rwlb.rds.aliyuncs.com -P3306 -upolardb_mysql_user -pPass***233| パラメーター | 説明 | 例 |
|---|---|---|
-h | クラスターエンドポイントです。 | pc-2***.rwlb.rds.aliyuncs.com |
-P | ポート番号です。デフォルトポート 3306 を使用する場合は省略可能です。 | 3306 |
-u | データベースアカウントです。 | polardb_mysql_user |
-p | パスワードです。-p とパスワードの間にスペースを入れないでください。省略した場合、Enter password のプロンプトが表示された後にパスワードを入力します。 | Pass***233 |
アプリケーションを使用する方法
PolarDB for MySQL クラスターへの接続は、通常の MySQL データベースへの接続と同様です。エンドポイント、ポート、アカウント、パスワードを、ご自身のクラスターの値に置き換えてください。
Java
本例では、MySQL JDBC ドライバーを使用する Maven プロジェクトを想定しています。
pom.xmlに MySQL JDBC ドライバーの依存関係を追加します。<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 ライブラリを使用します。
PyMySQL をインストールします。
pip3 install PyMySQLクラスターに接続します。
<HOST>、<USER>、<PASSWORD>、<DATABASE>、<YOUR_TABLE_NAME>をそれぞれご自身の値に置き換えてください。import pymysql # 接続パラメーター host = '<HOST>' # クラスターエンドポイント port = 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 = "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 ドライバーを使用します。
ドライバーをインストールします。
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>" // クラスターエンドポイント dbPort := "3306" // デフォルトポート dbUser := "<USER>" // データベースアカウント dbPass := "<PASSWORD>" // データベースアカウントのパスワード dbName := "<DATABASE>" // 接続先のデータベース名 // DSN(Data Source Name)の構築 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) // クエリの実行 rows, err := db.Query("SELECT * FROM '<YOUR_TABLE_NAME>'") if err != nil { log.Fatalf("クエリの実行に失敗しました: %v", err) } defer rows.Close() }
次のステップ
アカウントの権限 — データベースアカウントの種類およびアクセス制御の管理
データベース接続 — その他の接続オプションおよびエンドポイントタイプを確認します
インメモリ列指向インデックス(IMCI) — 列ストア読み取り専用ノードでカラム型ストレージを活用し、分析クエリ(OLAP)を高速化
汎用仕様と専用仕様の選択方法 — ワークロードに最適なデータベースエディションを選択