いまさらですが、2023/5 に東京リージョンにやってきた MySQL HeatWave on AWS の試用を始めたので、メモ的に記録を残していきます。
2023/7/23 時点の情報です。
記事中で未実装・制約ありと記している機能が後日実装される可能性もあります。
MySQL HeatWave on AWS とは
MySQL HeatWave は、Oracle Cloud(OCI)が提供する MySQL データベースのマネージドサービスです。
通常の MySQL に インメモリ&カラムナ型の分散データベース をセカンダリエンジンとして追加することで、MySQL が苦手だった分析クエリの高速処理が可能になっています。
また、機械学習プラットフォームとしての機能もあります(HeatWave AutoML)。
MySQL HeatWave on AWS は、 MySQL HeatWave を AWS 上のリソースとして構築する マネージドサービスです。
OCI など外部のリソースとして構築する場合、AWS 上の EC2・Fargate などからアクセスするには VPN などが必要になり、セキュリティ(可用性を含む)やレイテンシの面で問題がありました。
MySQL HeatWave on AWS を使うと、このあたりの問題を解決できます。
(注:資料ダウンロードには登録が必要です)
MySQL HeatWave on AWS を使うには、OCI の契約が必要 です。
AWS Marketplace を通じて提供されるサービスではない点に注意してください。
MySQL HeatWave on AWS を使ってみる
AWS 上 の MySQL HeatWave コンソールにログイン
まず OCI コンソールにログインし、「AWS 上 の MySQL HeatWave」 を選択します。
無料アカウントの場合、MySQL HeatWave on AWS を利用できないので、有料アカウントへのアップグレードが必要です。
なお、有料アカウントにアップグレードしても 30 日間無料利用分の対象に含まれます。
利用したいリージョン(日本東部(東京) など)を 「サブスクライブ」 し、「AWS 上 の MySQL HeatWave コンソールを開く」 をクリックします。
Cloud Account Name を入れて 「Continue」 で進みます。
MySQL DB と HeatWave Cluster を作成
「Create MySQL DB System」 をクリックします。
画面右側に設定項目が表示されるので入力・選択していきます。
今回は最低サイズのシェイプを選択しました。
「Networking」 でアクセス元(クライアント)のパブリック IP アドレス・ポート番号を指定します。
現時点では PrivateLink をサポートしておらず、アクセスが Public IP アドレス経由になる 点に注意してください。
AWS からのアクセスの場合、ネットワーク自体は AWS 内を通りますが、クライアント(EC2 など)から Public IP アドレス宛てに(NAT ゲートウェイなどで)アクセス可能にしておく必要があります。
「Next」 で進みます。
HeatWave Cluster の設定画面が表示されるので入力・選択していきます。
こちらも今回は最低サイズにしました。
「Create」 で MySQL DB と HeatWave Cluster を作成します。
しばらく待ちます。
「State」 と 「HeatWave State」 が Active になったら作成完了です。
EC2 からアクセス
MySQL DB の 「Details」 画面で 「Hostname」 を調べます。
EC2 からアクセスしてみます。
$ mysql -u 【ユーザー名】 -h 【hostname の URL】 -p
Enter password: 【パスワードを入力】
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 81
Server version: 8.0.33-u2-cloud MySQL Enterprise - Cloud
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| mysql_autopilot |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.01 sec)
接続できました!
MySQL DB・HeatWave Cluster を停止
MySQL DB および HeatWave Cluster は停止しておくこともできます。
一覧画面から DB を選択するか、DB の Details 画面を表示して 「Stop」 をクリックします。
シャットダウンタイプが選択できます。マネージドの MySQL を使っている方には馴染みが薄いかもしれませんが、innodb_fast_shutdown
の指定ですね。
いずれかを選択して(デフォルトは Fast) 「Stop」 をクリックします。
しばらくすると 「State」 と 「HeatWave State」 が Inactive になります。
主な制限事項・制約など
MySQL Server との比較でサポート外の機能が公式リファレンスに記載されています。
- 3.1.2.4 Unsupported MySQL Server Features(MySQL HeatWave on AWS)
その他、制限事項・制約などが以下に記載されています。
- 3.1.2.7 MySQL HeatWave on AWS Service Restrictions(MySQL HeatWave on AWS)
- 3.1.2.8 MySQL HeatWave on AWS Service Limitations(MySQL HeatWave on AWS)
個人的には、最後の
MySQL HeatWave on AWS does not support inbound replication.
インバウンドレプリケーションがサポートされていない点が大きなネックと感じます。
AWS 上の RDS for MySQL / Aurora MySQL からレプリケーションできないと、RDS / Aurora との併用や RDS / Aurora からの(停止時間短縮を考慮した)移行に支障があります。
RDS / Aurora と併用しない前提で考えると、MySQL DB の HA 構成が(まだ)サポートされていない点もネックになりそうです。
また、シェイプサイズや HeatWave Cluster 構成を途中で変更できない点もスケーラビリティの観点で大きなネックですね。
- 3.2 Creating a DB System(MySQL HeatWave on AWS)
MySQL HeatWave on AWS does not support changes to the MySQL shape. To use a different shape requires a new DB System with the new shape. Restore the data from a backup of the old DB System to the new DB System.
ストレージサイズを変更する場合も、現状は Backup & Restore(または Export & Import)による移行が必要です。
- 3.4.7 Increasing DB System Storage(MySQL HeatWave on AWS)
DB System storage can be increased through a backup and restore operation or through an export and import operation.
次回
(2) ではこちらのチュートリアルに沿って、サンプルデータベースを構築して試してみます。
- 5. サンプルデータベースの構築(OCI チュートリアル・その 10 - MySQL で高速分析を体験する)
2023/7/23 追記:
記事を書きました。