🍣

Amazon LightsailでStrapiを動かす(SSL, 独自ドメイン)

2023/04/11に公開

概要

Amazon LightsailでStrapiを動かす機会がありましたので、その備忘録です。以下の記事を参考にしました。

https://zenn.dev/holykzm/articles/1e54cc25207657

インスタンス

Node.jsを選択します。

メモリは1GB以上のものを選択してください。Lightsail上でビルドする場合、メモリ不足でエラーが発生します。

SSL、独自ドメイン

以下を参考にしてください。

https://zenn.dev/nakamura196/articles/5772d6c918508a#独自ドメインの付与

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を使った方法もあるようなので、今後以下を参考にしてみたいと思います。

https://datasciencedude.com/how-to-deploy-strapi-to-aws-lightsail-with-github-actions

Discussion