0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

EC2にRailsアプリをデプロイ② ~EC2に必要なツールをインストール~

Posted at

##はじめに
前回続きの記事です。
今回は前回作成したEC2インスタンスへターミナルからログインしてデプロイに必要なツールを導入していきます。

##EC2インスタンスへログイン
ターミナルから以下のコマンドを実行して、EC2インスタンスへログインします。

ターミナル
% cd ~
ターミナル
% mkdir ~/.ssh

# .sshというディレクトリを作成
# File existsとエラーが表示されたとしても、.sshディレクトリは存在しているのということなので、そのまま進みましょう。
ターミナル
% mv Downloads/ダウンロードした鍵の名前.pem .ssh/

# mvコマンドで、ダウンロードしたpemファイルを、ダウンロードディレクトリから、.sshディレクトリに移動します。
# 「ダウンロードした鍵の名前」の部分は、Finderでダウンロードフォルダから「〜.pem」というファイルを探し、「〜」の部分の名前に置き換えてください。
ターミナル
% cd .ssh/
ターミナル
% ls

# pemファイルが存在するか確認しましょう
ターミナル
% chmod 600 ダウンロードした鍵の名前.pem

# 「ダウンロードした鍵の名前」はFinderのダウンロードフォルダから探しましょう(見つからない場合は他のフォルダを探しましょう)
ターミナル
% ssh -i ダウンロードした鍵の名前.pem ec2-user@作成したEC2インスタンスに紐付けたElastic IP

下記のコマンドを実行するとyesかnoかの意思表示を求められますが、yesを入力して実行しましょう。

ターミナル
% ssh -i aws_key.pem ec2-user@52.68.~~~~~~
The authenticity of host '52.68.~~~~~~ (52.68.~~~~~~)' can't be established.
RSA key fingerprint is eb:7a:bd:e6:aa:da:~~~~~~~~~~~~~~~~~~~~~~~~.
Are you sure you want to continue connecting (yes/no)? 

(ここで「yes」を入力し、実行する)

このssh接続は時間が経つとタイムアウトするので、その場合はもう一度上記のコマンドで繋ぎ直せます。

##必要なツールをインストール
###yumコマンド
まずはLinuxにおけるソフトウェア管理の仕組みのyumコマンドでパッケージをアップデートします。

ターミナル
[ec2-user@ip-172-31-25-189 ~]$ sudo yum -y update

そのほかの環境構築に必要なパッケージを諸々インストール。
(めちゃ長いので注意)↓

ターミナル
[ec2-user@ip-172-31-25-189 ~]$ 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

これらのコマンドに「-y」とありますがこれは-yオプションと言って、yesかnoの質問に対して自動的に全ての問いにyesと答えるコマンドです。
コマンドをつけ忘れたら「Y」を入力してエンターキーを押してインストールの完了をしてください。

###EC2にNode.jsをインストール
Node.jsはサーバーサイドで動くJavaScriptのパッケージです。今後のデプロイの作業の中で、CSSや画像を圧縮するのに使われます。
下記をターミナルを実行

ターミナル
[ec2-user@ip-172-31-25-189 ~]$ sudo curl -sL https://rpm.nodesource.com/setup_10.x | sudo bash -
[ec2-user@ip-172-31-25-189 ~]$ sudo yum -y install nodejs

これでNode.jsのインストールは完了です。

###Yarnのインストール
YarnはRailsに搭載されているJavaScriptのパッケージ管理するものです。

下記のコマンドでインストール

ターミナル
[ec2-user@ip-172-31-25-189 ~]$ sudo yum -y install wget
[ec2-user@ip-172-31-25-189 ~]$ sudo wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo
[ec2-user@ip-172-31-25-189 ~]$ sudo yum -y install yarn

これでYarnのインストールは完了です。

###rbenvとruby-buildをインストール
Rubyをインストールする前にこの二つをインストールしなければなりません。

下記のコマンドでインストール

ターミナル
# ①rbenvのインストール
[ec2-user@ip-172-31-25-189 ~]$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv 

# ②パスを通す
[ec2-user@ip-172-31-25-189 ~]$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile 

# ③rbenvを呼び出すための記述
[ec2-user@ip-172-31-25-189 ~]$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

# ④.bash_profileの読み込み
[ec2-user@ip-172-31-25-189 ~]$ source .bash_profile

# ⑤ruby-buildのインストール
[ec2-user@ip-172-31-25-189 ~]$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

# ⑥rehashを行う
[ec2-user@ip-172-31-25-189 ~]$ rbenv rehash

①でgitからrbenvをクローンしています。

②、③のパスを通すとはどのディレクトリからでもアプリケーションを呼び出せる状態にすることです。

④で設定したパスを読み込みます。

⑤でgitから「ruby-build」をクローンしています。

⑥使用しているRubyのバージョンで、gemのコマンドを使えるようにします。

###Rubyをインストール
Rubyをインストールしますが下記のコマンドのインストールするRubyのバージョンや自分のアプリで使っているバージョンは適宜変更します。

ターミナル
# Ruby 2.6.5のバージョンをインストール
[ec2-user@ip-172-31-25-189 ~]$ rbenv install 2.6.5

# EC2インスタンス内で使用するRubyのバージョンを決める
[ec2-user@ip-172-31-25-189 ~]$ rbenv global 2.6.5

# rehashを行う
[ec2-user@ip-172-31-25-189 ~]$ rbenv rehash  

# Rubyのバージョンを確認
[ec2-user@ip-172-31-25-189 ~]$ ruby -v 

Rubyのインストールは時間がかかりますが、固まっているように見えても変にいじらず待ちましょう。

今回はここまでです。次回はデータベースを用意していきます。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?