- はじめに
- 環境情報
- 初期設定
- Git, GitHubの設定
- アプリ開発で役に立つツールのインストール
- Node.js, Rubyのインストール
- docker composeでPostgreSQLを起動
- おわりに
はじめに
こんにちは、サービス開発課の行武です。
今回は、Railsアプリ開発用のEC2インスタンス(Amazon Linux 2023)に初期設定をするときの手順を備忘録としてまとめてみます。
本記事がなにかの参考になれば幸いです。
【前回の記事】
環境情報
本記事は、以下の環境で動作を確認しました。
環境情報 | バージョン |
---|---|
OS(リモート) | Amazon Linux 2023 |
初期設定
前回の記事の内容で、VS CodeのRemote SSHで開発用EC2インスタンス(Amazon Linux 2023)にSSH接続できるところまで進めました。
今回はSSH接続後、ターミナルで開発環境の初期設定を行います。
VS Codeのターミナルは【⌘ + j】を同時に押すことで開きます。
(Windowsの場合は【ctrl + j】)
基本的なライブラリのインストール
ターミナルで以下のコマンドを実行します。
sudo dnf update -y
sudo dnf 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 util-linux-user libyaml-devel gdbm-devel ncurses-devel patch rust perl libpq-devel postgresql15
タイムゾーンの設定
以下のコマンドを実行し、タイムゾーンを東京に設定します。
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 export PATH=$HOME/bin:$PATH
デフォルトシェルの設定
以下のコマンドを実行し、デフォルトシェルをzshに設定する。
sudo chsh ec2-user /bin/zsh
デフォルトシェルの変更を反映させるため、一度EC2インスタンスを再起動します。
sudo reboot
再度、SSH接続します。
- VS Codeを開き、[⌘ + shift + p]を同時押しします(Windowsの場合は、[ctrl + shift + p])。
- 表示された入力欄に
Remote-SSH: Connect to Host
と入力し、Enterを押します。 - Host名をクリックします。
【確認】デフォルトシェルの変更
以下のコマンドを実行し、デフォルトシェルをzshになっていることを確認します。
echo $SHELL # /bin/zsh と表示されればOK
プロンプト(starship)の設定
以下のコマンドを実行し、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のインストール
以下のコマンドを実行し、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のインストール
以下のコマンドを実行し、dockerをインストールします。
cd sudo dnf 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
グループへのユーザー追加を反映させるため、一度EC2インスタンスを再起動します。
sudo reboot
再度、SSH接続します。
- VS Codeを開き、[⌘ + shift + p]を同時押しします(Windowsの場合は、[ctrl + shift + p])。
- 表示された入力欄に
Remote-SSH: Connect to Host
と入力し、Enterを押します。 - Host名をクリックします。
【確認】docker, docker composeのインストール
以下のコマンドを実行し、docker, docker composeがインストールされていることを確認します。
docker --version # `Docker version 25.0.5, build 5dc9bcc` のように # dockerのバージョンが返ってくればOK docker compose version # `Docker Compose version v2.4.1` のように # docker composeのバージョンが返ってくればOK
asdfのインストール
以下のコマンドを実行し、asdfをインストールします。
cd git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.14.1 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.14.1-f00f759` のように # asdfのバージョンが返ってくればOK
Node.js, Rubyのインストール
続いて、asdfを利用して、各プログラミング言語をインストールします。
Node.jsのインストール
以下のコマンドを実行し、Node.jsをインストールします。
asdf plugin add nodejs asdf install nodejs 16.18.1 asdf global nodejs 16.18.1 npm install -g yarn
【確認】Node.jsのインストール
以下のコマンドを実行し、Node.jsがインストールされていることを確認します。
node --version # `v16.18.1` のように # Node.jsのバージョンが返ってくればOK yarn --version # `1.22.22` のように # yarnのバージョンが返ってくればOK
Rubyのインストール
以下のコマンドを実行し、Rubyをインストールします。
asdf plugin add ruby asdf install ruby 3.2.2 asdf global ruby 3.2.2
【確認】Rubyのインストール
以下のコマンドを実行し、rubyがインストールされていることを確認します。
ruby --version # `ruby 3.2.2` のように # Rubyのバージョンが返ってくればOK
docker composeでPostgreSQLを起動
最後に、docker composeでPostgreSQLを起動します。
今回はPostgreSQLのバージョン 12.18
を使用するため、docker composeでPostgreSQLを起動します。
docker composeの設定
以下のコマンドを実行し、Vimでdocker composeの設定ファイル docker-compose.yml
を開きます。
vim docker-compose.yml
i
を押して、Vimの挿入モードに変更します。- 以下の内容をコピペします。
- ローマ字入力の状態で
Esc
を押し、:wq
と入力して保存します。
# docker-compose.yml version: "3.7" services: postgresql: image: postgres:12.18-alpine environment: POSTGRES_USER: root POSTGRES_HOST_AUTH_METHOD: trust ports: - "5432:5432" command: -p 5432 volumes: - "./docker/data/postgresql:/var/lib/postgresql/data:cached"
以下のコマンドを実行し、docker composeでPostgreSQLを起動します。
echo "export DATABASE_URL='postgres://root@localhost/'" >> ~/.zshrc exec $SHELL -l docker compose up -d sudo chmod 777 -R docker/data/postgresql
【確認】docker composeでPostgreSQLの起動
以下のコマンドを実行し、docker composeでPostgreSQLが起動していることを確認します。
docker ps # `postgres:12.18-alpine` のように # PostgreSQLのコンテナが起動していればOK psql -h localhost -U root # `psql (15.8, server 12.18)` のように # PostgreSQLに接続できればOK exit
おわりに
ご覧いただき、ありがとうございました!
行武 直人 (記事一覧)
2020年4月 新卒入社
サービス開発部サービス開発課所属
2024 AWS ALL Certifications Engineers
Railsアプリ開発者
@zhiren1211