ページ内トピック

MySQL HeatWave on AWSの概要

AWS上でデータベース・アプリケーションを開発していて、リアルタイム分析と非常に高速なクエリが必要な場合、それがAWS上のMySQL HeatWaveの構築目的でした。HeatWaveは、複雑なETLパイプラインを作成してデータを別の分析データベースに移動するのではなく、インメモリー・アクセラレーションを利用して、トランザクション・ワークロード(OLTP)のパフォーマンスに影響を与えることなく、リアルタイム分析(OLAP)機能を提供します。MySQL HeatWaveは、世界で最も人気のあるオープンソース・データベースを使用して、開発者がセキュアなクラウド・ネイティブ・アプリケーションを迅速に作成およびデプロイできるフルマネージド・サービスです。MySQL HeatWaveは、OracleのMySQL開発チームによって開発およびサポートされています。

MySQL HeatWaveの最もよい点の1つは、既存のトランザクション・データに対して直接分析を実行できることです。つまり、2つではなく1つのデータベースのみを管理する必要があり、ETLの重複の複雑さ、レイテンシ、コストなしにリアルタイムで安全な分析が得られるということです。

AWSで無料で始めるすぐにサインアップすると、300ドルの無料クレジットが提供され、AWS上のMySQL HeatWaveがどれほど素晴らしいかを確認できます。

  1. 国/地域、名および姓、および検証用の電子メール・アドレスを指定します。
    取引先サインアップのスクリーンショット1
  2. 「Verify my email」をクリックします。
  3. 電子メール検証メッセージのリンクをクリックすると、強力なパスワード、クラウド・アカウント名およびホーム・リージョンを指定するよう求められます。ホーム・リージョンとして「US East (Ashburn)」を選択します。ノート: ホーム・リージョンとしてIAD/Ashburnを選択しない場合は、リージョン制限の引上げをリクエストする必要があります。これを増やすと、アッシュバーン・リージョンにサブスクライブできるようになります(これはAWSのHeatWaveに必要です)。
    取引先サインアップのスクリーンショット2
  4. 住所と請求の詳細を入力して、登録プロセスを完了します。
  5. 契約に同意し、「Start my free trial」をクリックします。
    アカウントのサインアップ完了のスクリーンショット
  6. しばらくすると、アカウントが作成され、ログインできるようになります。
  7. メイン・ダッシュボードには、MySQL HeatWave on AWSの使用を開始するためのバナーが表示されます。「サービスに移動」をクリックします。
    MySQL HeatWave on AWSバナーの使用開始のスクリーンショット
  8. 次のページでは、アカウントを有料アカウントに変換するアップグレードをリクエストするオプションがあります。心配するな。あなたは何も請求されません...あなたは一緒に遊ぶために$ 300の無料クレジットを持っていることを覚えておいてください。
    AWSでのMySQL HeatWaveの設定- リクエスト・アップグレードのスクリーンショット
    ノート - アップグレード・プロセスを完了するには、すべてのバックエンド処理が完了するまで数分かかります。同じことを示すメッセージが表示された場合は、少し離れてください。目を少し休ませなさい。
  9. アップグレード・プロセスを完了したら、次のステップに進むことができます。
  10. ホーム・リージョンとしてAshburnを選択したため、ステップ3に進むことができ、AWSサービス制限でHeatWaveをリクエストできます。
  11. サービス制限を取得したら、AWSでHeatWaveを有効にできます。
  12. これで、AWSにMySQL HeatWaveクラスタを設定する準備ができました。

MySQL HeatWave on AWSは、OCIのIdentity and Access Managementシステムと統合されています。AWSでHeatWaveにサインアップすると、OCIログイン・ページが表示され、OCI Cloudアカウント(以前に作成したアカウント)でサインインする必要があります。シンプルにするために、請求はOCI内で管理および監視されます。

前提条件

  • Oracle Cloudアカウント名、管理ユーザー名およびパスワード
  • 互換性のあるブラウザ(Chrome 69+、Safari 12.1+、Firefox 62以上、またはOracle Jetが承認しているブラウザ)

概要

MySQL HeatWave on AWSを使い始めるには、AWSの経験もAWSアカウントも必要ありません。ただし、これらがあれば、AWSアプリケーションをMySQL HeatWaveと統合するためにできることに制限はありません。さあ行こう!

  1. AWSコンソールでMySQL HeatWaveにログインします。
  2. HeatWaveクラスタでのMySQL DB Systemの作成
  3. サンプル・データをロードします
  4. データベースに接続し、いくつかの問合せを実行します。
  5. 表をHeatWaveにロードし、さらに問い合せます。

ステップ

  1. AWS上のMySQL HeatWaveにログイン
    サインアップ・プロセスを完了してログインしたばかりの場合は、一歩先を行くことができます。それ以外の場合は、AWS上のMySQL HeatWaveランディング・ページに移動します。ここで、クラウド・アカウント名(ブラウザによってすでにキャッシュされている可能性があります)を入力し、「続行」をクリックします。
    次のページで、サインアップ・プロセス中に作成したユーザーIDとパスワードの入力を求められます。すべてが正しく入力されると、MySQL HeatWaveダッシュボードに表示されます。
  2. HeatWaveクラスタでMySQL DB Systemを作成
    これで、作業が開始されます。プロビジョニングを始めましょう。
    ダッシュボードで「MySQL DB Systemの作成」をクリックして、「MySQL DB SystemおよびHeatWaveクラスタの作成」ダイアログを表示します。この最初の部分は、基礎となるMySQLインスタンスおよびHeatWaveクラスタ自体の構成に重点を置いています。
    MySQL DB SystemおよびHeatWaveクラスタの作成のスクリーンショット- 不完全
    MySQL DB SystemおよびHeatWaveクラスタの作成のスクリーンショット- 不完全
    必要な詳細を入力します。
    1. 表示名
    2. 内容
    3. 管理者資格証明(これらを失わないでください)
    4. ハードウェア構成を選択します。シェイプによってvCPUコアの数とRAMの量が決まります。(つまり、MySQL.4.32GBは4 vCPU、32GB RAM)
    5. GiB...thisの開始データ記憶域サイズは、必要に応じて後で増やすことができます。
    6. 最新のDBバージョンを選択します(現在、最新のMySQLバージョン8.0.31のみがサポートされています)
    7. メンテナンス・ウィンドウの選択(自動または手動)
    8. アベイラビリティ・ゾーン(AZ)を選択します。ノート: 手動を選択した場合、物理AWS可用性ゾーンを選択するように求められます。既存のアプリケーションがAWSにデプロイされている場合は、AWSコンソールに表示される論理AZを、ここで選択した物理AZと照合する必要があります。
    9. ネットワークの詳細を指定します。MySQLインスタンスは、パブリック・エンドポイントを介してアクセス可能になります。デフォルトでは、イングレス接続は許可されません。「許可されたクライアント・アドレス」には、特定のパブリックIPアドレスを入力し、その後に/32を付ける必要があります。つまり、クライアント・コンピュータのパブリックIPが1.2.3.4の場合は、1.2.3.4/32と入力します。複数の値をセミコロンで区切って入力できます。この例では、デフォルトのポート3306および33060も使用します。
    10. 「Next」をクリックします
      MySQL DB SystemおよびHeatWaveクラスタの作成のスクリーンショット- 完了
    11. HeatWaveクラスタの表示名と説明を指定します。
    12. シェイプを選択します。これにより、各クラスタ・ノードで使用可能なメモリー量が決まります。
    13. 1から128までのクラスタ・サイズを選択します。この演習では、HeatWave.16GBシェイプとクラスタ・サイズを1にすることをお薦めします。
    14. 「作成」をクリックし、マジックが起こる間、しばらく座ってリラックスしてください。
  3. サンプル・データのロード
    すべてが稼働しているので、データをロードし、これをテストします。
    1. 新しいブラウザ・タブを開き、OCIコンソールにログインしてクラウド・シェルにアクセスします。資格証明の入力を求められた場合は、HeatWaveへのログイン時に入力したものと同じクラウド・アカウント、ユーザー名およびパスワードを使用します。
    2. OCI Cloud Shellを開く
      OCI Cloud Shellのスクリーンショット
    3. サンプル・データベース: airport-dbの取得
      wget https://downloads.mysql.com/docs/airport-db.tar.gz
      
      tar xvzf airport-db.tar.gz
    4. クラウド・シェル環境に関連付けられたパブリックIPアドレスを見つけます。これは、MySQL許可クライアント・アドレスに追加されます。
      dig +short myip.opendns.com @resolver1.opendns.com
    5. MySQLダッシュボードに戻り、MySQL DBインスタンスを編集します。/32のパブリックIPアドレスを許可されたクライアント・アドレスに追加し、「保存」をクリックします。
    6. クラウド・シェルでブラウザ・タブに戻り、MySQLシェル・セッションを開始します。DB Systemの作成時に指定された管理ユーザー名とパスワードが必要になります。以前にホスト名をコピーする必要もあります。
      mysqlsh username@hostname
      Enterキーを押すと、パスワードの入力を求められます。
    7. loadDumpを使用して、以前に解凍されたデータベースをインポートします。
      util.loadDump("airport-db", {threads: 16, deferTableIndexes: "all", ignoreVersion: true})
      このステップには数分かかる場合があります。今は、クイックスナックをつかんだり、天気予報を確認する絶好の機会です。
    8. インポートが完了したら、移動できます。いい仕事!
  4. いくつかの単純な問合せを実行します...ちょうどよい測定のために
    少し後でパフォーマンスをHeatWaveと比較します。MySQLシェルは非常に強力なツールですが、インタフェースはすべてのユーザー向けではありません。先に進む前に、楽しみのためにもう少しクエリを実行しましょう。これらのコマンドラインの筋肉を曲げる素晴らしい機会です。
    1. 問合せでさらにいくつかの行を取得してみませんか。
      select * from airplane limit 10000;
    2. よく見える?more...for Fun!
      mysql SELECT booking.price, count(*) FROM booking WHERE booking.price > 500 GROUP BY booking.price ORDER BY booking.price LIMIT 10;
      実行時間を記録します。
    3. '\d'と入力して[ENTER]を押し、MySQLシェルを終了します。
    4. HeatWaveに表をロードし、さらに問い合せます great...andを実行して、熱を上げる時期になりました。この最後のセクションでは、MySQL HeatWaveの素晴らしいパワーを解き放つことができます。
      1. MySQL HeatWaveダッシュボードのブラウザ・タブに戻ります。ワークスペース・ペインにナビゲートします。
      2. DBシステムを選択し、前に作成した管理ユーザー名とパスワードを入力します(保存しました)。[接続]をクリックし、数秒でドアを開きます。
      3. 接続したので、以前と同じ問合せを実行します。これは引き続きInnoDBに対して実行されますが、これは意図的なものです。
        mysql SELECT booking.price, count(*) FROM booking WHERE booking.price > 500 GROUP BY booking.price ORDER BY booking.price LIMIT 10;
        complete...andの準備にかかる時間に注意してください。
    5. HeatWaveタブで「データの管理」に移動し、airportdbを選択します。これにより、DB内のすべての表が選択されます。「HeatWaveにロード」ボタンをクリックします。
      「ヒートウェーブでのデータの管理」タブのスクリーンショット
      これにより、タスクの概要を示すウィンドウが表示され、完了までの推定時間が示されます。短時間で切り替えた後、「表のロード」をクリックします。
      HeatWaveへのMySQL Autopilotパラレル・ロード表のスクリーンショット
      新しい表をHeatWaveにロードすると、今後すべてのデータが自動的に追跡およびロードされます。あるいは、少なくともそのテーブルをアンロードするまでは。
      サイド・ノート: HeatWaveのパワーをしばらく必要としない場合は、いつでも停止してコストを抑えることができます。停止中は、ロードされたすべての表のデータDIFFSが引き続き追跡されます。HeatWaveが起動されると、ロードされた表が自動的に更新されます。
  5. 前の問合せを再度実行し、パフォーマンスの違いを確認します。
  6. より大きなデータセットやより複雑なクエリを自由に試してみてください。InnoDBとHeatWaveの間でパフォーマンス・ベンチマークをテストする場合は、アンロードしてから表を再ロードするだけです。
  7. それが私たちを最後まで導きます。created...andでリソースを終了、停止、または実行したままにしておくと、背中を軽く見ることができます。お疲れ様でした!

まとめ

これまで、AWSにMySQLデータベース・インスタンスとHeatWaveクラスタを作成し、データをロードして、システムを少し呼び出してきました。システム間でデータをETLしなくても、HeatWave...allで問合せを実行することで、パフォーマンスが大幅に向上しました。このパワーをすぐに活かせるため、引き続きパフォーマンスと機能を検討することをお薦めします。ただ、表面を傷付けました!

さらに知りたいですか?公開Slackチャネルのディスカッションにご参加ください。