本番稼働に向けて
プロジェクトの開発が終わり、実際のユーザーに公開する時が来たと判断したら、プロジェクトが次のチェックリストを満たしているか確認しましょう。
- 安全性
- 予想される負荷への耐久性
- サービスを提供し続けられるかの可用性
セキュリティー
- RLSを有効にしていることを確認
- 妥当なポリシーでRLSを有効にしていないテーブルでは、すべてのクライアントがデータにアクセスして変更できます。これは、ほとんどのケースで期待する挙動ではないことでしょう。
- RLSの詳細はこちらを参照してください。
- 機密データを含んだテーブルのレプリケーションを有効にしている場合、行単位セキュリティー(RLS)を有効にし、行セキュリティー・ポリシーを設定
- Supabaseダッシュボードの「Authetication」→「Poilicies」ページでRLSを有効にし、セキュリティポリシーを作成します。
- Supabaseダッシュボードの「Database」→「Replication」ページでレプリケーション・テーブルを管理します。
- GitHubで2FA(2段階認証)を有効にします。GitHubアカウントにはSupabaseプロジェクトの管理者権限が与えられているため、強力なパスワードとU2FキーやTOTPアプリを使った2FAで保護する必要があります。
- 「Auth」→「Settings」ページでメール確認が有効になっていることを確認します。
- 認証メールにカスタムSMTPサーバーを使用し、信頼できるドメインからメールが来ていることをユーザーが確認できるようにします(アプリをホストしているドメンと同じが好ましいです)。SendGrid、AWS SESなどの主要なメールプロバイダーからSMTP認証情報を取得してください)。
- 自分が攻撃者としたら、どのようにサービスを悪用するかをよく考え、対策を検討しましょう。
- これらの一般的なサイバーセキュリティ上の脅威を確認します。
パフォーマンス
- 一般的なクエリパターンに対応する適切なインデックスを張っていることを確認
- Postgresのインデックスの詳細はこちらを参照してください。
pg_stat_statements
は、ホットまたはスローなクエリを特定するのに役立ちます。
- 負荷テストの実施(できればステージング環境で)
- k6のようなツールを使用すると、多くの異なるユーザーからのトラフィックをシミュレートできます。
- もしトラフィックの急増(大きなローンチをする場合など)が予想される場合はお知らせください。その際に、ローンチの詳細を記載したProject Refを私たち(support@supabase.io)へ送信してチームにお知らせください。私たちはあなたのプロジェクトを注意しておくようにします。
可用性
- 独自のSMTP認証情報を使用することで、認証メール送信の到達性を完全に制御できます(Auth → Settingsを参照)
- SMTP認証情報は、SendGridやAWS SESなどの主要なメールプロバイダーから取得できます。
- Supabaseが提供する認証メールのデフォルトの制限値は、1時間あたり30人の新規ユーザーですが、大規模な公開する場合は、これ以上の数が必要になる可能性があります。
- アプリケーションをFree tier(無料版)でご利用し、少なくとも7日に1回の問い合わせがないと判断された場合、Supabaseはサーバーのリソースを節約するためにアプリケーションを一時停止します。
- 一時停止されたプロジェクトは、Supabaseのダッシュボードから復元できます。
- Proにアップグレードすると、活動していないことを理由にプロジェクトが一時停止されることはありません。
- Free tierでは、データベースのバックアップをダウンロードできません。
- Supabase Pro Tierにアップグレードすると、support@supabase.ioでのメールによるサポートを受けることができます。
プラットフォーム・ステータス
Supabaseに障害が発生した場合、できるだけ早くお知らせしています。次のようなフィードバック・チャネルを提供しています。
- ステータス・ページ:status.supabase.com
- RSSフィード:status.supabase.com/history.rss
- Atomフィード:status.supabase.com/history.atom
- Slackアラート:SlackのビルトインのRSS機能を使用して、RSSフィード経由で更新を受信できます。
/feed subscribe https://status.supabase.com/history.atom
プラットフォームの安定性に対する当社のコミットメントの詳細については、SLAを必ずご確認ください。
次のステップ
このチェックリストは常に成長していますので、頻繁にチェックしてください。また、追加や修正を提案する場合は、GitHubにPRを作成してください。