【EC2+owncloud】Amazon EC2を使ってみる。

久しぶりに更新です。
無事に薬剤師国家試験に合格し、薬剤師免許を申請する資格を手に入れました。(まだ薬剤師ではない。)
それはそれとして、Amazon EC2を使って社内クラウドファイル管理(Dropboxのようなもの)を構築してみることにしました。
作業は初めてでも2〜3時間もみとけば余裕かと思います。

用意するもの

  • ■Amazon AWSアカウント(新規取得)
  • ■クレジットカード(利用料金決済用)
  • ■SSHクライアント(TeraTermとかTerminalとか)

とりあえず使ってみたい方に朗報。

いまなら(ずっとかも?)AWSのサービスが一部無料で利用できます。
EC2ならmicroインスタンスを最小限構成で1年使える。
アカウント持ってない人は、Amazon AWSの新規登録から。
最近日本語もちゃんとしてきてつかいやすくなってます。

コンソールからのEC2利用開始

登録したら、コンソールはこんな感じ。
Amazon AWSコンソール
EC2使いたいので「コンピューティング」→「Amazon EC2」を選びます。

インスタンスの追加

Amazon EC2コンソール
新規で追加する場合は「インスタンスの追加」を選びます。

Amazon EC2 OS
なんかまぁ流れに従って選んでいきますが、OSはAmazon Linux AMIの一番上のやつ選びました。
なんでもいいんだけど、少し料金が変わってきます。Amazon Linuxは一番安いっぽい。

EC2 インスタンスタイプ
インスタンスタイプは最小構成なら「t2.micro」でしょうか。
親切に「無料利用枠の対象」って書いてあります。

Amazon EC2 インスタンス設定
詳細設定は「誤った削除から保護します」という部分だけチェックしときましょう。

Amazon EC2 ストレージ
ストレージは全体で30GBまでは無料利用枠の対象です。後からマウントもできるので起動ディスクとしての設定程度の認識でもOK。

EC2 セキュリティグループ設定
一番つまづきやすいのはセキュリティグループの設定かな。
どこのIPからのアクセスをどのポートで許可するかとか。インとアウトで細かく設定できます。ファイアウォール設定的な感じ。後からするんでもOK。
自分のところが固定IPならSSHをそれで許可。全て許可(任意の場所「0.0.0.0/0」がそうっぽい)もできるけど、あまり推奨されてない感じ。(あたりまえか)
※ちなみにSSH許可しないと接続できないのでマジ注意!(よくわかってなくて、ここで5〜10分取られた。)

SSHで接続してみよう

ここまでやったらインスタンスが作成できる。キーペアをつくってSSHで接続できるように適当なところに置く。
pemファイルは

chmod 400

しておこう。(というかしないとできない気がする。)
EC2ダッシュボードのインスタンス一覧からグローバルIPを確認してSSH接続を試す。
デフォルトのユーザーは「ec2-user」なので、
ターミナルソフトから

ssh -i *****.pem ec2-user@**.**.**.**

※「*****.pem」はキーペアのファイル名、「ec2-user@**.**.**.**」はグローバルIP。
キーペア認証なのでパスワードはなしでいける。

yum updateする

ログインできたら、とりあえず

sudo yum update

しとく。

httpdで失敗した

そんでこっからは失敗した話。
httpd入れようと思って(Nginx使ったりもしてたけど、ちょっと運用面で不満があったのでApacheにした。)

sudo yum install -y httpd

これをやったんだけど、この後PHP5.6を入れようとして

sudo yum install -y php56-devel

やったらhttpdの依存関係でエラーが出た。
一旦httpdアンインストール。
phpいれると自動で入るっぽかったのでそちらに任せてPHP5.6入れなおし。
ちなみにPHPはバージョン指定なしの

sudo yum install -y php

だと5.3が入る。ほかにはphp54とphp55とphp56がある。(2015年4月現在)
php7が待ち遠しい。

PHP5.6をいれる。httpdは自動で入る

失敗した話はここまで。

sudo yum install -y php56-devel

だけやっとけば良い。httpdはいれなくてもはいる。(※バージョン関係だけどめんどくさいので)

php.iniを設定。多分/etc/php-5.6.iniをいじる。設定は省略。
httpd.confを設定。最小限。/etc/httpd/conf/httpd.confと/etc/httpd/conf.d/の中にある。

chkconfigとserviceを使って操作するあたりはCestOSと同じ感じ。
※systemctlではない!
httpdを自動起動する設定にする。

sudo chkconfig httpd on

httpdを起動

sudo service httpd start

以上。

owncloudをいれる

クラウドファイル管理はowncloudを使う。
Dropboxみたいな使い勝手でサーバーの容量を使えて、しかもグループ・ユーザー管理ができる。
しかもしかも!無料!!

まず、mysqlサーバーとPHPの拡張をいれる。mysqlndでいいのかな?たしかこれでできたはず(曖昧)

sudo yum install -y mysql-server php56-mysqlnd

MySQLの設定ファイルをいじる。

sudo vi /etc/my.cnf

mysqldの末尾に「character-set-server=utf8」を追記。

自動起動を指定して起動。

sudo chkconfig mysqld on
sudo service mysqld start

初期設定(細かいのは省略)→ここを参照

sudo mysql_secure_installation

owncloud用MySQLユーザーとデータベースを作成

mysql -u root -p
mysql> CREATE DATABASE owncloud;
mysql> GRANT ALL ON owncloud.* to 'owncloud'@'localhost' IDENTIFIED BY 'owncloud_no_password';

※「owncloud_no_password」にはowncloudユーザーのパスワードを設定。

owncloudのrepoファイルを入れる。
※CentOS7とかはhttp://download.opensuse.org/repositories/isv:/ownCloud:/community/CentOS_CentOS-7/isv:ownCloud:community.repoでいける。

cd /etc/yum.repos.d/
sudo wget http://download.opensuse.org/repositories/isv:ownCloud:community/CentOS_CentOS-6/isv:ownCloud:community.repo

yumでインストール

sudo yum install -y owncloud

これで完了。

owncloudがつかえる

http://**.**.**.**/owncloud/でアクセスできちゃう。
管理者IDとパスワードを設定して、データベース設定でSQLiteじゃなくてMySQLえらぼう。
configがおかしい場合は/var/www/html/owncloud/config/config.phpを削除すれば再設定できる。(※デフォルトの構成の場合)
俺もPHPの設定やら何やらで何回か設定しなおした。SQLiteでもいけるんだけどパフォーマンスとか考えるとMySQLのほうが良いかも。

Owncloud
ざっくり飛ばしちゃったけど、慣れれば1時間足らずでクラウドファイルサーバーが構築できちゃうのです。
ただEC2は小規模向けには少し割高かもなぁ…。やっすいVPSとかだともっとコスパがいいかもしれないね。
簡単にスケールアップできるのはにじゅうまる。

とってもありがとう

参考:
owncloud(https://owncloud.org/
ownCloud Server7をCentOS/RHEL6にyumインストールする手順(http://weblabo.oscasierra.net/owncloud7-centos6-1/
Yumを利用したMySQLのインストールと設定(http://d.hatena.ne.jp/Yosuke_Taka/20130519/1368924602

  1. コメント 0

  1. トラックバック 0

return top