はじめに
前回、EC2の各種設定を行い起動させるところまで実行しました。
今回は起動したサーバーに接続し、簡単なアプリケーションを動かしてみたいと思います。
EIPとは?EIPの取得と付与
本題に入る前に、前回盛込みきれなかった部分にEIP(Elastic IP Address)の話があります。
EIPはインターネット経由でアクセス可能な固定グローバルIPを取得し、インスタンスに付与することができます。
一旦設定しておけば、削除するまでIPアドレスを保持することが可能です。
Public IPアドレスの機能にも似ていますが、インスタンスを停止・起動をすると変わってしまう点で異なります。
接続
さぁ本題です。前回立ち上げたサーバーに接続してみましょう。
前提として、UNIX系のターミナル経由の場合です。あなたのPCが、MacやLinuxの場合ですね。
まずは、ターミナルを開いてください!
そしたら、早速sshで接続です。
$ssh -i first-keypair.pem ec2-user@あなたのEC2のIPアドレス
-iオプションは秘密鍵があるパスを指定してください。
今いるディレクトリが秘密鍵の存在するディレクトリであれば上記のままでOKです。
初めてのサーバーにアクセスするときは、以下を聞かれると思います。
yesを入力してエンターを押しましょう。
Are you sure you want to continue connecting (yes/no)?
すると、以下のようなWARNINGが出て接続に失敗すると思います。
要は、秘密鍵に対するパーミッションがいけてませんということですね。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'first-keypair.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "first-keypair.pem": bad permissions
Permission denied (publickey).
$ls -ll
でパーミッションを見てみると、
-rw-r--r--@ 1 koichi staff 1696 5 7 17:51 first-keypair.pem
ファイルで、本人は読み書き可、グループは読みのみ可、他人は読みのみ可の設定です。
もっと秘密にしなきゃなので、以下を実行してパーミッションを変更。
$chmod 600 first-keypair.pem
もう一度
$ls -ll
-rw-------@ 1 koichi staff 1696 5 7 17:51 first-keypair.pem
オッケー、秘密になりましたね!
では、気を取り直してもう一度実行
$ssh -i first-keypair.pem ec2-user@あなたのEC2のIPアドレス
__| __|_ )
_| ( / Amazon Linux AMI
___|\___|___|
こんなのが出たら、接続成功です!!ヤター!
アプリケーション準備
サーバーのアップデート
接続が完了すると、以下の文言も表示されていると思います。
Run "sudo yum update" to apply all updates.
言われるがままにRunしてみましょう。
-yを入れます
sudo yum -y update
最後に「完了しました!」が表示されたらOKです。
nginxのインストール
今回はWebサーバーとしてnginxを利用しましょう!
nginxはパッケージが用意されているので、簡単にインストールが可能です。
$sudo yum -y install nginx
これまた最後に「完了しました!」が表示されたらOKです。
Webサーバーを起動してみましょう。
$sudo service nginx start
Starting nginx: [ OK ]
ここまでできれば、該当のEIPを入力してみましょう。
http://XXXX.XXXX.XXXX.XXXX
「Welcome to nginx on the Amazon Linux AMI!」のページが表示されたでしょうか。
もし Welcome To The Jungle になってたら、あなたは80年代好きです。
MySQLのインストール
本日の折り返し地点になります。
次にデータベースサーバーとしてMySQLをインストールします。
こちらもnginx同様、パッケージがあるので簡単に準備できます。
$sudo yum -y install mysql-server
最後に「完了しました!」が表示されていますか?
mysqlを動かしておきましょう。
$sudo service mysq
ld start
Starting mysqld:
になればOKです!
一応試しに接続しておきましょうか。
$mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.54 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
バッチ、ぐー!
mysql> quit
で抜けておきましょう。
アプリケーション作成
さぁメインのアプリケーションですが、サクッと作りたいのでRailsでいきましょう。
ビルドのためのパッケージをインストールします。
$sudo yum -y groupinstall 'Development Tools'
RubyとMySQLのライブラリもインストール
$sudo yum -y install ruby-devel mysql-devel
RailsではJavaScriptランタイムとしてNode.jsが必要になります。
デフォルトではないため、EPELからインストールします。
$sudo yum -y --enablerepo=epel install nodejs
ここまででRailsをインストールする準備が整いました。
早速Railsをインストールしましょう。
$gem install rails io-console --no-rdoc --no-ri
完了したら、Railsのバージョンを確認してみましょう。
$rails -v
-bash: rails: コマンドが見つかりません
あれ?よく見ると、
$gem install rails io-console –no-rdoc –no-ri
でエラーが発生していたようです。
ERROR: Error installing rails:activesupport requires Ruby version >= 2.2.2.
rubyのバージョンが古い模様です。
gitは既にインストールされているので、rbenvをインストールしてrubyのバージョンを上げましょう。
$git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
$mkdir -p ~/.rbenv/plugins
$git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$cd ~/.rbenv/plugins/ruby-build
$sudo ./install.sh
$echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$source ~/.bash_profile
$sudo yum install -y readline-devel
$rbenv install 2.3.4
$rbenv versions
$rbenv rehash
$rbenv global 2.3.4
思わぬ罠がありましたね…。
$ gem install rails
$rails -v
Rails 5.1.1
問題なく最新がインストールされました。
プロジェクトを作成して、起動してみましょう。
$rails new first-app --database=mysql --skip git --skip-javascript --skip-spring --skip-test-unit
$cd first-app
$rake db:create
$rake db:migrate
確認
準備は整いました。
$rails server -b 0.0.0.0
で、railsを立ち上げて、ブラウザからアクセスしてみましょう。
Rialsの初期画面が表示されれば成功です!
EC2を立ち上げてアプリケーションを動かすところまでできました。
あとは、アプリケーションを作り込めばいいだけです。