勉強用のEC2インスタンスを間違って停止ではなく終了してしまい、作り直すことがちょこちょこあるため、インスタンスを立ち上げたときにだいたいやることを備忘録として残しておく
各種最新化
sudo yum update -y
スワップメモリを増やす
t2microのようなメモリが少ないインスタンスの場合、Angularのprodビルドのようにメモリを多く使う処理で落ちてしまうため、スワップメモリを増やして回避します
# 4GBのスワップファイルを作成(メモリが少ないのでbsが多いと失敗する)
sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
# スワップファイルに読み書き権限付与
sudo chmod 600 /swapfile
# スワップ領域のセットアップ
sudo mkswap /swapfile
# スワップ領域を有効化
sudo swapon /swapfile
# スワップ領域の確認
sudo swapon -s
参考:https://aws.amazon.com/jp/premiumsupport/knowledge-center/ec2-memory-swap-file/
swaponすると以下のように指定したサイズでファイルが作成されていることが確認できる
$ sudo swapon -s
Filename Type Size Used Priority
/swapfile file 4194300 0 -2
freeコマンド実行すると、メモリとして認識されていることが確認できる
$ free
total used free shared buff/cache available
Mem: 1006940 82724 63424 404 860792 771392
Swap: 4194300 0 4194300
スワップを起動時に有効にする
viで/etc/fstabを編集します
sudo vi /etc/fstab
末尾に以下の1行を追加して保存します
/swapfile swap swap defaults 0 0
Gitのインストール
sudo yum install git-all -y
Gitのユーザー設定
git config --global user.name "username"
git config --global user.email xxxx@example.com
Dockerおよびdocker-composeのインストール
# dockerインストール
sudo yum install docker -y
# dockerサービス開始
sudo service docker start
# sudoなしでdockerコマンド使えるようにする設定
sudo usermod -a -G docker ec2-user
# dockerサービスが自動で起動するように設定
sudo systemctl enable docker
参考:https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/docker-basics.html
http://docs.docker.jp/v1.11/engine/admin/systemd.html
docker-composeのインストール
# バイナリのダウンロード
sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 実行権限を付与
sudo chmod +x /usr/local/bin/docker-compose
参考:https://docs.docker.com/compose/install/
このままだとPermissionError: [Errno 13] Permission denied
となるため、一旦EC2からexitして再接続する
Node.jsのインストール
# インストーラのダウンロード&実行
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
# nvm.sh実行
. ~/.nvm/nvm.sh
# Node.jsのインストール
nvm install node