Results for tag "aws-amazon-ec2"

node.jsが使えるレンタルサーバー比較

Node Hostingから候補のサーバーのベンチマークをとってみた。
候補条件は独自ドメインでSSLが使えるプランである。
ベンチマークは開発中のサイトグルチャを動かしたときのユーザーページの表示速度である。
ベンチマークの結果は以下の通り。

サーバー プラン 料金(月) ベンチマーク
heroku SSL Addon $20=2334円 8秒
evennode 768MB RAM 3 instance €13=1757円 8秒
お名前.com vps メモリ2GBプラン 1315円(税抜),1420円(税込) 測定していないがめちゃ遅かった
AWS EC2 t2.small $13.14=1531円(バージニア1年間前払いなし) 30秒
Microsoft Azure 西日本Basic A0 1428円 30秒
openshift Bronze 3 Small gears 0円 30秒
bluemix 128MB RAM 1 instance 0円 30秒
Cloud Foundry 128MB RAM 1 instance $2.7=314円 1分30秒
NodeNinja 無料 0円 動かず
MODULUS 396MB RAM $14.4=1680円 動くがリロードで404エラー
Pogoapp 256MB RAM $5=583円 使い方分からず

為替レートは以下の通りの本日のレートで計算した。
$1=116.563702円
€1=135.232545円

サーバー コメント
heroku 独自ドメインSSL無しか、herokuサブドメインでSSL有りなら無料で使えるので最高の選択だろう。ただし、SSL Addonを入れると月$20かかってくる。
evennode 独自ドメインSSL有りでherokuより安くなり、速度もherokuと同等である。グルチャevennodeを使っている。
お名前.com vps 計測していないがめちゃ遅かった。30秒はかかっていただろう。あとSSL使う場合、別途初年度24,000円(税抜)かかるようだ。
AWS EC2 t2.smallでも30秒かかるので遅い。これより一段上のプランであるt2.mediumは3年間全前払いでも$16.86=1968円かかるのでevennodeより高くなるのでベンチマーク対象外とした。
Microsoft Azure 30秒かかった。ちなみに西日本StandardA0(1632円)、A1(5508円)、A7(78336円)も試してみたが速度は同じ。また、Microsoft Azure WebsitesのFREEを試してみたが、ブラウザのコンソールにwebsocketsのサーバー確立エラーが表示される。しかし、Azure Website での Socket.IO を使用する Node.js チャット アプリケーションの構築ではwebsocketが使えると書いてあるし、設定でもwebsocketを有効にしているのだが。
openshift 無料でSSLも使えるので非常に魅力的だったが速度が遅い。一段上のプランであるsmall.highcpuは$18.25=2130円かかるのでevennodeより高くなるのでベンチマーク対象外とした。
bluemix IBMが提供するCloud Foundryと同じシステムのPaaSである。Node Hostingには載ってないが、node.js使えるので使ってみたが、30秒かかるので遅い。
Cloud Foundry 最低$2.7は魅力的だが、めちゃ遅い。1GBも試してみたが同じ速度だった。SSLは使えない。ドキュメントにはCLOUD FLARE使いましょうと書いてあった。無料でSSLが使えるらしい。ってか、heroku + CLOUD FLAREで完全無料でSSL使えるんじゃね?
NodeNinja 無料で魅力的だがグルチャが動かなかった。SSLにできるかも不明。
MODULUS 動くには動くが、トップページの読み込みが異常に長いうえにリロードすると404エラーになってしまう。トップページさえ読み込めれば、他のページは速かった。SSLは無料で使える。
Pogoapp $5でSSLが使えるのでかなり魅力的だったが使い方が分からなかった。ドキュメントのページが404エラーになる。デプロイ用のgitもアドインで入れるっぽい。操作が特殊なので使うのを断念。

なお、各サーバーのデプロイ方法は下記のリンク参照。
node.jsをevennodeにデプロイしよう
node.jsをpivotal.ioにデプロイしよう
AWS EC2にnode.jsサーバーを構築しよう
angular-fullstackをherokuにデプロイする方法

他のサーバーのベンチマークをとらなかった理由は下記の通り。

サーバー 理由
appfog SSL有りが月$50するので高い
Baidu App Engine ホームページが中国語で分からない。中国国家の検閲が入って突然使えなくなっても困るし
clever cloud SSLが使えるか明記されていない。最低でも€14.4かかりevennodeより高いのでベンチマーク取らず
cloudnode ベータ版につき無料っぽいが、BaaSっぽい。SSLは使えるらしい。登録しようとしたが、短縮URLが表示されるだけで登録できない
dotCloud SSL付きだと$30.24するので高い。お試し期間もなさそう
exoscale apps リンク先エラー。PaaSは止めたっぽい
nodejitsu 最低でも月$25と高い。お試し期間もなし
JSApp.US Web IDE?ブラウザでコーディングする必要有り。プロプライエタリとして使うにはセキュリティが心配。
NAE(CN) リンク先エラー。どっちにしろ中国だし
RoseHosting 最低でも月$19.95するので高い。2CPUs 1GB RAM 30GB SSDは魅力的だが。SSL使えるかは不明

0

AWS EC2にnode.jsサーバーを構築しよう

環境は以下の通り。
・サーバーはAWS EC2
・サーバーのOSはAMI Linux
・ローカルのOSはCentOS 6.5
・ローカルにはnode.jsサーバーのソースコードがあるものとする

説明内容は以下の通り。
・サーバーにnode.jsをインストール
・サーバーにgitサーバーを立てる
・サーバーにnode.jsサーバーのソースコードをデプロイする
・サーバーのnode.jsサーバーを起動する

AWS EC2でのサーバー構築方法はsimtterができるまで(サーバー取得と設定)を参照して欲しい。
EC2からのリモートコントロールにはTera Termを使う。
Tera Termの使い方はchat.acができるまで(statusnetをインストール)を参照して欲しい。
ただし、今回インストールするOSはubuntuではなくAMI Linuxとする。
AMI Linuxのユーザー名はec2-userになる。

では、OSまで入った前提で以降を説明する。
 

node.jsをインストール

参考文献:
node.jsをyumでインストールする(centos6.5)
Amazon Linux AMI に関するよくある質問
Tera Termから下記コマンド実行。

sudo yum install nodejs npm --enablerepo=epel

 

gitサーバーを立てる

参考文献:自宅のCentOSにGitサーバを構築してみた
Tera Termから下記コマンド実行。

sudo yum install git git-deamon git-all xinetd
sudo chkconfig xinetd on
sudo vi /etc/xinetd.d/git-daemon

 
内容は

service git
{
        disable         = no
        socket_type     = stream
        wait            = no
        user            = nobody
        server          = /usr/libexec/git-core/git-daemon
        server_args     = --base-path=/home --export-all --user-path=ec2-user --syslog --inetd --verbose
        log_on_failure  += USERID
}

 
xinetd を起動

sudo service xinetd start

 
リポジトリ作成

cd ~
mkdir test.git
cd test.git
git --bare init --shared

 
gitグループを作成してユーザをそのグループに追加

sudo groupadd git
sudo usermod -G wheel,git ec2-user
sudo chown -R root:git ~/test.git

 

node.jsサーバーをデプロイする

ローカルのgitにはすでに何らかのソースコードをコミットしているものとする。
ローカルから下記コマンドを実行する。
 
リモートリポジトリの登録

git remote add origin ssh://ec2-user@[Public IP]:/~/test.git

※ [Public IP]はAWS EC2に割り当てられたIPアドレスを指定する。独自ドメインを設定している場合はドメイン名でも良い。
※ ssh 用の鍵ペアはTera Termでの通信で使う鍵と同じである。
 
リモートリポジトリに push

git push origin master

 

node.jsサーバーを起動する

サーバーで下記コマンドを実行する。
 
クローン作成

cd ~
git clone test.git

 
node.jsサーバー起動

cd test
node app.js

※ app.jsは自分が起動したいソースファイルに適宜読み替えること。


0

有料レンタルサーバーお名前.com vps, wpXクラウド, wpXレンタルサーバーをベンチマーク取ってみた

友人のサイトの管理をしてるんだけど、
今までAmazon AWS EC2 microインスタンスの無料枠を使っていたのだが、アクセス数が増えてきて、timeoutエラー起こしまくりで耐え切れなくなってきたので、乗換えを検討することになった。
サーバー選びの基準は以下の通り。
・Wordpressが動くこと(つまりPHP+MySQLが使えること)
・費用は一月1000円以下
・上記の条件内でなるべく速い方が良い

んで、まあ、やっぱり一番悩むのは速度だ。
下記のサイトを参考に候補を絞り込んでいったのだが、結局VPSと普通のレンタルサーバーでどっちが速いのか判断付かなかったので、VPSで一番速いお名前.com vpsとレンタルサーバーで一番速いwpX(wpXはクラウドレンタルサーバーがある)でベンチマークとって比較してみた。
[参考サイト]
VPSベンチマーク比較完全版[GMO/カゴヤ/お名前/さくら/Serversman(DTI)/conoha+専用サーバ]
WordPressのためのレンタルサーバーまとめと比較

ベンチマーク

ベンチマークの内容は以下の通り。
・Apache Benchで-c 10 -n 100を4回計測してRequests per second[#/sec]を比較した。
・計測に使ったサイトは割りと画像多め(もちろんWordpressで作られている)
 ちなみにAmazon EC2 microインスタンス(nginxリバースプロキシなし)で(あまりに遅いので)計測不可能になっちゃうサイト
・計測した日時は日曜の午前中
・お名前.com vpsはWordPressテンプレート(nginxにリバースプロキシを設定して高速化している)を使用している。さらにwordpressにWP Super cacheプラグインを入れた場合と無い場合の両方を計測した。
・wpXレンタルサーバーはwpX独自のキャッシュ機能が備わっており、キャッシュありなしが選択できるので両方を計測した。WP Super cacheプラグインは入れてない(あっても速度変わらなかったので)。
・wpXクラウドはキャッシュありしか選できないのでキャッシュありのみ計測した。WP Super cacheプラグインは入れてない。

サーバー プラン 料金(月) ベンチマーク1回目 2回目 3回目 4回目
お名前.com vps(キャッシュなし) メモリ1GBプラン 896円(税抜) 2.82 2.69 2.63 2.68
お名前.com vps メモリ1GBプラン 896円(税抜) 10.10 10.08 10.08 10.13
wpXレンタルサーバー(キャッシュなし) なし 1,000円(税抜) 4.90 4.68 4.98 4.78
wpXレンタルサーバー なし 1,000円(税抜) 33.90 35.21 16.31 16.53
wpXクラウド グレードA 500円(税抜) 30.76 22.53 17.52 38.47

wpXが数値的にも体感的にもwpXが速い。
wpXクラウドとwpXレンタルサーバーではそんなに速度変わらないようだ。
アクセスが多いといっても月3万PVぐらいなので、wpXクラウドのグレードAで大丈夫そう。
これで月500円は安いね。


0

Amazon AWS EC2 microインスタンスのUbuntuでswap領域を作ってMySQLが落ちないようにしよう

Amazon AWS EC2 microインスタンスでMySQLがよく落ちていたのだが、
原因はmicroインスタンスではswap領域が設定されていないために、メモリ不足で落ちていた。
 
Ubuntuでのswap領域の作り方は下記のリンクを参照。
swapファイルを追加する
 
※参考文献
Amazon EC2のMicro InstanceでWordPressを使うと、時々データベース確立エラーが起きるので対処した


0

UbuntuにnginxをインストールしてWordPressを動かそう

AWS Amazon EC2 の micro インスタンスを使って、LAMP環境でWordPressを動かしていたんだけど、実に重かった。
んで、思い切ってApacheから巷で速いと噂のnginxに乗り換えてみた。
すると、見事爆速に動くようになった。
というわけで、nginxのインストール方法とphpへの対応、パーマリンクが使えるようにrewriteの設定などについて書く。

nginxのインストール

と言っても、下記のURLに全て書いてあるので参考にインストールする。
ただし、バーチャルホストの設定はここに書かれている内容から変えるので、あとから説明する。
VPS(Ubuntu 12.04)でWordPress環境(しかもnginx)を構築する。
 

バーチャルホストとrewriteの設定

バーチャルホストを設定していないデフォルトの状態のままだとHPにはWelcone to enginxと表示される。
nginxではデフォルトのルートが /usr/share/nginx/www になっているので、そこに入ってる内容を表示している。
そこにWordPressをインストールしても良いのだが、すでにWordPressはapache時代に/var/wwwにインストール済みなので/var/wwwを表示するようにしたい。
それにデフォルトのままではphpの表示やrewriteの設定も動いてないので、バーチャルホストを設定するのが良いだろう。
バーチャルホストの設定は下記の通り。(バーチャルホストの設定の中でrewriteの設定も行っている)
 
ここでは設定したいバーチャルホストのドメインをfoo.comだったとする。
まず、/etc/nginx/conf.d/ にバーチャルホスト用のファイルを追加する。
ubuntuのターミナルから下記を入力する。

sudo nano /etc/nginx/conf.d/foo.com.conf

nanoが立ち上がり、/etc/nginx/conf.d/ にfoo.com.confファイルが新規作成される。
 
続いて、foo.com.conf に下記の内容を書く。

server {
        listen        80;
        server_name   foo.com;
        access_log  /var/log/nginx/foo.com.access.log;
        error_log   /var/log/nginx/foo.com.error.log;

        root /var/www;
        index index.php index.html index.htm;
        charset utf-8;

        if (!-e $request_filename) {
                rewrite ^.+?($/-.*) $1 last;
                rewrite ^.+?(/.*\.php)$ $1 last;
                rewrite ^ /index.php last;
        }

        location ~* \.php$ {
                fastcgi_index   index.php;
                fastcgi_pass    127.0.0.1:9000;
                include         fastcgi_params;
                fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
        }

        location ~ /\.ht {
                deny  all;
        }
}

ctrl+Xでnanoを保存終了。
続いて、nginxをリロードする。

sudo service nginx reload

 
さらにnginxをリスタートする。

sudo service nginx restart

 
これで、foo.comにアクセスしたらWordPressが表示されて、パーマリンクの設定も動く。

※参考文献
VPS(Ubuntu 12.04)でWordPress環境(しかもnginx)を構築する。
nginxだけでWordPressを動かすための設定


0

WordPressを無料レンタルサーバーCAPNIXに移転してみた

AWS Amazon EC2の無料枠期間も残すところ、あと1ヶ月を切った。
Amazon EC2は自由度が高くて、IaaSって素晴らしい!と思わせてくれた。
StatusNetを始め、WordPress、git、Redmine、Node.jsにいたるまで色んなものを入れれた。
無料枠で使うにはとっても素敵なサービスなんだけど、有料となると、Microインスタンスでさえ、月1500円かかるのはちょっと高い。
Microインスタンスだと実質WordPress入れるのが精一杯。
他のを欲張って入れるとCPUを使い切って、MySQLがよく落ちるようになってしまった。
これはもしかしたら、私の環境がUbuntu+Apache2からかも知れないが。
Amazon AMI+nginxが速いらしいんだけど。
どっちにしろ、月1500円払うほど大したことやってないので、せめてブログだけでも、安いところに移転できないかと移転先を探した。
国内の無料レンタルサーバーのxreaも良いかなあと思ったけど、広告入るのも嫌だなあと。
そして、海外の無料レンタルサーバーであるCAPNIXを使ってみることにした。
ディスク容量10GB、転送量100GB/月まで、PHPとMySQLが動いて、広告もなし。
いったい何で儲けているのか怪しいぐらいだけど、とりあえず試しに使ってみた。
登録方法は解説する必要もないぐらいに超簡単だった。
(名前とか住所とかメールアドレスとかよくある入力項目を入力して、メールアドレスに招待メールが送られてくるので、メール内のリンクをクリックすれば完了)
コントロールパネルは英語かフランス語しか対応していないが、この手のサービスに慣れた人なら分かるだろう。

今表示しているこのブログはCAPNIX上で動いてるんだけど、全く遅延もしないし、今のところ、問題なし。


0

ubuntuとムームードメインでサブドメインを設定しよう

ブログのURLを変えた。
新しいURLは
http://blog.chat.ac

サブドメインを使ってみたのだ。
備忘録として、設定方法を書きとめておく。

まずムームードメインでサブドメインを設定しよう。
ムームードメインの契約方法やコンパネの使い方とかは下記の過去記事を参考にしてください。
chat.acができるまで(ドメイン取得)
chat.acができるまで(ドメイン名設定)

subdomain.01
ムームードメインのサーバー設定画面を開いたら、以下の通り設定する。
サブドメイン:blog
種別:A
内容:IPアドレス(サーバー(私の場合Amazon EC2)で取った固定IPアドレス)
上記を設定して、セットアップ情報設定ボタンを押す。
以上、ムームードメイン側の設定は完了。
実にカンタン!

次は、ubuntuの設定を行う。
Tera Termを使って、Amazon EC2のubuntuに繋ぐ。
Tera Termの使い方も過去記事参照されたし。
chat.acができるまで(statusnetをインストール)

ubuntuでのサブドメインの設定方法は以下の記事を参考にさせてもらった。
http://qiita.com/items/0c81d14c9c1ad5367675

上記の記事とほぼ同じ内容だけど、一応自分の設定を載せておく。

ubuntu@ip-x-x-x-x:~$ sudo nano /etc/apache2/sites-available/blog

nanoを起動して、blogファイルを新規作成する。

<VirtualHost *:80>
    ServerName blog.chat.ac
    ServerAdmin webmaster@localhost
    DocumentRoot  /var/www/blog
    ErrorLog /var/log/apache2/blog.error.log
    CustomLog /var/log/apache2/blog.access.log combined
    LogLevel warn
</VirtualHost>

blogファイルの内容は上記の通り。
Ctrl+Xでblogファイルをセーブしてnano終了。

ubuntu@ip-x-x-x-x:~$ sudo a2ensite blog

有効化

ubuntu@ip-x-x-x-x:~$ sudo service apache2 reload

アパッチ再起動
以上。


2

chat.acができるまで(statusnetをインストール)

前回はムームードメインでAmazon EC2で取得したサーバーと固定IPアドレスとドメイン名を関連付けました。
今回は、いよいよサーバーにstatusnetをインストールします。
では、早速説明しましょう。

Step.1:Tera termのインストール

サーバーにstatusnetをインストールするためにSSHからサーバーへアクセスします。
SSHを使ったアクセスには、Tera Termを使います。
Tera term
http://www.forest.impress.co.jp/library/software/utf8teraterm/
※ここではWindowsからサーバーへアクセスする方法を説明します。
 linux系からはfilezillaなどを使ってアクセスできると思いますが現在手元にlinuxが無いので未確認です。

早速tera termをダウンロードしてインストールしてください。
普通のWindowsアプリですので、問題なくインストールできるかと思います。

Step.2:Tera termの起動

tera termがインストールできたら、早速tera termを起動してください。

tera-term-01
tera termを起動すると、
最初に、Tera term:新しい接続のウィンドウが開きますので、
TCP/IPにチェックして、
ホスト:ムームードメインで取得したドメイン名(私の場合chat.ac)
サービス:SSH
TCPポート:22
SSHバージョン:SSH2
プロトコル:UNSPEC
を設定して、OKボタンをクリックしてください。

tera-term-02
次にSSH認証ウィンドウが開きますので、
ユーザー名:ubuntu
パスフレーズ:(入力不要)
RSA/DSA鍵を使うにチェックして秘密鍵をクリックして、前々回Amazon EC2で作成したPair Key(前々回の例ではlogin_key.pem)を選択してください。

tera-term-03
OKボタンをクリックすると、Amazon EC2との通信が開始され、コマンド入力画面になります。

Step.3:Ubuntuのアップデート

ここからはすべてtera termからのコマンド入力でサーバーを操作していきます。
WindowsのGUIに慣れている人がほとんどだと思いますので、多少戸惑うも知れませんが、お決まりのコマンドを入力していくだけですので、大丈夫、できます。

まずサーバーのubuntuを最新に更新します。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo apt-get update

sudo: スーパー権限を意味します。ファイルを変更するときなどには絶対必要なコマンドです。
apt-get: アプリをインターネットからダウンロードしてインストールするコマンドです。
update: apt-getのオプションでサーバーに入っているアプリをすべて最新に更新します。
ubuntuの更新が始まり、完了すると、また、コマンド入力待ち状態に戻ります。

Step.4:apacheのインストール

次に、apacheをインストールします。
apacheはホームページを公開するためのアプリ(HTTPサーバーと呼ばれています)です。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo apt-get install apache2

apacheのインストールが完了すると、
/var/www/index.html
にトップページが作られます。
ためしにブラウザで自分のドメイン(私の場合chat.ac)にアクセスしてみてください。
It works!と表示されたらapacheのインストール成功です。
index.htmlを変更しても、ホームページは作成できますが、今回はstatusnetをインストールする予定ですので、
index.htmlは不要ですので削除しましょう。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo rm /var/www/index.html

rm: ファイルを削除するコマンドです。

ここでついでにubuntuサーバーのディレクトリ構成も説明しておきましょう。
ディレクトリは以下の通りになっています。

/
 - bin
 - etc
 - lib
 - media
 - proc
 - sbin
 - sys
 - var
   - www
 - boot
 - home
   - ubuntu
 - lib64
 - mnt
 - root
 - selinux
 - tmp
 - vmlinuz
 - dev
 - initrd.img
 - lost+found
 - opt
 - run
 - srv
 - usr

/: ルートディレクトリです。
/home/ubuntu: ユーザー用のディレクトリです。tera termを立ち上げると最初にこのディレクトリから始まります。tera termには”~”と表示さていると思いますが、これが/home/ubuntuを指しています。
/var/www: apacheが作ったホームページ用のディレクトリです。ここにstatsunetもインストールします。
沢山のディレクトリがありますが、今回使うのはこのうちのほんのわずかです。

Step.5:MySQLのインストール

次にMySQLをインストールします。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo apt-get install mysql-server

インストール中に管理者ユーザーrootのパスワードを入力する画面が表示されますので、パスワードを設定してください。

Step.6:PHPのインストール

次にPHPをインストールします。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo apt-get install php5 libapache2-mod-php5

インストールが完了したら、apacheを再起動します。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo /etc/init.d/apache2 restart

PHPがちゃんとインストールされているか動作確認しましょう。
テキストエディタで簡単なPHPの命令文を書いて動作させてみます。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo nano /var/www/test.php

nano: ubuntu標準のテキストエディタです。
/var/www/test.php: 今から作成しようとしているphpのテキストファイルです。

tera-term-10
nanoが起動したかと思いますので、ここに

<?php phpinfo(); ?>

と入力してください。
<?php ?>: phpを命令文を書くときの約束事です。
phpinfo(): phpの情報を取得するための命令文です。

tera-term-11
入力し終わったら、キーボードのCtrl+Xを押して終了しましょう。
終了するときにセーブしますかと聞かれるのでyを入力してください。

tera-term-12
ファイル名を確認されますので、問題なければエンターキーを押して終了です。

次にブラウザで
http://ドメイン名(私の場合chat.ac)/test.php
にアクセスしてPHPに関する情報がずらっと表示されたら成功です。
テストが完了したらtest.phpは削除しておきましょう。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo rm /var/www/test.php

※もし、PHPの動作確認する作業が難しければ、この作業は飛ばしても良いでしょう。

Step.7:PHPのサブセットのインストール

statusnetを動かすのに必要なPHPのサブセットをインストールします。
下記の3つのコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo apt-get install php5-gd php5-curl php5-mysql

これもインストールが終わったら、apacheを再起動します。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo /etc/init.d/apache2 restart

Step.8:statusnet用のデータベースの作成

mysqlにstatusnetのためのデータベースを作成します。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo mysql -u root -p

mysql: mysqlクライアントを起動するコマンドです。これを起動するとmysqlを操作するモードに移ります。

mysql> create database statusnet;

create database: データベースを作成するmysqlのコマンド
statusnet: 作成したいデータベース名。ここではわかりやすくstatusnetとしましたが、名前は何でもかまいません。
次に作成したデータベースを操作できるユーザーを作成します。
次のコマンドを入力してください。

mysql> grant all privileges on statusnet.* to xxxxxxxxx@localhost identified by '*********';

xxxxxxxxx: ユーザー名を入力してください。
*********: ユーザーのパスワードを入力してください。
これでmysqlクライアントでの作業は終了です。
最後に終了コマンドを入力してmysqlクライアントを終了してください。

mysql> exit

Step.9:statusnetをダウンロードして解凍

ついにstatusnetをインストールする準備ができました。
まずは下記のURLでstasunetの最新バージョンを確認してください。
http://status.net/download
現在の最新はバージョン1.1.0のようです。
では、これをサーバーにダウンロードしましょう。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo wget -P /var/www/ http://status.net/statusnet-1.1.0.tar.gz

wget: インターネットからファイルをダウンロードするコマンドです。
-P: ダウンロードしたファイルの保存先を指定するオプション
/var/www/: 保存したいディレクトリ名
http://status.net/statusnet-1.1.0.tar.gz: ダウンロード元
次にstatusnet-1.1.0.tar.gzを解凍します。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo tar xzvf /var/www/statusnet-1.1.0.tar.gz

tar: tarファイルを操作するコマンドです。
xzvf: 解凍を意味するオプションです。
/var/www/statusnet-1.1.0.tar.gz: 解凍するファイルを指定します。
statusnet-1.1.0というディレクトリが作成されて、その中にstatusnetの中身が解凍されます。
しかし、このままでは、http://ドメイン名/statusnet-1.1.0 でアクセスすることになって、ちょっとダサいので、
statusnetの中身をトップページに移動して、http://ドメイン名 でアクセスできるようにしましょう。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo mv /var/www/statusnet-1.1.0/* /var/www/

mv: ファイルを移動するコマンドです。
/var/www/statusnet-1.1.0/*: 移動元のファイルです。*はstatusnetディレクトリ以下のファイルすべてを意味します。
/var/www/: 移動先のディレクトリです。
次にstatusnetディレクトリは不要になりましたので削除します。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo rm /var/www/statusnet-1.1.0/

また、圧縮ファイルも不要ですので削除してください。

ubuntu@ip-x-x-x-x:~$ sudo rm /var/www/statusnet-1.1.0.tar.gz

Step.10:アクセス権限の設定

次にstatusnetが書き込めるようにディレクトリに書き込み権限を与えます。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo chown -R www-data:www-data /var/www/avatar
ubuntu@ip-x-x-x-x:~$ sudo chown -R www-data:www-data /var/www/background
ubuntu@ip-x-x-x-x:~$ sudo chown -R www-data:www-data /var/www/file

chown: ファイルやディレクトリの権限を設定するコマンドです。ubuntuやlinux系OSでは各ファイルやディレクトリに権限が設定されていてデフォルトではroot以外書き込みができないよう設定されいます。
Windowsと違って書き込み権限が厳しく設定されているために、linuxはセキュリティが厳しいといわれています。
-R: 指定のディレクトリ以下の権限を設定するオプションです。
www-data:www-data: www-dataグループのwww-dataユーザーに書き込み権限を与えることを意味します。www-dataはapacheのことです。
/var/www/: 権限を操作するディレクトリを指定します。

Step.11:statusnetのインストール

次にいよいよstatusnetのインストール画面を起動します。
ブラウザから下記のURLを入力してstatsunetのインストール画面にアクセスしてください。

http://ドメイン名/install.php

statusnet-01
インストール画面が表示されたら、下記を入力してください。
site name:自分のサイトの名前(私の場合simtter)
Funcity URLs: disableをチェック
Hostname:ドメイン名(私の場合chat.ac)
Type:MySQLをチェック
Name:MySQLクライアントで作成したデータベース名(例ではstatusnet)
DB Username:MySQLクライアントで作成したユーザー名(例ではxxxxxxxx)
DB Password:ユーザーのパスワード
Administrator nickname:statusnet上でのあなたの名前(statsnetにログインするときに使います)
Administrator password:あなたのユーザーのパスワード(statsnetにログインするときに使います)
Confirm password: パスワードをもう一度
Administrator e-mail:あなたのメールアドレス(任意です)
Subsribe to announcements: statusnetからの更新情報を受け取るかどうか。(チェックするかどうか、どちらでも良いでしょう)
Type of site:Publicを選択
以上を入力し終わったらsubmitボタンを押してください。

ついにstatusnetのインストール完了です。
ブラウザから下記のURLを入力してstatsunetの動作確認をしてください。

http://ドメイン名/index.php

Step.12:DirectoryIndexの設定

これでほぼ完了ですが、index.phpと入力しないとstatusnetにアクセスできないのがちょっとダサいですよね。
ドメイン名だけでトップページを表示したいところ。
その方法を説明しましょう。

まず、設定ファイルのサンプルがあるのでコピーします。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo cp /var/www/htaccess.sample /var/www/.htaccess

次にコピーした設定ファイルを編集します。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo nano /var/www/.htaccess

nanoが起動したら、ファイルの一番下に以下の命令文を入力します。

DirectoryIndex index.php

入力したらキーボードからCtrl+Xを押して、セーブして終了します。

これでブラウザからhttp://ドメイン名 にアクセスするだけでstatusnetのトップページが表示されます。

以上で本当に完了です。
お疲れ様でした。


4

chat.acができるまで(ドメイン名設定)

前回はAmazon EC2でのサーバーの設定作業を説明しました。
今回は前回立ち上げたサーバーとムームードメインで取得したドメイン名を関連付けましょう。
これで、ブラウザからドメイン名を入力してサーバーへアクセスできるようになります。
では早速手順を説明しましょう。

Step.1:ドメイン名に固定IPアドレスを関連付ける

muumuu-domain-10
ムームードメインのトップページの左上にあるコンパネをクリックします。
※コンパネとはコントロールパネルの略でしょう。

muumuu-domain-11
コントロールパネルのページが開きますので、
前々回設定したムームードメインのIDとパスワードを入力してログインをクリックします。

muumuu-domain-12
次にドメイン一覧のページが開きますので、
自分のドメイン名(私の場合chat.ac)をクリックしてください。

muumuu-domain-13
次にそのドメインのドメイン情報が表示されますので、
ネームサーバ設定変更の欄の
サービス:ムームーDNS
にあるセットアップボタンをクリックしてください。
※サービスがムームーDNSになっていなかったらネームサーバ設定変更ボタンをクリックしてムームーDNSに変更してください。

muumuu-domain-14
次にカスタム設定のセットアップ情報変更画面になりますので、
設定2の欄に
種類:A
内容:Amazon EC2で取得した固定IPアドレス
を設定してセットアップ情報変更ボタンをクリックして、完了です。
※もしサブドメイン(wwwなど)を設定したい場合は、
 サブドメイン:www
 などと設定すればできます。

今回は非常に簡単でしたね。
次回はいよいよ、statusnetをインストールします。


2

chat.acができるまで(サーバー取得と設定)

前回はドメイン取得を説明しました。
今回はサーバー取得と設定を説明します。

サーバーはAmazon EC2を使っています。
Amazon EC2
http://aws.amazon.com/jp/ec2/
このサーバーの魅力は速くて安い。1年間無料使用枠つきなところです。
では、このサーバーの取得方法と設定を説明していきます。

Step.1:サインアップ

amazon-ec2-01
サーバーを申し込むにはまず上記のリンクの「今すぐサインアップ」をクリックしましょう。

amazon-ec2-02
クリックするといきなり英語のページになっちゃいますが、ひるむことなかれ。
メールアドレスと”I am a new user”を選択して”Sign in our secue server”をクリックしましょう。

amazon-ec2-03
次に”Login Credentials”のページに移り
My name is:あなたの名前
My e-mail address is:あなたのメールアドレス
Type it again:もう一度メールアドレス入力
Enter a new password:パスワード入力
Type it again:もう一度パスワード入力
を入力して、Continueをクリックしましょう。

amazon-ec2-04
次に「お問い合わせ情報」と日本語のページに移ります。
ここから先は流れに従えば問題ないでしょう。
注意点としては1年間無料使用範囲を使うつもりでもクレジットカードなどの入力は必要です。

Step.2:Amazon EC2へサインイン

無事に申し込みできましたか?
早速EC2の設定を説明します。

amazon-ec2-05
Amazon EC2の画面の上に方に
アカウント/コンソールというメニューがあるので、そこにカーソルを合わせると、
メニューが開きますので、
AWS Management Console
を選択します。

amazon-ec2-06
すると、AWS(Amazon Web Service)の設定画面が開きます。
色々な項目が表示されていると思いますが、その中のEC2を選択します。
ちなみにAWSには色々な機能がついてますが、ここではEC2しか使いませんので。

Step.3:サーバー立ち上げ

では、いよいよサーバーの立ち上げ方法について説明します。

amazon-ec2-07
まず、EC2の画面(EC2 Dashboard)の右上にUS EastやらUS Westやらのリージョンが表示されているところがあります。
Tokyoになっていなかったら、Tokyoに変更してください。
自分の作りたいホームページがどこの国の人向けなのかによりますが、たぶんみなさん日本人向けを作りたいでしょうから、日本からのアクセスの良いTokyoにしておきましょう。
もちろんアメリカ人向けを考えているなら、USでOKです。

amazon-ec2-08
次にE2の画面(EC2 Dashboard)で、ひときわ目立つ青のボタン”Launch Instance”をクリックします。

amazon-ec2-09
すると”Create a new instance”のウィンドウが開きますので、”Classic Wizard”を選択してContinueをクリックします。

amazon-ec2-10
すると”Request Instances Wizard”のウィンドウの”Quick Start”タブが開きます。
このタブでOSを選ぶのですが、色々なOSが並んでいると思います。
黄色い★マークがついているものが無料使用範囲で使えるOSです。
“Amazon Linux AMI”, “Unbuntu”, “Windows Server”に★がついているはずです。
この中でUnbuntu Server LTSを選択してContinueをクリックします。
Unbutuは数あるLinuxのディストリビューションの中でも一番有名ですので、もしトラブルが起きたときでも、ネットに情報が落ちているので安心です。
ちなみに”Amazon Linux AMI”はアマゾンオリジナルのLinuxです。
“Windows Server”はいわずとしれたWindowsですね。

amazon-ec2-11
次にINSTANCE DETAILSのウィンドウになります。
ここでは、無料枠で使えるT1 Micro(デフォルトのまま)を選択してContinueをクリックします。

amazon-ec2-12
amazon-ec2-13
amazon-ec2-14
次の”Advanced Instance Options”, “Storage Device Configration”, “Add Tags”の3ウィンドウはデフォルトのままでOKですので、Continueをクリックしてください。

amazon-ec2-15
次にCREATE KEY PAIRのウィンドウになります。
ここでは、”Create a new key pair”を選択して、
1.Enter a name for your key pair:key pairのファイル名を入力してください。(ここではlogin_keyとします)
2.Click to your key pair:”Create & Download your key pair”ボタンをクリックしてください
するとlogin_key.pemというファイルが作成されてダウンロードされます。
このファイルは作ったサーバー環境にログインするときに必要になります。
完了したら、Continueをクリックします。

amazon-ec2-16
次にCONFIGURE FIREWALLのウィンドウになります。
ここでは、”Choose one or more of your exiting Security Groups”を選択肢して、
Security Group:default
を選択してContinueをクリックします。

amazon-ec2-17
次にREVIEWのウィンドウになります。
ここでは、今まで設定した内容が表示されますので問題なければLaunchボタンをクリックします。

amazon-ec2-18
次に”Your instances are now launching”が表示され、Closeボタンをクリックして完了です。
ついにサーバーが構築され、動きました。

Step.4:ポートの設定

では、次に先ほど構築したサーバーにHTTPポートを開けてホームページが見れるように、SSHポートを開けてサーバーと通信できるようにしましょう。

amazon-ec2-20
EC2設定画面(EC2 Dashboard)でNETWORK & SECURITYのSecurity Groupsをクリックしてください。

amazon-ec2-21
次にdefaultにチェックを入れてください。
すると画面の下の方に”1.Security Groups selected”が表示されるので、
その中のInboundタブをクリックします。

amazon-ec2-22
次に
Create a new rule: HTTPを選択してください。
Add Ruleボタンをクリックしてください。

amazon-ec2-23
続いて、同じ要領で
Create a new rule: SSHを選択してください。
Add Ruleボタンをクリックしてください。

amazon-ec2-24
最後に”Apply Rule Changes”ボタンをクリックして完了です。
これでHTTPとSSHのポートが開きました。
※注意: “Apply Rule Changes”ボタンを押さないと設定が反映されませんので注意してください。
    私は最初押し忘れてて反映されずに手間取りました。

Step.5:固定IPアドレスの設定

次に固定IPアドレスを取得してドメインが設定できるようにしましょう。

amazon-ec2-30
EC2設定画面(EC2 Dashboard)でNETWORK & SECURITYのElastic IPsをクリックしてください。

amazon-ec2-31
次に画面の上の方の”Allocate New Address”ボタンをクリックしてください。

amazon-ec2-32
“Allocate New Address”ウィンドウが開きますので、”Yes, Allocate”をクリックしてください。

amazon-ec2-33
次に先ほど作った固定IPアドレスにチェックを入れて”Assciate Address”をクリックしてください。

amazon-ec2-34
“Assciate Address”ウィンドウが開いたら
Instance: Step.3で作ったサーバーを指定
“Yes, Assciate”をクリックして完了です。

EC2での設定はこれで完了です。
次回はムームードメインに戻って、先ほど取得した固定IPアドレスとドメイン名の関連付けを行います。


3