アプリケーションを EC2 の docker 上で起動するための git と docker の設定手順

投稿者: | 2020-09-11
Table of Content

開発した WEB アプリケーションを、AWS の EC2 上の docker で動かすための git と docker の設定手順を解説します。

前提条件

前提条件として、すでに EC2 のインスタンスが起動していて、インスタンスに SSH 接続ができることを前提とします。

今回手順を開設するインスタンスの OS は Ubuntu を想定しています。

設定する手順

以下の設定を行います。

  1. git の設定
  2. docker のインストールと設定
  3. 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 上でアプリケーションを公開するときには、よく行う設定なのでまとめて見ました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です