2014年9月26日金曜日

AWS Elastic BeanstalkのSSLで、wwwあり、なしを統一する

Beanstalkを使っていて、wwwを統一したいとき、httpd.confはいじれないので、htaccessで行うことにしました。
httpの場合は簡単なのですが、httpsの場合はネットワークインターフェースを噛ましてるので、うまく行かず。SERVER_PORTとか取れないんですね。
いろいろ探して、以下のようにしたらできたようなのでメモ。

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{HTTP_HOST} ^example\.jp
    RewriteCond %{HTTP:X-Forwarded-Proto} =https
    RewriteRule ^(.*)$ https://www. example.jp/$1 [r=301,L]

    RewriteCond %{HTTP_HOST} ^ example\.jp
    RewriteRule ^(.*)$ http://www. example.jp/$1 [R=301,L]

</IfModule>

2014年9月22日月曜日

Elastic BeanstalkでRDSのインスタンスを変えたい

Elastic Beanstalk(以下EB)をとりあえずdb.microでテストして、じゃあインスタンスあげようか、ってところでどうやって上げるのか迷いました。

とりあえずRDSの設定画面で該当するRDSのインスタンスを上げたのですが、EBのコンフィグでみるとRDSのインスタンスがmicroのまま。

同じような質問もあって、
http://stackoverflow.com/questions/25087682/change-rds-configuration-in-elastic-beanstalk-app
そのアンサーのとこにAWS CLIを使ってコマンドでやれって書いてたので、コマンド叩いてみたけど、エラー。

AWS CLIって何だっけ、あ、eb〜ってのがそれか。
ということで、ひとまずebコマンドでステータス見てみるか。
#eb status --verbose
RDS Database: AWSEBRDSDatabase | *******.ap-northeast-1.rds.amazonaws.com:3306
Database Engine: mysql 5.5.37
Allocated Storage: 10
Instance Class: db.m1.small
Multi AZ: False
Master Username: insightnow
Creation Time: 2014-07-17 16:41:48
DB Instance Status: available

あれ?
smallになってる。

EBのコンフィグに反映されていないだけかもしれないです・・・・。

2014年9月4日木曜日

AWSで、EC2のみとEC2+RDSどっちがいいのか試してみた。

大昔にこさえたEC2が、m1.mediumだし32ビットだしということで、m3.mediumに移すことにしました。
EC2内のローカルDBを使っていたので、そのままm3.mediumにするのと、EC2small+RDSsmallに分けるのとどちらがパフォーマンスがいいのだろう?と思ったので、テスト。

負荷のテストに使用したのはスウェーデンの負荷テストサービス「load impact」
https://loadimpact.com/

無料アカウントで月5回までテストできるみたい。
一番負荷の多そうな検索ページに、最大20同時アクセスするように設定していざテスト。

結果

EC2+RDS
EC2


こんな感じになりました。
RDSだと最大1分くらいレスポンスにかかってしまっていて、EC2単体の圧勝でした。
ClowdWatchをみてみると、RDSへの負荷は殆どなくて、多くがWEBアプリケーションの負荷だったため、こうなったみたいです。

RDSを使う方が、扱いやすいし見通しもいいし容量の管理もしやすいけど、場合によってはまだ分けないほうがいいかもしれません。