2012年11月2日金曜日

nginxインストール (rpm)

nginx どうなのよ?
「エンジンエックス」って読むけどOKですか?

nginx.org でrpmを用意してくれている。


では、リポジトリをついか。

/etc/yum.repos.d/nginx.repo を作成
-----------------------------------------------------------
[nginx]
name=nginx repo
# stable版
baseurl=http://nginx.org/packages/centos/6/$basearch/
# 開発版
baseurl=http://nginx.org/packages/mainline/centos/6/$basearch/
gpgcheck=0
enabled=1
-----------------------------------------------------------
stable or mainline(開発版) のどちらかを選択し、

とりあえず、websocketを試したいので、開発版を選択。

yum install nginx
で、無事インストールできた。


自分のドメインを追加するとエラーが出るので、
/etc/nginx/nginx.conf に
server_names_hash_bucket_size  64;
を追加。 (今のところ何なのかはわかってない)

あと、デフォルトで、
uwsgi_params とかfastcgi_params が用意されてるので、
そのうち使ってみる。

2012年8月28日火曜日

aws 触ってみた

Amazon EC2 料金表

Available Instance Types (メモリ、CPU、ネットワーク帯域)

クラウドサービスなので、CPUがどの程度の能力なのかわかりにくい。
一応、マイクロインスタンスを1とした基準となっている。
また、cpuinfoなどで、物理的なCPU情報を確認できるので、使っていくうちに、感覚的にわかってくるはず。
CPUの能力はECU という単位で表記されている。
(かなり、ざっくりしたものだけど)

Webサービス用に使えそうなインスタンス
インスタンス名メモリCompute UnitsCPUNetworkAPI Name
マイクロインスタンス
エクストララージ615 MiBUp to 21Very lowt1.micro
High CPUインスタンス
エクストララージ7 GiB208 (2.5 ECUs each)Highc1.xlarge
スタンダードインスタンス
エクストララージ15 GiB84 (2 ECUs each)Highm1.xlarge
スタンダードインスタンス (第2世代)
M3エクストララージ15 GiB134 (3.25 ECUs each)Moderatem3.xlarge
M3ダブルエクストララージ30 GiB268 (3.25 ECUs each)Highm3.2xlarge

マイクロインスタンスは1年間無料なので、開発、ステージング用。
2012年12月 スタンダードインスタンスの第2世代(M3)が追加。パフォーマンスは約5割り増し


SDK (HTTPのWebAPI)
Python (boto)
Ruby
PHP
Javascript (サーバーサイド、ブラウザ上でもOK)

仕方ないが、PHP (Javaも)に力を入れていて、PythonSDKはコミュニティーで開発されている感じでしょうか。 (WebAPIなので、あまり問題ではないかもしれませんが)


勝手に感想

AWSの強み
短時間の使用では、コスト面で圧倒的に有利
全ての操作をAPI経由で実行できるので、サーバーを準備する時間を大幅に減らせる。

弱み
インスタンスのCPUパワーが結構、貧弱。
長時間のサーバー運用では、おそらく割高になる。


・特定の時間だけ、特定の時期だけサーバーが必要な場合
・最初から、多数のサーバーを用意する時間(お金?) が無い場合
には、特に力を発揮するサービスだと思います。

・先日(2012年12月)、ニフティークラウドを少し触らせてもらえる機会がありました。
サーバーインスタンスとロードバランサーしかない状況ですが、料金的には、いいかんじにおさまりそうでした。 (料金表ではAWSより割高ですが、CPUはそんなに非力ではなさそうだったので)
あと、ネットワークではどこにも負けないといっていました。(プロバイダーですしね。)




2012年7月29日日曜日

remi, epelリポジトリの追加

epelを追加
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
http://dl.fedoraproject.org/pub/epel/6/からepel-release-6xxx.rpm をインストール
時々数字が上がってアップデートされるので、目視確認。

remiを追加
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm


PHP5.4 を入れてみる
yum install php-mbstring php-devel php-common php-cli php-mysql php-pear php php-pdo --enablerepo=remi-test,remi

MySQL5.5
yum --enablerepo=remi install mysql-server mysql-devel mysql mysql-libs


とうとう、PHPをやることになった。
2012年夏

2012年5月21日月曜日

cross join

いままで、cross joinなんて何のためにあるのかと思っていました。
しかし、その威力に驚いた。 (半年前の気持ち)


inner joinってのは、cross joinの特例であるということ。

普通は、idでjoin して、正規化されたテーブルをくっつけていく。
これはこれで、全うな、意味のある結果を取り出せる。

たとえば、日付ごとのデータがある場合、日付でcross joinした物をサブクエリで
利用すると、日付ごとの累積データが出せたり、特定の日付までの最大値が
出せたりと、かなり使える。

join の後に、onを付けなければ、世界が広がる。
(いや、corss joinも条件を付けなきゃただの直積でおわる)

ただし、PostgreSQLでは、結構なパフォーマンスで使えるが、
MySQLでは、あるレコード数になると、極端に遅くなる。

インデックスのせいなのか、joinのパフォーマンスが悪いのか?
自力では特定できず、あきらめた。
MySQLもそこそこ自信があったけど、ダメだった。

よくわからない、エントリーでどうしようもないので、とりあえず終わり。