【無料】Cloud Spanner の無料トライアルが一般提供になりました!

Cloud Spanner が無料で試せますよ!!!

ウィスキー、シガー、パイプをこよなく愛する大栗です。

Cloud Spanner のアップデート情報を見ていたら、Cloud Spanner の無料トライアル インスタンスの一般提供という情報があったためレポートします!

Spanner release notes September 08, 2022

Cloud Spanner

Cloud Spanner は Google Cloud 独自のデータベースエンジンを持つ分散 SQL で、いわゆる NewSQL です。リージョンをまたがった Active-Active な超高可用性構成(SLA 99.999% が可能)を実現でき、読み込みだけでなく書き込みもスケールアウトが可能というリレーショナルデータベースです。パフォーマンスのチューニングなどで、キー設計など一般的なリレーショナルデータベースとは異なる箇所があるので、使い始めるときには学習や検証が必要です。

無料トライアル

Cloud Spanner を使い始める時に学習や検証が必要なのですが、有料のサービスであるためお金がかかり手軽には行なえませんでした。

今回発表された Cloud Spanner の無料トライアル インスタンスを使用すると、最大 90 日間無料で Cloud Spanner を学習したり調査することができます。無料トライアル インスタンスの詳細は以下のドキュメントを参照ください。

About Cloud Spanner free trial instances

作成資格

アクティブな Cloud 請求先アカウントがあり、プロジェクトで Cloud Billing が有効になっている場合、Cloud Spanner の無料トライアル インスタンスを作成できます。

開始方法

無料トライアル インスタンスを作成すると、Cloud Spanner の無料トライアル インスタンス期間が自動的に開始されます。

継続期間

無料トライアル インスタンスは次のいずれかが発生すると終了します。

  • 無料トライアルインスタンスを作成してから90日が経過した
  • 無料トライアルインスタンスを有料インスタンスにアップグレードした
  • 無料トライアルインスタンスを削除した

90日の無料トライアル期間後にアップグレードしない場合、インスタンスはリクエストの処理を停止して30日間の猶予期間になります。猶予期間中はインスタンスのデータは保持され無料トライアル インスタンスをアップグレードできます。30日間の猶予期間終了までに無料トライアル インスタンスをアップグレードしない場合はインスタンスとデータが削除されます。

SLA

SLA は無料トライアル インスタンスに適用されません。無料トライアル インスタンスは Cloud Spanner の学習と調査を目的としています。無料トライアル インスタンスで本番プリケーションを実行することは推奨されません。

利用可能なインスタンス構成

以下のリージョン構成で無料トライアル インスタンスを作成できます。

  • アメリカ: us-east5 (コロンバス)
  • ヨーロッパ: europe-west3 (フランクフルト)
  • アジア: asia-south2 (デリー), asia-southeast2 (ジャカルタ)

制限事項

無料トライアル インスタンスには以下の制限事項があります。

  • プロジェクトのライフサイクルごとに無料トライアル インスタンスが 1 個許可されます
  • Cloud 請求先アカウントごとに最大 5 個の無料トライアル インスタンスが許可されます。
  • 無料トライアル インスタンスごとに最大 5 個のデータベースが許可されます。
  • 90日間の無料トライアル インスタンス期間が提供されます。
  • SLA は提供されません。
  • 全ての Cloud Spanner の割り当てと上限が適用されます。、
  • 1個の無料トライアル インスタンスは、10 GB のストレージ容量と、学習目的に必要な限られたコンピューティング容量を提供します。無料トライアル インスタンスを変更してストレージまたはコンピューティング容量の制限を増やすことはできません。有料インスタンスにアップグレードすれば、無料トライアル インスタンスのストレージとコンピュート容量を増加できます。
  • 無料トライアル インスタンスはバックアップとリストアをサポートしていません。
  • 無料トライアル インスタンスは一部のリージョンのみで利用できます。マルチリージョン構成は利用できません。

無料トライアル インスタンスは評価目的で使用します、次の使用には適していません。

  • 本番に関係する活動
  • Cloud Spanner の性能評価や負荷テスト
  • 継続的なテストや開発

パフォーマンス

Cloud Spanner の無料トライアル インスタンスは以下のベストプラクティスに従った場合、1秒あたり約 500 QPS の読み取りまたは 100 QPS の書き込み(1 レコードあたり 1KB のデータで単膣業を書き込む)を提供できます。

  • ホットスポットやそれ以外のパフォーマンス問題を防ぐスキーマ設計を行う。
  • 効率的なクエリを作成して、他の SQL のベストプラクティスに従う。
  • 高優先度の CPU 使用率の合計を 65% 未満に抑えることが推奨される。
  • Cloud Spanner インスタンスと同じリージョンにコンピュートリソースを配置して、読み取りと書き込みのレイテンシを最適化する。

以下を使用して無料トライアル インスタンスのパフォーマンスの監視や最適化ができます。

パフォーマンスを向上させるには無料トライアル インスタンスから有料インスタンスへアップグレードしてコンピュート容量をスケールアップします。

やってみた

無料トライアル インスタンスを Cloud Console と CLI で作成してみます。

前提として、 Cloud 請求先アカウントが設定されているプロジェクトを使用します。

Cloud Console で作成する

Cloud Spanner のコンソールを開き、START A FREE TRIAL(無料トライアルを開始)をクリックします。

Start a Free Trial

Instance name(インスタンス名)とInstance ID(インスタンス ID)を入力して、Choose a configuration(構成を選択)で起動するリージョンを選択します。ここでは asia-southeast2(ジャカルタ)を選択しました。そしてCREATE FREE TRIAL INSTANCE(無料トライアル インスタンスを作成)をクリックします。

ここではCLOSE(閉じる)をクリックします。

CREATE DATABASE(データベースを作成)をクリックします。

Database name(データベース名)を入力して、Google Standard SQLを選択してCREATEをクリックします。

CREATE TABLE()をクリックします。

以下のクエリを入力して、SUBMITをクリックしテーブルを作成します。

CREATE TABLE Singers (
  SingerId   INT64 NOT NULL,
  FirstName  STRING(1024),
  LastName   STRING(1024),
  SingerInfo BYTES(MAX),
  BirthDate  DATE
) PRIMARY KEY(SingerId);

Singersテーブルをクリックします。

Singers テーブルのData(データ)をクリックします。

INSERT()をクリックします。

以下のクエリを入力してRUN()をクリックします。

  -- Add new values in the VALUES clause in order of the column list.
  -- Each value must be type compatible with its associated column.
INSERT INTO
  Singers (SingerId,
    BirthDate,
    FirstName,
    LastName,
    SingerInfo)
VALUES
  (1, -- type: INT64
    NULL, -- type: DATE
    'Marc', -- type: STRING(1024)
    'Richards', -- type: STRING(1024)
    NULL -- type: BYTES(MAX)
    );
  -- Change values in the WHERE condition to match the inserted row.
SELECT
  *
FROM
  Singers
WHERE
  SingerId=1;

データが1行挿入されます。

Backup/Restore(バックアップ / 復元)を表示すると無料トライアル インスタンスではバックアップ機能が利用できない旨が表示されます。

CLI で作成する

ここでは Cloud Shell で gcloud コマンドを実行します。

Cloud Shell 以外で実行する場合は、gcloud config set projectコマンドで Cloud 請求先アカウントが設定されているプロジェクトを選択して、gcloud auth application-default loginコマンドで認証しておきます。

以下のコマンドを実行します。--configフラグでリージョン構成を選択して、--instance-typefree-instanceを設定して無料トライアル インスタンスを選択します。ここではインスタンス ID をfree-trial-1とします。

$ gcloud spanner instances create free-trial-1 --config=regional-asia-southeast2 \
    --instance-type=free-instance --description="free-trial-1"
Creating instance...done.

以下のコマンドを実行してデフォルトインスタンスを設定します。

$ gcloud config set spanner/instance free-trial-1
Updated property [spanner/instance].

以下のコマンドを実行してexample-dbデータベースを作成します。

$ gcloud spanner databases create example-db
Creating database...done.

以下のコマンドでテーブルを作成します。

$ gcloud spanner databases ddl update example-db \
  --ddl='CREATE TABLE Singers (
  SingerId   INT64 NOT NULL,
  FirstName  STRING(1024),
  LastName   STRING(1024),
  SingerInfo BYTES(MAX),
  BirthDate  DATE
) PRIMARY KEY(SingerId)'
Schema updating...done.

以下のコマンドを実行してレコードを挿入します。

$ gcloud spanner rows insert --database=example-db \
      --table=Singers \
      --data=SingerId=1,FirstName=Marc,LastName=Richards
commitTimestamp: '2022-09-09T14:04:15.496185Z'

以下のコマンドを実行してレコードを確認します。

$ gcloud spanner databases execute-sql example-db \
    --sql='SELECT SingerId, FirstName, LastName, SingerInfo, BirthDate FROM Singers'
SingerId: 1
FirstName: Marc
LastName: Richards
SingerInfo:
BirthDate:

有料インスタンスにアップグレードする

Cloud Console で対象インスタンスを選択して、EDIT INSTANCE(インスタンスを編集)をクリックします。

すぐにアップグレードするためにUpgrade nowを選択してSAVEをクリックします。もしトライアル終了後にアップグレードする場合にはAutomatically upgrade after my trial expires(トライアル終了後に自動的にアップグレード)を選択します。

ここではUnit(単位)でProcessing unitsを選択してQuantity(数量)で最小の 100 を入力しました。

Processing unitsが 100 になっていることが分かります。

Backup/Restore(バックアップ / 復元)を表示すると今度は機能が利用可能になっています。

CLI で有料インスタンスにアップグレードする場合には、以下のコマンドを実行します。

$ gcloud spanner instances update free-trial-1 --instance-type=provisioned
Updating instance...done.

インスタンスを確認すると、freeInstanceMetadataがアップグレードした日時になり、processingUnitsフィールドが増えています。

$ gcloud spanner instances describe free-trial-1
config: projects/PROJECT_ID/instanceConfigs/regional-asia-southeast2
createTime: '2022-09-09T13:47:34.463670Z'
displayName: free-trial-1
freeInstanceMetadata:
  upgradeTime: '2022-09-09T14:54:38.839835Z'
instanceType: PROVISIONED
name: projects/test-action-01-290b1/instances/free-trial-1
processingUnits: 100
state: READY
updateTime: '2022-09-09T14:54:38.839835Z'

さいごに

Cloud Spanner は元々ノード単位での増減しかできませんでしたが、処理ユニットで 100 ごとにリソースを増加できるようになり検証を行いやすくなっていました。今回のアップデートにより無料でのトライアルが可能になったため、Cloud Spanner の学習や検証がよりやりやすくなりました。そのため、より一層 Cloud Spanner の利用が促進されるのではないでしょうか。Google Cloud のミッションクリティカルな環境でリレーショナルデータベースを使用する場合には Cloud Spanner が必須なので、無料トライアルで学習や検証をして準備をしておきましょう。