はじめに
チームで開発したアプリを自分で建てたEC2に移行させたため記事に残しておきます。
6/3 続きを書きました。
AWSへのRailsアプリのデプロイ その2
EC2インスタンスを作る
まず、アプリの移行先のインスタンスを作りましょう。
ここは各個人で違うと思いますが、今回は「Amazon Linux AMI」を選択。
EC2インスタンスを起動させるとキーペアの作成画面が表示されます。
ここでは新しいキーペアの作成を選択し、キーペア名を入力した後、キーペアのダウンロードをしておきましょう。(キーは厳重に保管してください)
Elastic IPの紐付け
「AmazonのIPv4アドレスプール」を選択肢て「割り当て」を押下。
これでElastic IPが割り当てられます。
続いて、IPアドレスとEC2インスタンスを関連づけます。
EC2のインスタンスIDが分からないと関連付けできないので、確認しておきましょう
Elastic IPの関連付けを選択します。
インスタンスに、先ほど確認したインスタンスIDを入力して「関連付ける」を押下します。
ポートを開く
現状のままだと、HTTPでの通信ができないため、ポートを開きます。
下記の画像の赤枠の部分をクリックしてください。
ターミナルからEC2インスタンスへログインする。
先ほどダウンロードした秘密鍵を~/.sshフォルダに移動させます。
mv 秘密鍵のパス ~/.ssh
秘密鍵のパーミッションをいじってルートユーザーのみ読み書き可能にします。
chmod 600 ダウンロードした鍵の名前.pem
ssh -i 秘密鍵のパス ec2-user@EC2インスタンスと紐付けたElastic IP
成功したらターミナルにデカデカとEC2と表示されます。
__| __|_ )
_| ( / Amazon Linux AMI
___|\___|___|
EC2の設定
EC2上で以下のコマンドを実行して、パッケージをアップデートしましょう。
sudo yum -y update
続いて、必要なパッケージをインストールします。
sudo yum -y install git make gcc-c++ patch libyaml-devel libffi-devel libicu-devel zlib-devel readline-devel libxml2-devel libxslt-devel ImageMagick ImageMagick-devel openssl-devel libcurl libcurl-devel curl
上記のパッケージをインストールしたらNode.jsをインストールしましょう。
sudo curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -
sudo yum -y install nodejs
これでnode.jsのインストール完了です。ですが、まだまだインストールするものがあります。
続いてRuby関係のインストールです。まずコマンドでgitからrbenvをクローンしましょう。
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
以下の2つのコマンドでパスを通します。パスを通すことで、どのディレクトリにいてもアプリを呼び出せます。
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
~/.bash_profileの編集内容はログインし直さないと反映されないので、sourceコマンドで即時反映させます。
source .bash_profile
gitからruby-buildをクローンします。
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
rehashでgemのコマンドを使えるようにします。
rbenv rehash
ここからはRubyのインストールです。
使用しているRubyのバージョンを確認し、コマンドを各々で読み替えてください。
rbenv install x.x.x(バージョン)
EC2インスタンス内で使用するRubyのバージョンを決めます
rbenv global x.x.x(バージョン)
rehashしてRubyのインストールは終了です。
rbenv rehash