Docs
Amazon Lightsail

Amazon Lightsail

AWS Lightsail に Collections プロジェクトをデプロイするためのガイドです。このガイドでは、コストを最適化するために Let's Encrypt 証明書を使用しています。

Amazon Lightsail のインストール要件

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
お問い合わせ