なんの記事?
以下の記事の後編になります。
GCEでのインスタンス作成、起動
下記に従い今回は進めていきます。
インスタンスの作成
からインスタンスを作成します。
外部からの通信を許可したいので、httpsトラフィックを許可します。
自動再起動はオフにしておきます。
起動したので、VM内にsshします。
VM内での環境構築
を参考に
- docker-composeの導入
- GitHubからのリポジトリクローン
- https通信の穴あけ
を行います。
$ sudo apt update
$ sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common
>> OK
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
$ sudo apt update
$ apt-cache policy docker-ce
$ sudo apt install docker-ce
$ sudo systemctl status docker
$ docker --version
>> Docker version 20.10.8, build 3967b7d
$ sudo usermod -aG docker ${USER}
一旦ログアウトし直し、docker-composeの設定を続けます。
今回はdocker-composeのイメージを利用します。
$ docker run docker/compose:1.22.0 version
リポジトリをクローンした後、ビルドします。
--recursive
を行う場合は公開鍵認証が別途必要なので、暫定で対応します。
$ git clone https://github.com/izuna385/arxiv-checker.git
$ cd arxiv-checker
$ rm -r -f backend
$ git clone https://github.com/izuna385/arxiv-checker-backend
$ mv arxiv-checker-backend backend
$ docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
-v "$PWD:/rootfs/$PWD" \
-w="/rootfs/$PWD" \
docker/compose:1.22.0 -f docker-compose.prod.yml up -d --build
ここまで行った後、外部IPを見に行きます。
http通信では表示が確認できました。
Route53を用いたDNS解決
これにて、デプロイすることが出来ました。(現在はVMを停止しており、アクセスは出来ません。)
改善点
- https通信では表示されず、原因を確認中です。分かり次第追記します。
- この構成だと、大量にアクセスが来たときにスケールしません。フロントとバックエンドでそれぞれ、大量アクセスが来た時にスケールするよう構成を見直す必要があります。
リポジトリ