Last Updated: 2022-02-03

分散SQLデータベースとは?

YugabyteDBはクラウドネイティブなアプリケーションに最適な、100%オープンソースの分散SQLデータベースです。分散SQLとは、従来のデータベースが単一ディスクへの書き込みを前提としたモノリシックなアーキテクチャだったのに対し、分散アーキテクチャ、つまり複数ノードへの書き込みや読み取りを前提とした様々な仕組みを提供しています。

このハンズオンでは、YugabyteDB Managedを使用して、使い慣れたSQLを使って簡単にデータベースやテーブルを作成したり、データの書き込みや読み取りができることを確認します。

ハンズオンで実施すること

このハンズオンでは、YugabyteDB Managedの無料枠を使用して単一ノードクラスタを作成します。以下の内容を実施します:

ハンズオンで学習すること

ハンズオン実施に必要なもの

YugabyteDB ManagedはフルマネージドのDBaaS (データベース・アズ・サービス)です。サインアップしてアカウントを作成することで、すぐにデータベースを使い始めることができます。初めてYugabyteDB Managedを使用する方は、以下の手順に従ってアカウントを作成してください。

  1. ブラウザで YugabyteDB Managedのサインアップページにアクセスし、アカウントを作成してください。

5768cf0371033212.png

  1. 入力したEメールアドレス宛に、確認のメールが届きます。[Verify Email] ボタンをクリックしてください。

99ef95b51b691889.png

  1. ログイン画面にリダイレクトされます。設定したユーザーIDとパスワードでログインしてください。ログインが成功したら以下のような画面が表示されます。

89ae48e00d977444.png

以上で、YugabyteDB Managedへのサインアップは完了です。

YugabyteDB Managedでは、アカウントにつき1つ、期間の限りなく使用可能な1ノードのクラスタを作成可能です。高可用性やスケールアウトといった本番運用に必要な機能は試すことができませんが、Postgres互換のYSQLやCassanrda互換のYCQLを試すなど、チュートリアルに最適なSandbox環境として使用することができます。

ここではYugabyteDB Managedの無料枠を使用して、1ノードのクラスタを作成します。

  1. YugabyteDB Managedのアカウントにログインします。
  2. 左側のメニューから[Clusters]を選択し、[Add Cluster]ボタンをクリックしてください。
  3. クラスタ作成のウィザードが開始します。左側のSandboxの下にある [Choose]ボタンをクリックしてください。

944159f66e92fd45.png

  1. Cluster settingsページが表示されます。クラスタの名前には適当な名前が自動生成されます。お好きなクラウド・プロバイダとリージョンを選択して、[Next] をクリックしてください。

c41d0af122463cf9.png

  1. Network Accessページが表示されます。[Add Current IP Address]をクリックして、自分の端末のIPアドレスをアクセス許可リストに追加してください。

ed6d060c32405952.png

  1. [Next]をクリックします。
  2. DB Credentialsページが表示されます。ユーザー名とパスワードは自動設定されます。設定をカスタマイズしたい場合は、[Add your own credentials]をクリックしてユーザー名やパスワードを自分で設定します。 [Download credentials]ボタンをクリックして、アクセス情報のファイルをローカルに保存してください。

e4e6075adfd218ec.png

  1. [Create Cluster]ボタンをクリックします。プロビジョニングが開始され、DBクラスタが開始するまでに数分かかります。

b767e2af29c4f507.png

  1. 起動が完了するとクラスターのダッシュボードが表示されます。

48aa512f673d3a4.png

以上で、クラスタの作成は完了です。

YugabyteDB Managedのクラスタにアクセスするには、いくつかの方法があります。

このセクションでは、Cloud Shellを使用したアクセスを行います。

  1. 前のステップで作成したクラスタのダッシュボードを開きます。
  2. クラスタのダッシュボードの右上にある、[Coneect]ボタンをクリックしてください。
  3. クラスタに接続するための方法が複数表示されます。一番上にある[Launch Cloud Shell]ボタンをクリックしてください。

731b0fefd345f245.png

  1. データベース名やユーザー名を確認し、[Confirm]ボタンをクリックしてください。

c51e511aac00fb57.png

  1. 新しいブラウザ・タブが開き、クラスタにアクセスするためのシェルが表示されます。クラスタ作成時にダウンロードしたcredentialファイルに記載された、パスワードを入力してください。

cff23d35348c2544.png

  1. パスワードが認証されると、あらかじめ作成されたyugabyteデータベースに接続し、YSQLの入力モード (yugabyte=>) になります。

これで Cloud Shell からクラスタにアクセスすることができました。

YugabyteDB Managedでは、初めて使用する開発者向けのチュートリアルが提供されています。ここでは、チュートリアルのガイドにそって、前のステップで接続したyugabyteデータベースにテーブルを作成します。

  1. 前のステップでyugabyteデータベースに接続した、Cloud Shellのブラウザ・タブが開いていることを確認してください。
  2. 左側に表示された[YugabyteDB Quick Start Guide]から、[Step 1. Create a Table]をクリックしてください。チュートリアルの手順がCloud Shellの下側に表示されます。

3c3ce4326fa5e8be.png

  1. Step1では、部門(dept)テーブルを作成します。テーブルを作成するSQLをCloud Shellに直接入力するか、SQLのボックス右上にある[Copy]ボタンをクリックして貼り付ける、もしくは、[Run]ボタンをクリックして、SQLを実行してください。[CREATE TABLE]のメッセージが表示されたことを確認します。

3a6d432f2731fb40.png

  1. 同様に、Step2では従業員(emp)テーブルを作成します。[CREATE TABLE]のメッセージを確認してください。

dea12a6bbb2d6723.png

  1. チュートリアル手順の上部にある[Next Step >]ボタンをクリックするか、左側のガイドから[Step 2. Insert Data]をクリックして、データを挿入する手順を表示します。

3d7721a5aa45a0d5.png

  1. 部門(dept)テーブルにデータを挿入します。[Step1]に表示されたSQLを実行してください。4行のデータが挿入され、[INSERT 0 4]のメッセージが表示されます。

57c6ae71f99214e8.png

  1. 同様に、従業員(emp)テーブルにデータを挿入します。[Step2]に表示されたSQLを実行してください。14行のデータが挿入され、[INSERT 0 14]のメッセージが表示されるはずです。

17f0e2c2c966e6db.png

  1. データの挿入が完了すると、右側のウィンドウにチュートリアルへのリンクが表示されます。[Let's get started with the tutorials ->]をクリックしてください。

d9dd157ff1c40707.png

  1. 左側ウィンドウにYSQLのチュートリアルが表示されます。先ほど作成したテーブルを使用して、様々なSQL機能を試すことができます。このハンズオンでは実施しませんが、お時間のある時に是非やってみてください。

996e2b93101ac291.png b4a7c9b265d07362.png 5dc20d13d1f4d979.png

これでテーブル作成とデータ挿入のステップは完了です。

YugabyteDBは、PostgreSQL互換のYSQLと、Cassandra互換のYCQLをAPIとして提供しています。ここでは、Cassandra互換のYCQLを使用して、NoSQLデータベースの操作ができることを確認します。

  1. YugabyteDB Managedのクラスタのダッシュボードを開き、右上にある [Connect] ボタンをクリックします。
  2. クラスタに接続するための方法が複数表示されます。一番上にある[Launch Cloud Shell]ボタンをクリックしてください。

731b0fefd345f245.png

  1. API TYPEに [YCQL] を選択して、[Confirm]ボタンをクリックしてください。

ea230cf9157e25cf.png

  1. クラスタ作成時に設定したパスワードを入力し、クラスタに接続します。 describe keyspaces と入力して、既存のキースペースを確認してください。

646558b7319468ad.png

  1. 新しいキースペースを作成します。キースペースは、クラスタの複数ノードにまたがってテーブルやインデックスなどYCQLの様々なオブジェクトを保持し管理します。

create keyspace ks_catalog;

use ks_catalog;

と入力して、Cloud Shellの入力先が [admin@ycql:ks_catalog>] に変わったことを確認してください。

66327b6d726e371c.png

  1. キースペース ks_catalog 内に、テーブルを作成します。
create table tbl_music (
    artist text primary key,
    song text,
    year int
);
  1. 続いて、作成したテーブルにデータを挿入してみましょう。
insert into tbl_music (
    artist, 
    song, 
    year) 
values
    ‘Beatles',
    ‘Let it be',
    1970);
  1. select * from tbl_music; と入力し、データの読み取りを確認してください。
  2. exit; と入力し、データベースとの接続を終了します。Cloud Shellのブラウザ・タブを閉じてください。

以上で、YCQLのAPIによるデータベースのアクセスは完了です。

お疲れ様でした。YugabyteDB Managed入門ハンズオンは、これで終了です。

YugabyteDB Managedは、データベースを導入するハードウェアやOSを準備しなくても、数ステップの操作で使い始められるマネージドのデータベース・サービスです。

YugabyteDB Managedでは、CLIやGUIのツールを使って、使い慣れたSQLで操作できることを確認できたと思います。

次におすすめのハンズオン

以下のハンズオンも実施してみてください。

参考資料