AWS EC2 インスタンスの準備
AWS コンソールにアクセスする
「Launch Instance」をクリックする
Step 1: Enter nand and tags
インスタンス名とタグを入力する
Step 2: Choose an Amazon Machine Image (AMI)
「Ubuntu Server 22.04 LTS (HVM), SSD Volume Type 64bit (x86」を選択する
Step 3: Choose an Instance Type and Key pair
インスタンスタイプは「t2.micro」とSSH用のキーペアを選択する
Step 4: Network settings
バブネットやセキュリティグループなどを選択する
Step 5: Configure storage
無料利用枠だと最大30GBまで利用できる
そして、「Launch instance」をクリックしてインスタンスを立てる
インスタンスへアクセス
先ほどダウンロードしたキーペアを「.ssh/key.pem」とします。
権限を与える
1
sudo chmod 400 .ssh/key.pem
1
ssh -i .ssh/key.pem ubuntu@52.196.67.76
デプロイ用のユーザーを作成
「deploy」というユーザー名とすると
1
sudo adduser deploy
1
%deploy ALL=(ALL) NOPASSWD:ALL
deployユーザーに切り替える
1
sudo su - deploy
1
2
3
4
mkdir .ssh
sudo chmod 700 .ssh
touch ~/.ssh/authorized_keys
sudo chmod 600 ~/.ssh/authorized_keys
1
2
<ローカル環境で「cat ~/.ssh/id_rsa.pub」の内容>
もしまだなければ「ssh-keygen -t rsa -C」で作成する
*これからローカル環境でssh deploy@52.196.67.76
でインスタンスにアクセスできます。
サーバーで環境構築
Ruby、Rails、Gitなどをインストールする
- rbenv
- ruby
- rails
- libmysqlclient-dev / libpq-dev
- git
- bundler
Dockerをインストールする
Dockerをインストールする方法は以下のリンクにあります。ベトナム語ですが、簡単なコマンドをコピーするだけでインストールできます。
Ubuntu 22.04でDockerをインストールする方法
デプロイ用フォルダとファイルを作成
例えばアプリ名は「todoapp」とすると:
1
2
3
4
5
6
7
8
9
10
sudo mkdir /deploy
sudo mkdir /deploy/apps
sudo mkdir /deploy/apps/todoapp
sudo mkdir /deploy/apps/todoapp/shared
sudo mkdir /deploy/apps/todoapp/shared/config
sudo touch /deploy/apps/todoapp/shared/config/application.yml
sudo touch /deploy/apps/todoapp/shared/config/database.yml
sudo chown -R deploy:deploy /deploy/apps
1
cd /deploy/apps/todoapp/shared
そして、ビルド!
1
docker-compose build
1
docker-compose up -d
1
2
3
4
5
6
7
8
production:
adapter: mysql2
encoding: utf8mb4
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
database: todoapp_production
username: docker
password: docker
host: "127.0.0.1"
秘密キー設定
ローカル環境で秘密キーを取得する:
1
RAILS_ENV=production rake secret
1
SECRET_KEY_BASE: "<secret_key>"