🍣
Amazon LightsailでStrapiを動かす(SSL, 独自ドメイン)
概要
Amazon LightsailでStrapiを動かす機会がありましたので、その備忘録です。以下の記事を参考にしました。
インスタンス
Node.jsを選択します。
メモリは1GB以上のものを選択してください。Lightsail上でビルドする場合、メモリ不足でエラーが発生します。
SSL、独自ドメイン
以下を参考にしてください。
Static IPを付与して、Route 53で独自ドメインを設定し、以下を実行します。
sudo /opt/bitnami/bncert-tool
ProxyPassの設定
(より適切な記述箇所があるかと思いますが、)以下を追記します。
/opt/bitnami/apache2/conf/httpd.conf
# 末尾に以下を追加
ProxyPass / http://localhost:1337/
ProxyPassReverse / http://localhost:1337/
apacheの再起動
sudo /opt/bitnami/ctlscript.sh restart apache
Strapi のインストール
cd /opt/bitnami/apache2/htdocs/
npx create-strapi-app@latest backend --quickstart
アプリが起動するので、Ctrl+Cなどで一旦停止します。
pm2
pm2のインストール
sudo npm install pm2 -g
server.jsの作成
cd /opt/bitnami/apache2/htdocs/backend
vi server.js
/opt/bitnami/apache2/htdocs/backend/server.js
const strapi = require('@strapi/strapi');
strapi(/* {...} */).start();
ビルド
cd /opt/bitnami/apache2/htdocs/backend
NODE_ENV=production npm run build
サーバの起動
NODE_ENV=production pm2 start server.js --name strapi
以下のように、strapiを起動できました。
その他
- サービスを停止する
pm2 stop strapi
- コンテンツタイプを編集する
developモードで立ち上げる必要があるため、以下を実行する。
npm run develop
編集が完了したら、ビルドとpm2の起動を再度実行する。
cd /opt/bitnami/apache2/htdocs/backend
NODE_ENV=production npm run build
NODE_ENV=production pm2 start server.js --name strapi
まとめ
今回はLightsailでdevelopmentとproductionモードの切替を行いましたが、以下の記事にあるように、Github Actionsを使った方法もあるようなので、今後以下を参考にしてみたいと思います。
Discussion