- 質問:AWSにEC2インスタンスを立てたことがある人?
- AWSのアカウント持ってない人はこの機会に取得してみよう
- クレカがない人は言ってください
- AWSにログインしてみよう https://portal.aws.amazon.com/
- 東京リージョンに変更してみよう
- Debian Jessieのインスタンスを起動してみよう
- Rubyビルド済みインスタンスを用意しました
- サイドバーのAMIから、検索欄に ami-53021a3d と書いて「パブリックイメージ」を選択
- インスタンスタイプはt2.microぐらいで十分(t2.nanoでも良い)
- セキュリティグループの設定で自分のIPアドレスからのみすべてのTCP接続を許可してみよう
- Rubyビルド済みインスタンスを用意しました
- adminユーザーでログインしてみよう チートシート
ここまで20分
ps aux
を打ってみよう- 質問:プロセスは何個ぐらい起動してる?
- 自分のMacでも打ってみて数えてみよう
- 質問:プロセスは何個ぐらい起動してる?
top
を打ってみよう- 質問:このサーバーのメモリはどのぐらい?そのうちどのぐらい使われてる?
df -h
を打ってみよう- 質問:このサーバーのディスク容量はどのぐらい?そのうちどのぐらい使われてる?
- 質問:このサーバーに入ってるテキストエディタは何がある?
- vimとかemacsとか入れたければaptで入れてみよう
- どれも得意じゃなければnanoを使おう
- vimとかemacsとか入れたければaptで入れてみよう
ここまで30分
sudo apt install php5 apache2
してみようps aux
を打ってみよう- 質問:Apacheのプロセスはいくつ起動してる?
less /etc/apache2/sites-enabled/000-default.conf
してみよう- 質問:どこにphpファイルを置けばブラウザから見られる?
<?php var_dump($_SERVER);
と書いたindex.phpというファイルを置いてブラウザでアクセスしてみよう- 質問:SERVER_SOFTWAREの値は?
ここまで40分
- Apacheを止めてみよう
- systemctlを使ってApacheを止めてみよう(チートシート)
ここまで45分
- aptでphp5-fpmをインストールしてみよう
sudo systemctl status php5-fpm
と打ってみよう- 質問:php-fpmのプロセスはいくつ起動してる?
- 質問:php5-fpm の設定ファイルはどこにある?
- 設定ファイルを開いてみよう
- 質問:php-fpmがlistenしているソケットファイルはどこにある?
- (トリッキーなので誰も手が上がらなければすぐに教える)
- 設定ファイルを開いてみよう
ここまで55分
- aptでnginxをインストールしてみよう
- nginxでphp-fpmにリバースプロキシしてみよう(チートシート)
- 手元のマシンで
/etc/hosts
を書いてブラウザでアクセスしてみよう - 質問:SERVER_SOFTWAREの値は?
- 手元のマシンで
ここまで65分
- Ruby 2.3.1をインストールしてみよう
- Rubyをビルドしてみよう
- Rubyをダウンロードしてホームディレクトリにインストールしてみよう
./configure --path=$HOME/local && make && make install
- (Rubyビルド済みインスタンスではここまで完了してます)
- Rubyをダウンロードしてホームディレクトリにインストールしてみよう
- Rubyをビルドしてみよう
~/.bash_profile
で、$HOME/local/bin
を $PATH に追加してみよう(チートシート)gem install bundler
してみよう
ここまで75分
- 簡単なRackアプリケーションを書いてみよう(チートシート)
bundle exec uniorn -c unicorn.rb
で起動してみよう- ブラウザでサーバーのIPアドレスとunicornのポートを指定してアクセスしてみよう
- systemdに登録してデーモン化してみよう(チートシート)
- 質問:unicornのプロセス数は?
ここまで90分
- nginxでunicornにリバースプロキシしてみよう(チートシート)
- 手元のマシンで
/etc/hosts
を書いてブラウザでアクセスしてみよう - PHPとRubyを別々のURLで見られるようにしてみよう
- 手元のマシンで
ここまで95分
- nginxのアクセスログにレスポンスタイムを出すようにしてみよう(チートシート)
- ブラウザでPHPとRubyのページをリロードしながら upstream_response_time の値を見てみよう
- topコマンドを使ってみよう
- メモリ順に並べてみよう
- CPU順に並べてみよう
- ウェブブラウザでF5連打してみよう
- dstatコマンドをインストールしてみよう
dstat -tlap --top-cpu --top-io
と打ってみよう- ウェブブラウザでF5連打してみよう
- RubyとPHPでコード中の2点間のマイクロ秒をprintしてみよう
ここまで120分
インスタンスを削除するのを忘れずに!