背景
ローカル環境でWebアプリを作っていたのでAWS上のサーバへ移行した。AWSでサーバを立てたことなかったので有識者に教えてもらいながらやってみた。忘れそうなので今後の自分のためにサーバ上でdockerを動かすところまでの手順を残しておく。
本編
大まかな作業手順はこう。
1. AWSにEC2インスタンスを立てる
2. 立てたサーバの中でdockerをインストールする
3. gitlabからアプリケーションをクローンする
実際に行った手順
実際の手順は以下のようにした。ただし今回、EC2インスタンスの作り方は割愛する。
サーバに入るまで
- AWSのEC2インスタンスを作る(詳細は今後書くかもしれない)
- 1ができると
.pem
がついたファイルができるのでこれは~/.ssh/
大切に保存しておく。 - AWSのEC2のページにipアドレスがあるのでsshする。
ssh xx.xxx.xx.xxx
やってみたけどできなかった。 - ユーザ名をつけてやってみた。
ssh ubuntu@xx.xxx.xx.xxx
やってみたけどできなかった。 - エラーログがみたい時
ssh -v ubuntu@xx.xxx.xx.xxx
-
ssh -i ~/.ssh/xxx.pem ubuntu@xx.xxx.xx.xxxでxxx.pem
コマンドで入れた。xxx.pemというキーを使ってubuntuに入りますよコマンドらしい。
サーバにて
- gitlabにあるリポジトリをサーバ側にsshでクローンしたい。いきなりクローンができないので、まずは
ssh-keygen
でキーペアを作る。3回質問されるが特に何もなければEnterを3回押すだけ。 -
.ssh/id_rsa.pub
というキーができているはずなのでその中身をコピーしてgitlab上で公開鍵を記入するところ(設定とかからいけたはず)にペーストする。 - サーバ上でdockerをインストールする。
sudo apt update
をまずやってsudo apt install docker.io
する。 -
docker ps
できるか確認。権限がなかったのでsudo usermod -aG docker $USER
という呪文を唱えた。 - ログアウトしてもう一度ログインして
docker ps
したら確認できた。 -
sudo apt install docker-compose
でdocker-composeをインストール。 -
docker-compose up
すれば起動するはず。落としたい時はdocker-compose down
またはdocker-compose stop
すれば良い。ちなみに、バックグラウンド実行したい時はdocker-compose up -d
でできる。
まとめ
ローカルのdocker環境で動かしているWebアプリをAWSに移行した。AWSのサーバ内に入るまでの内容とサーバに入ってdockerを動かすまでの内容の話をした。おそらく他のやり方もあるので参考に。