開発した WEB アプリケーションを、AWS の EC2 上の docker で動かすための git と docker の設定手順を解説します。
前提条件
前提条件として、すでに EC2 のインスタンスが起動していて、インスタンスに SSH 接続ができることを前提とします。
今回手順を開設するインスタンスの OS は Ubuntu を想定しています。
設定する手順
以下の設定を行います。
- git の設定
- docker のインストールと設定
- docker-compose のインストール
git の設定
EC2 に作成したアプリケーションをgit clone
できるように設定します。
SSH Key の作成
git clone
を実行するには、GitHub と SSH で通信する必要があります。
SSH キー用のディレクトリへ移動し、SSH 通信で使用するキーを作成します。
EC2 上で以下のコマンドを実行します。
$ cd ~/.ssh
$ ssh-keygen -t rsa
鍵の名前はとりあえず、ec2_github_key とします。
Enter file in which to save the key (): ec2_github_key
Enter passphrase (empty for no passphrase): [Enter]
Enter same passphrase again: [Enter]
以上で、~/.ssh
に秘密鍵(ec2_github_key
)と公開鍵(ec2_github_key.pub
)が作成されます。
~/.ssh/config の編集
~/.ssh/config
に github への接続のための設定を追加します。
$ vi ~/.ssh/config
で編集します。
以下の内容を記載します。
Host github github.com
HostName github.com
User git
IdentityFile ~/.ssh/ec2_github_key
github に鍵を登録
git clone したいリポジトリの「Settings」をクリックし、「Deploy keys」を選択します。「Add deploy key」ボタンをクリックして、キー登録ページに行きます。
「Title」には適当な名前をつけます。「Key」欄には、ec2 上で、
$ cat ~/.ssh/ec2_github_key
コマンドで出力されたものをコピーします。
上記の登録が終わったら EC2 上で以下のコマンドを実行して、正しく登録できているか確認します。
$ ssh -T github
Hi ユーザー名! You've successfully authenticated, but GitHub does not provide shell access.
EC2 側でも鍵を登録
以下のコマンドで EC2 側に鍵を登録。
$ ssh-add ~/.ssh/ec2_github_key
以上で、作成したアプリケーションのリポジトリからgit clone
できるはずです。
docker のインストールと設定
EC2 上で docker を使うために、docker のインストールと設定方法を紹介します。
docker のインストール
公式ドキュメントの手順に従ってインストールを行います。
EC 2上で、以下のコマンドを順番に実行していきます。
$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
docker-compose のインストール
続けて docker-compose もインストールします。
以下のコマンドを実行します。
$ sudo apt install docker-compose
docker を一般ユーザーでも使えるように設定する
docker
コマンドを使用する際に、sudo
を付けないと以下のようなエラーが出ることがあります。
ERROR: Couldn’t connect to Docker daemon at http+docker://localhost – is it running?
ここでは、sudo
を付けなくてもdocker
及びdocker-compose
コマンドを使えるようにするための設定を行います。
docker グループを確認、作成する
以下のコマンドで、すでに docker グループが作成されているかを確認します。
$ cat /etc/group | grep docker
docker:x:999:
と表示されれば、すでに docker グループが作成されています。
もし何も表示されない場合は、以下のコマンドで作成します。
$ sudo groupadd docker
通常ユーザーを docker グループに追加する
以下のコマンドで、通常ユーザを docker グループに追加します。
sudo usermod -aG docker $USER
これでsudo
を付けなくてもdocker
及びdocker-compose
コマンドを使えるようになります。
まとめ
この記事では、EC2 でアプリケーションを実行するための、git と docker の設定方法について開設しました。
EC2 上でアプリケーションを公開するときには、よく行う設定なのでまとめて見ました。