Strapi Cloudにトライアル(Proプランの14日間が一部制限付きで無料)が追加されていました。
これまで有償プランしかなく、興味深い所が何点かあったのでレポートしていきます。
利用手順、基本的な操作
まずは何といってもアカウント登録から。
ログインはGoogleとGitHubアカウントの2つが選べますが、Strapi Cloudでアプリを動かすためにはGitHubからリポジトリを参照する必要があるので、ここでGoogleを選択してもGitHubの連携も必要になります。
登録するとこんな感じでシンプルなトップ画面になります。早速プロジェクトを作成してみます。
プロジェクト作成にはクレジットカードを登録する必要でした。このままフリートライアル期間を過ぎると自動的にProプランに替わり料金が発生するようです。
リージョンはアメリカとオランダが選べます。ここはまあ今後増えるかもしれませんね。
プロジェクトを作成する際にテンプレートから作るという選択肢がありましたが、せっかくなので自分で作成してGitHubにPushしました。
作成コマンド)
yarn create strapi-app my-project --quickstart
とりあえず初期状態のプロジェクトのまま何もいじらずpushしてみたのですが、ビルド&デプロイが成功しました。この辺はCodeBuildやGitHub Actions、AmplifyなどのWehコンソールのようなインターフェースと同じなので特段変わったところはありません。
自動的に付与されるStrapiのURLにアクセスするとお馴染みの画面が表示されます。
/adminにアクセスすると管理者アカウントを作成し、ローカル環境と同じように操作できるようになります。セットアップ編はこれで完了です。
検証
クラウド上でStrapiが動いているので気になったところを調べていきます。
管理画面について
幾つか気になる点が。
Settings -> Overviewに表示されるカレントプランが何故かEnterprise Edition(EE)になっています。ローカルで起動するとCommunity Edition(CE)と表記されています。
しかしEEで利用できるSSOの画面(/admin/settings/purchase-single-sign-on)にアクセスするとEEプランじゃないと利用できないと出てしまいます。つまり、Strapi Cloud側で環境変数ないし機能(コード)の一部が上書きされて動いているのかもしれません。
データベースについて
公式ドキュメントによるとDBはPostgreSQLを参照しているようです。新規のプロジェクトをデプロイしたのでローカルのSqliteが使われているはずですが、こちらも上書きされているようです。
もう少し詳しく調べてみます。コントローラを作成し、下記のような感じで環境変数を出力させます。
ビルド時のログと合わせて以下のことが分かりました。
・コンテナ上で動いている。実行ユーザーはroot
・プロジェクトのディレクトリは/home/app
・DB接続情報は環境変数に記載
・DBはDigitalOcean
・NodeJSのバージョンは18.18.2
・EE版に必要な環境変数STRAPI_LICENSEが付与されている
・S3のPresigned URLっぽい環境変数がある(メディアライブラリのファイルがS3に保存されているのかも)
DBは外からも接続は可能ですが、参照権限がなくテーブル等は表示できませんでした。
APIについて
管理画面のレスポンスヘッダーを見るとCloudFlareが前段に配置されているようです。
UsersPermissionsのAPI(/apiから始まるやつ)ではCache-Control:privateに、メディアライブラリの画像にはCache-Control:max-age=3600が付いてCloudFlareのキャッシュが有効になっています。
APIコールの利用料金はキャッシュが効いてる場合もカウントされるのかどうか、というのは特に記載がありませんでした。一般的にリクエスト回数はノーカンだと思っていますが、明記されていた方が安心感がありますね。
例えばmicroCMSの場合、エッジサーバーのキャッシュ利用時はカウントされないと記載があります。
その他
ドキュメントに記載されていた細かいポイントを挙げていきます。
・バックアップはProプランかチームプランのみ。リストアはサポートにメールして対応依頼する
・DBは環境変数を変えて外部DBを利用することもできる(非推奨)
・デプロイはリポジトリが更新されると自動的に行われる(ぱっと見た感じオフにできない)
・管理画面から手動デプロイも可
・StrapiCloudのプロジェクト(管理画面)は他のユーザーと共有できる
最後に
ビルド時がブラックボックス感があって気になりますが、ローンチしたてのサービスということを踏まえると今後に期待です。
SaaS型のヘッドレスCMSと違ってコードのメンテしないといけないので、ちょっと割高に感じますが、、円安のせいですかね( ´Д`)y━・~~