2013年7月10日水曜日

【Chef】CentOS5と6で処理を変えたい場合



fluent-agent-lite用のrecipeを書いたときの備忘録。

fluent-agent-liteをRPMからセットアップしていて、最初はCentOS6で順調にセットアップを続けていたのですが、CentOSの5系でrpmのバージョンちがいにつまづく。

で、OSのバージョンちがいをChefのRecipe側で吸収しようと思いまして。
調べてみたら"node"に"platform_version"があるので、それを使いました。

一応、こんな感じ。

if node[:platform_version].to_i == 5 then
  fluentfile = "fluent-agent-lite-0.4-original.x86_64.rpm"
else
  fluentfile="fluent-agent-lite-0.9-original.x86_64.rpm"
end


OPSCODE docsに、nodeのAttributeに関する詳細がありますので参考に。

次、Vagrantで複数OSを使ったrecipeのテストにチャレンジしてみたいと思います。

2012年9月30日日曜日

AWSクラウドデザインパターン設計ガイドを読みました


Amazon Web Services クラウドデザインパターン設計ガイドを読みました。

これまで、独学で色々と設計してきたのですが、この本で改めて構成の考え方を整理できてよかったです。

特に、関わるサイトがイメージなどのコンテンツを大量に保持するようなサービスには、AWSはいいですね。S3をちゃんと使うだけで、だいぶ助かります。

URL RewritingパターンにあるEC2・S3・CloudFrontの組み合わせは、大助かり。
私も仕事で関わっているサイトは、このパターンを適用して、静的コンテンツはS3に同期して、処理しています。EC2で静的コンテンツを処理し続けるのは、コスト的にも無駄が多いですからね。

EC2がMicro程度でもELB・S3・Nginxの組み合わせで、十分にパフォーマンスを発揮できます。まだ入門的な使い方ではありますが、やはり手軽に大規模ストレージ、必要に応じたインスタンスをブラウザを通してリアルタイムに調達できるAWSは、重宝しております。

ちなみに、上記本のイメージ画像のURLは、http://ec2.images-amazon.com/
これ、URLのパラメータで、任意サイズの画像にできる超便利URLですw

2012年8月26日日曜日

DBとRDSな話



先日、プログラマー・エンジニアではない方向けの勉強会で、データベースについて紹介させていただきました。

やはり、データベースを説明するのは大変ですねw




データベースの役割、世の中にあるデータベース、その仕組や長所・短所、設計に関わる勘所、操作に関わること。そして、運営・経営的な視点からの資源管理まで。やはり、コンピューターシステムで提供されるサービスの根幹になるようなところで利用されているので、およそ話すことも多岐にわたってしまいました。

で、下記に紹介する本は、これからデータベースの構築・運用をはじめる方に、とてもおすすめできる本です。

Linux-DBシステム 構築/運用入門

およそDBはサービスを始めたら止まらないように運用したり、万が一の対策をしたり、サービスの拡大に合わせて負荷分散したり、チューニングしたりと、運用上色々な課題が出てきます。その対応足がかりとして、この本を読んでおくといいです。内容は、かなり実践的なエッセンスが書かれています。

書かれていないのは、論理的設計/運用に関わることだけです(笑)データベース・テーブル定義やレコード関連などのことは、別の本が必要です。


で、構築/運用に様々なテクニックと経験が必要なデータベース。AmazonのWeb Serviceにもクラウドでのデータベースサービスがあります。


最近は、こちらを利用する機会が増えてきました。やはり、楽だなぁ〜と感じてしまいます。バックアップ、レプリケーション、モニタリングと全部揃っているだもん(笑)。スケールアップもインスタンスタイプを変更するだけで出来ちゃうし。DBインスタンスのパラメータ設定に癖があるけど、楽なものは楽だわ(本気で負荷がかかり出すと新たな壁にあたりそうだけどw)
あとは、インスタンスタイプにHigh I/Oなタイプ、EBSみたいにIOPSの設定ができると、かなり凄いことになるのでは。スケーラビリティやアベイラビリティに悩むDBですが、クラウドサービスが色々と助けになってくれそうです。

最後に、データベースの運用で大事なのは、データを消せるようにしておくこと。前の上司に教わった教訓ですね。Facebookの1日に扱うデータ処理量が500テラバイトってありましたが(桁違いすぎw)、データベースは、データ量をコントロールしないと際限なくどんどんデータを貯めてコンピューター資源を食って行きます。経営管理上重要なのは、データベースの資源量(コスト)とプロフィットのバランスコントロールですね。その為にも、捨てれるデータは、捨てれるようにしないといけません。データベースにも断捨離ですね。

2012年8月14日火曜日

注目の.js系・HTML5・AWSのカンファレンス・勉強会

私がこれから行く予定のカンファレンス・勉強会を紹介します。








【TechBuzz】第1回.js系勉強会 〜Angular.jsのここがアツい!!シンプルで楽しい開発の実践 / Backbone.jsでつくるWebアプリケーション(ライブコーディングあり)〜

8月29日(水)開催、注目の.js系を扱った勉強会です。すでに250人の枠は満員です。第1回目なので、どんな内容になるか未知数な部分もありますが、注目度は高いですね。
JavaScriptのMVCフレームワーク10種類をまとめて比較したブログを見つけたので、参考に。

The Top 10 Javascript MVC Frameworks Reviewed

他、Backbone.jsの紹介資料も。
Backbone.jsについてLINEのJSを書いている清水さん作のスライド







HTML5 Conference 2012

9月8日(土)開催、HTML5 Conference です。昨年、Chrome+HTML5 Conferenceで開催されたイベントが、今年はhtml5j.org主催で20のセッションが用意されています。各セッションのテーマ・スピーカーも面白そうなものばかりで、どれを聞くか迷います。私、当日の午前中はどうしても参加できなくて、午後からになる予定。あぁ〜、終日行きたい。






AWS SUMMIT TOKYO 2012

9月13、14日(木・金)開催、東京でAWS SUMMITが開催されます。この翌々週は、ラスベガスで AWS re: Invent も開催されます。最初は、ラスベガスに行ってみようかと思ってたりしましたが、東京で我慢することにしました(笑)。このあたりの週は、AWS情報が多く流れそう。仕事の調整を頑張って、基調講演とクラウドデザインパターンを中心に聞いて来ようと思ってます。

参加したら、また色々とまとめを書こうと思います。


2012年8月13日月曜日

AWS EC2へApacheセットアップ、RDSのセットアップまとめ







今回は、私の備忘録のような内容ですが、これからEC2・RDSを使う方のためにも、これまでのセットアップをまとめておこうと思います。

■EC2上にApacheを立ち上げるまで
※AMIは、Amazon Linux 64bit。


【タイムゾーン設定】
# cp -i /usr/share/zoneinfo/Japan /etc/localtime
インスタンスを立ち上げた時点でタイムゾーンは、USになっているようなので。

【デベロッパーツールあれこれ】
# yum install gcc gcc-c++ make zlib-devel openssl-devel mysql mysql-devel curl-devel libxml2-devel libjpeg libjpeg-devel libpng libpng-devel install freetype freetype-devel install libicu libicu-devel install libmcrypt libmcrypt-devel libedit libedit-devel readline-devel libxslt-devel
最初は、ほとんど何も入っていない。

【Apache2.2】
# wget http://ftp.kddilabs.jp/infosystems/apache/httpd/httpd-2.2.22.tar.gz
# tar zxvf httpd-2.2.22.tar.gz
# cd httpd-2.2.22
# ./configure --enable-mods-shared=most --enable-so --enable-modules=proxy --enable-ssl --enable-deflate --enable-rewrite=shared -with-ssl=/usr/local/ssl
# make
# make install

【ついでにS3をmount】
# wget http://s3fs.googlecode.com/files/s3fs-r130-source.tar.gz
# tar zxvf s3fs-r130-source.tar.gz
# cd s3fs
# make
# make install
S3のバケットをマウント
#s3fs s3-bucket-name /hoge -o default_acl=public-read

■RDS関連
文字コードをUTF-8にするあれこれ。
DBをcreateしたあとに、
ALTER DATABASE hoge DEFAULT CHARACTER SET utf8;


DB Parameter Groups を新規に作って、RDS CLIで変更を実施する。
#rds-modify-db-parameter-group hoge --region ap-southeast-1 --parameters   "name=character_set_database, value=utf8, method=immediate"
# rds-modify-db-parameter-group hoge --region ap-southeast-1 --parameters  "name=character_set_client, value=utf8, method=immediate"
# rds-modify-db-parameter-group hoge --region ap-southeast-1 --parameters  "name=character_set_connection, value=utf8, method=immediate"
# rds-modify-db-parameter-group hoge --region ap-southeast-1 --parameters  "name=character_set_results, value=utf8, method=immediate"
# rds-modify-db-parameter-group hoge --region ap-southeast-1 --parameters  "name=character_set_server, value=utf8, method=immediate"

OSからセットアップして来た人は、最初に色々と戸惑うことが多いかも。インストール時に自分で選んでいれていたオプションとかね。

上記、あくまで参考まで。





2012年8月11日土曜日

P.S. don’t get bought by Amazon.なSSD Nodesに興味あり。


今回は、クラウド情報です。
SSD Nodesの人からメールが来て、気になって調べて読んだ記事。

Amazon AWS vs SSDNotes – SSD Nodes Rocks




AWS RDS => 3min 15sec
SSD Lepton => 0.024sec

え?! マジですか。All SSDのHaasですが、ここまで差がでるのかなぁ〜。
SSDとioDriveの比較記事は以前に読みましたが、AWSと他の比較事例はあまり調べてなかった。

サービスメニューですが、
Laptonは、4×3.4GHz 8GB SSDをOS・データ領域に選べて$69.99 Fixed Monthly。
Micro Node のTauは、$17.99 Fixed Monthly。

で、記事の中にある文章を引用。
>SSD Nodes allowed us to essentially run queries in 1/100th of the time of that which they were running on AWS.
...
>P.S. don’t get bought by Amazon.
そりゃ、100倍のパフォーマンスを得れば、そう書きたくなるわ。

ということで、メールに『マジですごいね』って返信したら、
SSD Nodes Founder のMatt Conner氏から即レスがきて、引き続き色々と質問中。

All SSDのHaas、面白そうです。

2012年8月5日日曜日

LL decadeに行って思うこれからの10年








LL decadeに行ってきたよ。
以下のTweetで、会場の空気を掴んでみてね。
「LL Decadeのツイート」をトゥギャりました。@mad_p
LL decade のプログラミング言語処理系を自作してわかったこと & 俺たちの継続的hogehogeは始まったばかりだ!のまとめ: @rmacchoj7

Perl、PHP、Python、Rubyと4言語の重鎮が集まっての講演、言語開発者同士の質疑応答、そしてLTと濃〜い内容のイベント。

■PHPが自虐的www
基調講演でのスーパーギーク miyagawaさん
「転職する時にPHPやってる会社は最初から候補にいれない。DISじゃなく自分がやりたくないだけ。」

PHPエンジニア、高齢化の流れは避けられそうにないねw。4言語ごとに仕事で使ってる年代層を調べたら、確実にPHPが上にいるだろうなぁ〜。PHPはレガシーコードとして、臭いものには蓋をしろ的扱いにされそうだwww

個人的には、これからの10年は、JavaScriptが益々話題豊富で活性化して欲しいと思っているのと、Rubyが2013年2月に2.0をリリースすることで、またRails絡みのアップデートが熱いだろうと。10年もかからない間に、JavaScriptの元でデザイナーとフロントエンジニアのスキルが統合されて、WebCreatorとして深く活躍できる人材がもっと出て欲しいと期待。Ruby人気は・・・止まらなそうだねw

■クラウドワーク
Shibuya.jsの@takesakoさんのLTでちょっと触れた、シリコンバレーでのクラウドワークが盛り上がりなところが響いた。日本でもクラウドワークス、ランサーズとサービスが盛り上がり初めていますからねぇ〜。プロとしてのソロエンジニア、プロジェクトオーナーとしての企業、企業につとめるエンジニアチーム、その関係も10年で大きく変化しそうですね〜。外注・内製にこだわらず、『いいものを作る』ということをどんな形で実現するかですね。

ということで、これからの10年、益々プログラミングを楽しんでいける世の中になりそうです。