Amazon Lightsail
AWS Lightsail に Collections プロジェクトをデプロイするためのガイドです。このガイドでは、コストを最適化するために Let's Encrypt 証明書を使用しています。
Amazon Lightsail のインストール要件
- Amazon AWS (opens in a new tab) アカウントを持っている必要があります。
- PostgreSQL データベースが必要です。
Lightsail インスタンスを作成する
Amazon Lightsail (opens in a new tab) にログインし、以下環境のインスタンスを作成します。
- Linux/Unix + Nginx
- 2 GM RAM
Collections は、管理インターフェイスを構築してデプロイするために、少なくとも 2GB の RAM を必要とします。
静的 IP アドレスをアタッチする
Lightsail のインスタンスにアタッチされる IP アドレスは動的で、インスタンスが再起動されるごとに変わります。公式の AWS ドキュメント (opens in a new tab)を参考に静的 IP アドレスをアタッチします。 アタッチ後は、静的 IP アドレスにアクセスしてウェルカムページが表示されることも確認しておきましょう。
独自ドメインをルーティングする
静的 IP アドレスがアタッチされたら、公式の AWS ドキュメント (opens in a new tab)を参考に、example.com
などのドメイン名から Amazon Lightsail インスタンスにルーティングさせます。
または、すでに Route53 でドメインをホストされている場合は、Aレコードを作成して静的 IP アドレスを指定します。
SSL 証明書を発行しインスタンスに統合する
SSL/TLS でウェブサイトとアプリケーションのセキュリティを強化します。公式の AWS ドキュメント (opens in a new tab)を参考に、Let's Encrypt 証明書を発行し、インスタンスに統合します。
Node.jsを インストール
Lightsail にコンソールでアクセスし、Node.js をインストールします。
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
source ~/.nvm/nvm.sh
nvm install --lts
Nginx を設定する
Nginx の設定ファイルを編集し、Collections をルートディレクトリに設定します。ここではドメイン名は、collections.dev
としています。
server {
root /home/bitnami/stack/nginx/html/collections;
include "/opt/bitnami/nginx/conf/bitnami/*.conf";
server_name collections.dev app.collectionsdemo.live;
location / {
proxy_pass http://localhost:4000;
}
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/collections.dev/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/collections.dev/privkey.pem;
location /status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
}
server {
listen 80;
listen [::]:80;
return 301 https://$host$request_uri;
}
Collections をインストール
いよいよアプリケーションのインストールです。まずは、Nginx のルートディレクトリに移動し、次に Collections のインストールを実行します。
cd /home/bitnami/stack/nginx/html
git clone git@github.com:collectionscms/collections.git
.env ファイルを設定する
環境変数を設定するために、.env
ファイルをコピーし、編集します。
cd /home/bitnami/stack/nginx/html/collections
cp .env.sample .env
vi .env
依存関係の解決
npm install
DB マイグレーションを実行する
npm run seed:dev
アプリケーションをビルドする
npm run build
PM2 でアプリケーションを実行する
PM2 は、Node.js プロセスを常時起動させておくことができ、ダウンタイムなしにリロードすることが可能です。 以下のコマンドを実行して、PM2 をグローバルにインストールしてください。
npm install pm2@latest -g
続いて、PM2 を起動します。
pm2 start /home/bitnami/stack/nginx/html/collections/dist/build/main.js --name collections
再起動する
最後に、基本サービスを再起動して変更を反映します。
sudo /opt/bitnami/ctlscript.sh restart