コンテンツにスキップ

5. データベースとアドオン

ほとんどのアプリケーションは、ダイノで実行されるコードだけでなく、データベース、キャッシュ、メール配信、モニタリング、その他多くのサービスが必要です。BuildのアドオンエコシステムであるAddons.ioは、アプリと直接統合するマネージドサービスにワンクリックでアクセスできます。

このセクションでは、Addons.ioのデータベース提供と、マーケットプレイスからアドオンを検索、プロビジョニング、管理する方法を説明します。

Buildは、自社開発のアドオンを通じてフルマネージドのリレーショナルデータベースを提供しています。PostgreSQL向けのSchemaToGoとMySQL向けのAveToGoです。どちらも本番データベースの運用負担(プロビジョニング、パッチ適用、バックアップ、フェールオーバー)を処理するため、アプリケーションに集中できます。

SchemaToGoは専用インフラ上で動作するフルマネージドのPostgreSQLインスタンスを提供します。各データベースは適切な本番デフォルト設定、暗号化された接続、自動日次バックアップでプロビジョニングされます。

SchemaToGoデータベースをプロビジョニングするには、アプリのResourcesタブに移動し、Addonsセクションで「Add an addon」をクリックします:

表示されるアドオン一覧からSchemaToGoを選択します。これはPostgreSQLアドオンです:

次のページにSchemaToGoのすべてのプランが表示されます。SchemaToGoのプランは、開発・ステージング向けの共有インスタンスから、本番ワークロード向けの設定可能なリソースを持つ専用インスタンスまで揃っています。すべてのプランに暗号化された接続、自動バックアップ、標準のPostSQL拡張機能へのアクセスが含まれています。適切なプランを選択します:

最後に、プロビジョニングをカスタマイズするか、推奨設定のデフォルトのまま「Add this Addon」をクリックして完了します:

SchemaToGoデータベースをプロビジョニングすると、DATABASE_URLのConfig Varがアプリに自動的に追加されます。ほとんどのフレームワーク(Rails、Django、Expressなど)はこの変数を検出して自動的に設定するため、手動での接続設定は不要です。

AveToGoはSchemaToGoと同じ運用モデルで管理されたMySQLインスタンスを提供します。プロビジョニングは同様に機能します。アドオンをアタッチするとDATABASE_URLが自動的に設定されます。

どちらも本番環境対応の選択肢です。アプリケーションとチームがすでに使用しているものに基づいて選択してください。特に強い理由がなければ、PostgreSQLはBuild.ioでより一般的な選択肢であり、標準でより豊富な機能を持つ傾向があります。

Redisは、CacheToGoと呼ばれるマネージドアドオンとして、Addons.ioマーケットプレイスから、またはBuild UI内から直接利用できます。マネージドRedisインスタンスは、キャッシュ、セッション管理、バックグラウンドジョブキュー、pub/subなどのリアルタイム機能のための高速インメモリストレージをアプリケーションに提供します。

キャッシュ — 頻繁にアクセスされるデータ(データベースクエリ結果、レンダリングされたフラグメント、APIレスポンス)を保存して、プライマリデータベースの負荷を軽減しレスポンスタイムを短縮します。

セッションストレージ — 複数のダイノ間で高速な共有セッションアクセスのためのセッションバックエンドとしてRedisを使用します。複数のWebダイノを実行している場合は必須です。ファイルベースのセッションはインスタンス間で共有されないためです。

バックグラウンドジョブ — Sidekiq(Ruby)、Celery(Python)、BullMQ(Node.js)などのライブラリはRedisをジョブブローカーとして使用します。ワーカーはRedisキューからジョブを取得し、Webダイノとは独立して処理します。

リアルタイム機能 — RedisのPub/SubはライブNotificationやチャットなどの機能をサポートします。Action Cable(Rails)やSocket.IO(Node.js)を使用している場合、Redisがダイノインスタンス間のメッセージブローカーとして機能します。

CacheToGo Redisインスタンスをプロビジョニングするには、アプリのResourcesタブに移動し、Addonsセクションで「Add an addon」をクリックします:

表示されるアドオン一覧からCacheToGoを選択します。これはRedisアドオンです:

次のページにCacheToGoのすべてのプランが表示されます。適切なプランを選択します:

最後に、プロビジョニングをカスタマイズするか、推奨設定のデフォルトのまま「Add this Addon」をクリックして完了します:

5.3 アドオンマーケットプレイス

Section titled “5.3 アドオンマーケットプレイス”

Addons.ioはBuildのサードパーティおよびファーストパーティのマネージドサービスのマーケットプレイスです。データベース、キャッシュ、モニタリング、ロギング、メール、検索など、アプリケーションが依存するサービスを一箇所で見つけ、プロビジョニング、管理できます。

ダッシュボードのアプリのResourcesタブから利用可能なアドオンを閲覧するか、Addons.ioを直接訪問してください。各アドオンのリストには説明、利用可能なプランと価格、開始するためのドキュメントが含まれています。

すべてのアドオンは同じ統合パターンに従います:

  1. アドオンをプロビジョニングしてアプリにアタッチします。
  2. アドオンプロバイダーがリソース(データベース、モニタリングエージェント、メールサービスアカウントなど)を作成します。
  3. コードが必要とする認証情報または接続詳細と共に1つ以上のConfig Varがアプリに設定されます。
  4. アプリが新しいConfig Varで再起動します。

このモデルにより、コードにサービス認証情報をハードコードする必要がありません。プロバイダーを変更したりプランをアップグレードしたりしても、Config Varが更新され、次回の再起動時にアプリが新しい値を使用します。

ほとんどのアドオンは複数のプランを提供しています。開発向けの無料プランから、専用リソース、より高い制限、SLA保証を持つ本番プランまであります。プランはいつでも変更できます。アップグレードとダウングレードはすぐに有効になります。

5.4 プロビジョニング済みアドオンとバックアップの管理

Section titled “5.4 プロビジョニング済みアドオンとバックアップの管理”

すべてのアドオンは、プロビジョニング済みアドオンの詳細ページから「Open Dashboard」オプションをクリックして管理できます:

アドオンダッシュボードには、アドオンの状態を表示し、アドオンのカスタマイズの主要な場所となる、さまざまな有用な情報と設定オプションがあります:

ページをさらに下にスクロールすると、このアドオンのすべてのバックアップの一覧が表示されます。1つをダウンロードするか、新しいアドホックバックアップを即座に作成するオプションがあります。Build.ioのマネージドデータベースには自動バックアップが含まれているため、データ損失からの回復、問題のあるマイグレーションのロールバック、または本番データをステージング環境にクローンすることができます:

ページの下部には、さらなるカスタマイズのための豊富な高度なカスタマイズオプションがあり、必要に応じて高度なパフォーマンス/セキュリティの調整ができます: