LoginSignup
0
0

More than 3 years have passed since last update.

[Rails]AWS EC2インスタンスの環境構築

Posted at

今回はAWS EC2インスタンスの中でアプリケーションを起動するための環境構築をしていきます。

前提条件

自身のコンピュータとEC2インスタンスとの間でSSH接続をして、EC2インスタンスにログインできている。

設定用のツールをインストール

最初にyumというコマンドを使ってこのサーバに元々あるプログラムをアップデートします。
こうしたプログラムをパッケージと呼びます。

yumコマンド

Linuxにおけるソフトウェア管理の仕組みです。MacOSにとってのHomebrewと同じ役割を果たします。
yumコマンドを利用することで、yumの管理下にあるプログラムのバージョンを管理したり、一括でアップデートしたりできます。

パッケージ

LinuxOS下における、ある役割/機能をもったプログラムの集合です。
ソフトウェアとも、ライブラリとも呼べます。
あくまでもLinuxOSでは、ある役割/機能をもったプログラムの集合のことをパッケージと呼ぶよ、ということです。

パッケージのアップデート

本番環境内で実施していきます。

[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コマンドは全ての問いにYesで自動的に答えるように設定するコマンドです。

Node.jsをインストール

続いて、EC2上でJavaScriptを動かすためにNode.jsをインストールします。

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

Node.js

サーバーサイドで動くJavaScriptのパッケージです。今後のデプロイに向けた作業の中で、CSSや画像を圧縮する際に活用されます。

rbenvとruby-buildをインストール

Macの環境構築の際にも利用しましたが、改めて簡単に説明しておきます。
rbenvとruby-buildは、Rubyのバージョンを管理する際に組み合わせて使うツールになります。これらはRubyをインストールする前に、インストールする必要があります。
ruby-buildはrbenvのプラグインであり、ruby-buildによってRubyの様々なバージョン(2.0.0など)をインストールすることができます。
rbenvを使用することで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

2つ目と3つ目のコマンドは、パスを通す際に必要なコマンドです。パスを通すとは、どのディレクトリからもアプリケーションを呼び出せる状態にするということです。
そして、4つ目のコマンドで、設定したパスを読み込んでいます。
最後のコマンドは、使用しているRubyのバージョンにおいて、gemのコマンドを使えるようにするために必要なコマンドです。

Rubyをインストール

以下で実行するコマンド群は、インストールするRubyのバージョン、自身のアプリケーションで使っているRubyのバージョンによって適宜変更してください。

#Rubyの2.5.1のバージョンをインストール
[ec2-user@ip-172-31-25-189 ~]$ rbenv install 2.5.1
#EC2インスタンス内で使用するRubyのバージョンを決める
[ec2-user@ip-172-31-25-189 ~]$ rbenv global 2.5.1
#rehashを行う
[ec2-user@ip-172-31-25-189 ~]$ rbenv rehash
[ec2-user@ip-172-31-25-189 ~]$ ruby -v

MySQLの設定

今回はRDBMS(リレーショナルデータベースマネジメントシステム)の中でも代表的なMySQLを使用していきます。
今回のシステム構成のイメージとしては以下の通り。
スクリーンショット 2020-06-06 22.27.24.png

MySQL

Oracle社が開発・提供をしているRDBMSです。データベースの作成、編集、削除などを行うことができます。オープンソースソフトウェアとして公開されており、誰でも無償で利用することができます。

MySQLのインストール

Amazon Linuxを利用している場合、MySQLは yum コマンドからインストールすることができます。
今回はMySQLのバージョン5.6をインストールします。

[ec2-user@ip-172-31-25-189 ~]$ sudo yum -y install mysql56-server mysql56-devel mysql56

MySQLの起動

MySQLを起動するために service コマンドを利用します。これは、Amazon LinuxやCentOSに含まれているもので、インストールしたソフトウェアの起動を一括して行えるツールです。

[ec2-user@ip-172-31-25-189 ~]$ sudo service mysqld start

mysqldのdはLinuxの用語で「サーバ」を意味する「デーモン(daemon)」の頭文字です。

以下で起動できているか確認できます。

[ec2-user@ip-172-31-25-189 ~]$ sudo service mysqld status
mysqld (pid  15692) is running...

MySQLのrootパスワードの設定

yum でインストールしたMySQLには、デフォルトで root というユーザーでアクセス出来るようになっていますが、パスワードは設定されていません。

そこで、以下のコマンドでパスワードを設定しましょう。'設定したいパスワード'の部分については、例えばpassword0000という文字列を設定するとしたら、 'password0000'と記載しましょう。
0から始まるpasswordは読み込んでくれないケースが多いので、避けます。
(例えば、’0331higuchi’など)

[ec2-user@ip-172-31-25-189 ~]$ sudo /usr/libexec/mysql56/mysqladmin -u root password 'ここを設定したいパスワードに変更してからコマンドを実行してください'

MySQLへの接続方法

[ec2-user@ip-172-31-25-189 ~]$ mysql -u root -p

上記のコマンドを入力後に先ほど設定したパスワードの入力が求められるので、入力すると接続ができます。

アプリ公開のためのWebサーバー、Applicationサーバーの設定は次回記事に記載します。

0
0
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
0