今回は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を使用していきます。
今回のシステム構成のイメージとしては以下の通り。
##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サーバーの設定は次回記事に記載します。