WordpressをEC2で運営する最安の構成
ずっとHerokuを使っているのでAWSといえば使うのはS3かRoute53くらい。
今回、AWSを使ってワードプレスのウェブサイトをつくることになったのですが、勉強になったので残しておこうかと。
なお、知っている人には当たり前の内容になっております。
基本を知ろう
Amazon Web Services入門 (全17回) - プログラミングならドットインストール
このレッスンがめちゃくちゃ分かりやすかったです。
EC2 + RDS + S3… ふんふん で LoadBalancerね、なるほど便利だねってなんとなく作業してたんですが、ふと立ち止まって思いました。
これっておいくらですか…?
アカウントさえ持ってればさくさくとサービスを追加できるので、AWSってあんまり料金を意識しないんですが来月びっくりすることになるのかも…。負荷が高くないのに至れり尽くせりにする必要もないのかと。
ためしドットインストールの構成を参考にちょっと計算してみた。
Load Balancingは最初は要らないと思うし、S3は無視できるくらい安いと思うので省略しました。
リージョンは東京です。
追記
$0.00 : 実行中のインスタンスと関連付けられている Elastic IP アドレス 1 つ
Elastic IP はインスタンスと紐付いていれば無料とコメント頂きました。
https://aws.amazon.com/jp/ec2/pricing/
サービス | インスタンス | コスト/h | コスト/m |
---|---|---|---|
RDS (MySQL) | db.t2.micro | $0.026 | $18.72 |
EC2 | t2.nano | $0.1 | $7.2 |
S3 | - | - | - |
Load Balancing | - | - | - |
Elastic IP | - | $0 | $0 |
$18.72 + $7.2 + $0 = $25.92 ということに。
2016年1月16日現在の為替で計算すると ¥ 3032.51 / 月
となります。
結構高いですね…。
小さなウェブサイトを運営するのに月3000円かかるなら普通のレンタルサーバー選ぶかな。
もっと安くなる
ドットイントールの要領で進めていったので、これが初心者用の構成で、最初はこうやってスタートするんだなーと勝手に思っていたのですが、意外とお値段がはる。
でも改めて考えてみると、RDSいらなくないですか?
一連の流れを教えてくれたドットインストールは素晴らしいのですが、
普通にLinuxに MySQLサーバー入れて運用すればそれでいいんだと、
ものすごく当たり前の事に気づいた。
RDSのメリットについてはこんな感じらしい。
RDSのメリット(非エンジニア目線で) | ナレコムAWSレシピ
でも今回の案件にはRDSっていらないな… と。
下記、ドットインストールので説明されているRDSでなくて、EC2内でMySQLサーバーを動かす手順を簡単に。
1
2
3
4
5
6
7
8
9
10
11
12
13
# イントール
$ sudo yum install mysql-server
# 起動
$ sudo service mysqld start
# サーバー立ち上げで起動するように
$ sudo chkconfig mysqld on
# パスワードは変えておこうか
$ mysql -u root
$ update mysql.user set password=password('YOUR PASSWORD') where user='root';
$ sudo service mysqld REstart
余談ですが、mysql -u root
コマンド打ったら下記のエラーが出たので対処しました。
1
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
1
2
3
4
5
6
7
8
# 作成
$ sudo vi /var/lib/mysql/mysql.sock
# 空のまま保存(escape -> : -> wq -> enter)
$ sudo chown mysql:mysql /var/lib/mysql
$ sudo service mysqld restart
EC2のインスタンスをterminateするとDBのデータとか消えちゃうわけですが、
それはそれでバックアップを取るとかして対応すればいいので、気をつけましょうということで。
で、RDSがいらなくなったので費用は下記のようになります。
サービス | インスタンス | コスト/h | コスト/m |
---|---|---|---|
EC2 | t2.nano | $0.1 | $7.2 |
S3 | - | - | - |
Elastic IP | - | $0 | $0 |
$7.2 + $0 = $7.2
2016年1月16日現在の為替で計算すると ¥842.36 / 月
という感じ。
もちろんもっと安いレンタルサーバーもあるけど、これならHerokuと同じくらいだしいいかな。
Route53の費用もかかってくると思うけど、まぁそれは無視できるくらいでしょう。最初は。
ということで、最小の構成なら月1000円弱くらいってことで。多分。
上記はオンデマンドインスタンスで計算してますが リザーブドインスタンス を使えばもっと節約できそうです。下記リンクが参考になりました。
[AWSマイスターシリーズ] リザーブドインスタンス&スポットインスタンス
あ、それと違うリージョンで動かしているインスタンスとかは忘れてしまうことがあるので(リストに出てこない)、練習用で立ち上げていたインスタンスが実はすごい課金されてたってことがないよいうに気をつけましょう。一回やりました…。AWSあるあるですね。
以上です。
参考
Amazon Web Services入門 (全17回) - プログラミングならドットインストール
mysqlソケットエラー解決法 - ウマい話、ちょいくれや。
Mysqlのrootユーザのpasswordを初期化(変更)する - Qiita
無駄なコストを省こう!AWSで消し忘れを防止するためにチェックすべき7つのポイント | Developers.IO
[Amazon][EC2][RDS] RDSにデータベースを作成し、EC2のwordpressから接続する | (っ´∀`)っ ゃー | nullpopopo