Railsアプリ開発用EC2インスタンスの初期設定をする

記事タイトルとURLをコピーする

はじめに

こんにちは、サービス開発課の行武です。

今回は、Railsアプリ開発用のEC2インスタンスに初期設定をするときの手順を備忘録としてまとめてみます。

本記事がなにかの参考になれば幸いです。

【前回の記事】

環境情報

本記事は、以下の環境で動作を確認しました。

環境情報 バージョン
OS(リモート) Amazon Linux 2 Kernel 5.10

初期設定

前回の記事の内容で、VS CodeのRemote SSHで開発用EC2インスタンスにSSH接続できるところまで進めました。

今回はSSH接続後、ターミナルで開発環境の初期設定を行います。

VS Codeのターミナルは【⌘ + j】を同時に押すことで開きます。

(Windowsの場合は【ctrl + j】)

基本的なライブラリのインストール

ターミナルで以下のコマンドを実行します。

sudo yum update -y
sudo yum install -y zsh git gcc make zlib-devel libxml2-devel libxslt-devel readline-devel openssl-devel gcc-c++ curl-devel wget bzip2 bind-utils fontforge libffi-devel libX11 GConf2 util-linux-user
sudo amazon-linux-extras install epel -y

タイムゾーンの設定

以下のコマンドを実行し、タイムゾーンを東京に設定します。

sudo timedatectl set-timezone Asia/Tokyo

シェル(zsh)の設定

https://github.com/zsh-users/zsh

以下のコマンドを実行し、Vimでzshの設定ファイル ~/.zshrc を開きます。

vim ~/.zshrc

基本的な設定内容を入力します。

  • i を押して、Vimの挿入モードに変更します。
  • 以下の内容をコピペします。
  • ローマ字入力の状態で Esc を押し、:wq と入力して保存します。
# .zshrc
# 色を使用出来るようにする
autoload -Uz colors
colors

# 日本語ファイル名を表示可能にする
setopt print_eight_bit

# cdなしでディレクトリ移動
setopt auto_cd

# ビープ音の停止
setopt no_beep

# ビープ音の停止(補完時)
setopt nolistbeep

# cd -<tab>で以前移動したディレクトリを表示
setopt auto_pushd

# ヒストリ(履歴)を保存、数を増やす
HISTFILE=~/.zsh_history
HISTSIZE=100000
SAVEHIST=100000

# 同時に起動したzshの間でヒストリを共有する
setopt share_history

# 直前と同じコマンドの場合は履歴に追加しない
setopt hist_ignore_dups

# 同じコマンドをヒストリに残さない
setopt hist_ignore_all_dups

# スペースから始まるコマンド行はヒストリに残さない
setopt hist_ignore_space

# 補完リストの表示間隔を狭くする
setopt list_packed

#単語の入力途中でもTab補完を有効化
setopt complete_in_word

# 追加したパッケージ用にパスを通す
export PATH=/usr/local/bin:$PATH

デフォルトシェルの設定

以下のコマンドを実行し、デフォルトシェルをzshに設定する。

sudo chsh ec2-user
/bin/zsh

デフォルトシェルの変更を反映させるため、一度SSH接続をクローズします。

  • 【⌘ + shift + p】を同時に押します(Windowsの場合は【⌘ + shift + p】)。
  • 表示された入力欄に Remote: Close Remote Connection と入力し、Enterを押します。

再度、SSH接続します。

  • VS Codeを開き、上部メニューの File - Open Recent の中にある、SSHのホスト名をクリックします。
  • 【⌘ + j】を同時に押して、ターミナルを開きます。
    • (Windowsの場合は【ctrl + j】)

【確認】デフォルトシェルの変更

以下のコマンドを実行し、デフォルトシェルをzshになっていることを確認します。

echo $SHELL

# /bin/zsh と表示されればOK

プロンプト(starship)の設定

https://starship.rs/ja-JP/

以下のコマンドを実行し、starshipをインストールします。

sudo su -

curl -sS https://starship.rs/install.sh | sh

exit

以下のコマンドを実行し、Vimでstarshipの設定ファイル ~/.config/starship.toml を開きます。

mkdir -p ~/.config && touch ~/.config/starship.toml

vim ~/.config/starship.toml

基本的な設定内容を入力します。

  • i を押して、Vimの挿入モードに変更します。
  • 以下の内容をコピペします。
  • ローマ字入力の状態で Esc を押し、:wq と入力して保存します。
# ~/.config/starship.toml
add_newline = false

format = """
$username\
$directory\
$git_branch\
$git_status\
$time\
$line_break\
\\$ 
"""

[username]
format = "[$user](white):"

[directory]
format = "[$path](white)"
truncation_length = 0
truncate_to_repo = false

[time]
format = " [$time](white)"
time_format = "[%Y/%m/%d %T]"
disabled = false

[line_break]
disabled = false

[git_branch]
format = " [$branch(:$remote_branch)](green)"

[git_status]
format = ' ([\[$all_status$ahead_behind\]](red))'

プロンプトの設定の反映させるため、以下のコマンドを実行します。

echo 'eval "$(starship init zsh)"' >> ~/.zshrc

【確認】プロンプトの設定

以下のコマンドを実行し、プロンプトが変更されていることを確認します。

exec $SHELL -l

# プロンプトの表示が `ec2-user:~/ [2022/08/27 10:00:01]` のように変わればOK

Git, GitHubの設定

次に、GitとGitHubの設定をします。

Gitの設定

以下のコマンドを実行し、Vimでgitの設定ファイル ~/.gitconfig を開きます。

vim ~/.gitconfig

基本的な設定内容を入力します。

  • i を押して、Vimの挿入モードに変更します。
  • 以下の内容をコピペします。
  • メールアドレスとユーザー名を修正します。
  • ローマ字入力の状態で Esc を押し、:wq と入力して保存します。
# ~/.gitconfig
[user]
  email = test@example.com # GitHubのメールアドレス
  name = test-user-name # GitHubのユーザー名

[alias]
  ad = add
  br = branch
  ci = commit
  cm = commit
  co = checkout
  cp = cherry-pick
  df = diff
  gp = grep
  gr = grep
  lg = log
  pl = pull
  rss = reset --soft HEAD^
  rm = remove
  ss = status
  st = status
  uns = restore --staged .

[grep]
  lineNumber = true

[pager]
  diff = cat
  grep = cat
  log = less

[core]
  excludesfile = ~/.gitignore

GitHubへのSSH接続の設定

以下のコマンドを実行し、GitHubに登録するSSHキーを作成します。

cd ~/.ssh

ssh-keygen -t ed25519 -C ""

# 作成するキー名は `github` とします。
# 必要に応じて、SSHキーにパスワードを設定します。

以下のコマンドを実行し、Vimでsshの設定ファイル ~/.ssh/config を開きます。

vim ~/.ssh/config

GitHubへのSSH接続の設定内容を入力します。

  • i を押して、Vimの挿入モードに変更します。
  • 以下の内容をコピペします。
  • ローマ字入力の状態で Esc を押し、:wq と入力して保存します。
Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/github

以下のコマンドを実行し、設定ファイルの権限を修正します。

chmod 600 ~/.ssh/config

以下のコマンドを実行し、GitHubに登録するSSHキーをコピーします。

cat ~/.ssh/github.pub

# 表示された内容をコピーします。

GitHubにSSHキーを登録する

  • ブラウザでGitHubにアクセスします。
  • 画面右上のユーザーアイコンをクリックして Settings をクリックします。
  • 左メニューの SSH and GPG keys をクリックします。
  • New SSH key をクリックして、任意のタイトルを入力します。
  • 上でコピーしたSSHキーを貼り付けて、Add SSH key をクリックしSSHキーを保存します。

【確認】GitHubへのSSH接続

ターミナルで以下のコマンドを実行し、GitHubへのSSH接続ができることを確認します。

ssh -T github.com

yes

# `Hi ユーザー名! You've successfully authenticated,` のようなメッセージが返ってくればOK

アプリ開発で役に立つツールのインストール

続いて、アプリ開発で役立つツールをインストールします。

tigのインストール

https://github.com/jonas/tig

以下のコマンドを実行し、tigをインストールします。

cd

git clone git@github.com:jonas/tig.git

cd tig

make

make install

【確認】tigのインストール

以下のコマンドを実行し、tigがインストールされていることを確認します。

tig

# tigのgitログが表示されればOK
# tigから抜けるときは q を押します。

docker, docker composeのインストール

https://docs.docker.com/

以下のコマンドを実行し、dockerをインストールします。

cd

sudo amazon-linux-extras install docker -y

sudo systemctl start docker

sudo systemctl enable docker

以下のコマンドを実行し、docker composeをインストールします。

  • 変数VERには、docker composeのバージョンを入れます。
sudo mkdir -p /usr/local/lib/docker/cli-plugins

VER=2.4.1
sudo curl -L https://github.com/docker/compose/releases/download/v${VER}/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/lib/docker/cli-plugins/docker-compose
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose

sudo ln -s /usr/local/lib/docker/cli-plugins/docker-compose /usr/bin/docker-compose

以下のコマンドを実行し、dockerグループにec2-userを追加します。

sudo usermod -a -G docker ec2-user

グループへのユーザー追加を反映させるため、一度SSH接続をクローズします。

  • 【⌘ + shift + p】を同時に押します(Windowsの場合は【⌘ + shift + p】)。
  • 表示された入力欄に Remote: Close Remote Connection と入力し、Enterを押します。

再度、SSH接続します。

  • VS Codeを開き、上部メニューの File - Open Recent の中にある、SSHのホスト名をクリックします。
  • 【⌘ + j】を同時に押して、ターミナルを開きます。
    • (Windowsの場合は【ctrl + j】)

【確認】docker, docker composeのインストール

以下のコマンドを実行し、docker, docker composeがインストールされていることを確認します。

docker --version

# `Docker version 20.10.17, build 100c701` のように
# dockerのバージョンが返ってくればOK

docker compose version

# `Docker Compose version v2.4.1` のように
# docker composeのバージョンが返ってくればOK

asdfのインストール

https://asdf-vm.com/

以下のコマンドを実行し、asdfをインストールします。

cd

git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.10.2

echo '. $HOME/.asdf/asdf.sh' >> ~/.zshrc

exec $SHELL -l

以下のコマンドを実行し、Vimでasdfの設定ファイル ~/.asdfrc を開きます。

vim ~/.asdfrc

設定内容を入力します。

  • i を押して、Vimの挿入モードに変更します。
  • 以下の内容をコピペします。
  • ローマ字入力の状態で Esc を押し、:wq と入力して保存します。
# ~/.asdfrc
legacy_version_file = yes

【確認】asdfのインストール

以下のコマンドを実行し、asdfがインストールされていることを確認します。

asdf --version

# `v0.10.0-77fd510` のように
# asdfのバージョンが返ってくればOK

Node.js, Rubyのインストール

続いて、asdfを利用して、各プログラミング言語をインストールします。

Node.jsのインストール

以下のコマンドを実行し、Node.jsをインストールします。

asdf plugin add nodejs

asdf install nodejs 16.17.0

asdf global nodejs 16.17.0

npm install -g yarn

【確認】Node.jsのインストール

以下のコマンドを実行し、Node.jsがインストールされていることを確認します。

node --version

# `v16.17.0` のように
# Node.jsのバージョンが返ってくればOK

yarn --version

# `1.22.19` のように
# yarnのバージョンが返ってくればOK

Rubyのインストール

以下のコマンドを実行し、Rubyをインストールします。

asdf plugin add ruby

asdf install ruby 2.7.6

asdf global ruby 2.7.6

【確認】Rubyのインストール

以下のコマンドを実行し、rubyがインストールされていることを確認します。

ruby --version

# `ruby 2.7.6` のように
# Rubyのバージョンが返ってくればOK

おわりに

ご覧いただき、ありがとうございました!

行武 直人 (記事一覧)

2020年4月 新卒入社
サービス開発部サービス開発課所属

2023 AWS ALL Certifications Engineers
Railsアプリ開発者
@zhiren1211