2013-01-01から1年間の記事一覧
Webアプリの負荷テストツールにsiegeというのがありまして、個人的にはずいぶん前から使っていたのですが、会社ではあんまり知られていなかったのでエントリ書きます。 http://www.joedog.org/ これは何? 簡単に言うと高機能なabです。JMeterほどの機能は必…
勉強もかねてfluent-plugin-kinesis-altという、fluentdのプラグインを書いてみました。 ちょうあるふぁばんです。 2013/12/24 追記 fluent-plugin-kinesisにマージできないかお伺いを立ててます https://github.com/imaifactory/fluent-plugin-kinesis/issu…
AWS SDK for RubyがKinesisに対応したので、ちょっと触ってみました。 なにはさておき… aws-sdkを1.31.3以上にしましょう。 1.30.0はバグがあってまともに動かないです。 Kinesisについて コンセプトとかについてはドキュメントを読めばだいたい分かると思い…
AWS Advent Calendar 2013の2日目のエントリです。 RubyからAWSのAPIをたたくときはAWS SDK for Rubyを使うことが多いと思いますが、公式のSDKでも新しい機能のAPIに未対応な場合があります。(例: aws-sdk 1.24.0 での describe_load_balancer_attributes …
Amazon Linuxを起動したら、だいたい一番最初にRuby 2.0.0のビルドを始めるのだけれど、まいどまいど同じことをやっているのでrpmを自動作成するようにしてみた。 https://github.com/winebarrel/ruby-2.0.0-rpm Ruby 2.0.0のspecファイルを公開している人が…
libjqが簡単に使えたので、NokogiriっぽいRubyのバインディングを作りました。 https://bitbucket.org/winebarrel/ruby-jqJSONはHTMLほど複雑ではないですが、ネストの深いデータを一発でとってこれるのは便利…かも知れないです。以下はGitHub APIでファイル…
jqのheadでlibjqが切り出されていたので、main.cを参考にしてCから呼び出してみた。 #include <stdio.h> #include <string.h> #include <jq.h> static void process(jq_state *jq, jv value, int flags) { jq_start(jq, value, flags); jv result; while (jv_is_valid(result = jq_nex</jq.h></string.h></stdio.h>…
Piculet https://bitbucket.org/winebarrel/piculetKelbim https://bitbucket.org/winebarrel/kelbim 以前作成したRoadworkerと同様に、AWSの設定をRubyのDSLで管理します。Piculetはセキュリティグループを、KelbimはELBを対象としています。 Piculetのほう…
対話型DynamoDBクライアントのddbcliをDynamoDB Localに対応させました。(>= 0.2.2) 使い方は以下の通り。 shell> ddbcli --uri localhost:8000 localhost:8000> select all * from foo; employeesを入れてみる MySQLのEmployees Sample Databaseからemploye…
package main import ( "fmt" "net" "os" "bufio" "strings" ) func handleConnection(conn net.Conn) { reader := bufio.NewReader(conn) for { line, err := reader.ReadBytes('\n') if err != nil { fmt.Println("error:", err.Error()) break } fmt.Prin…
サーバ require 'msgpack/rpc' require 'msgpack/rpc/transport/unix' class MyHandler def add(x,y) return x+y end end listener = MessagePack::RPC::UNIXServerTransport.new('/var/tmp/hoge.sock') server = MessagePack::RPC::Server.new server.liste…
cloudpack Nightの発表資料 Gitを使ったRoute53の管理 from Sugawara Genki Roadworkerについて Chef/Puppet的にRoute53を管理するツールです。 Git使ってRoute53を管理できるようになります。 https://bitbucket.org/winebarrel/roadworker http://rubygems…
2013年の話題としては今更感がありますが、LVSのHash Table Sizeを変更するために、EC2上のCentOS 6.3でカーネルを再構築したのでメモしておきます。 ちなみにAmazon Linux AMIだとカーネルのバージョンが新しいので、/etc/modprobe.d/ipvs.conf とかに opti…
どうもGoogle Driveの使い勝手が悪いので(直リンさせてー) こっちに置いておきます。 keepalived-1.2.7-1uc.amzn1.src.rpm keepalived-1.2.7-1uc.amzn1.x86_64.rpm keepalived-1.2.7-1uc.el6.src.rpm keepalived-1.2.7-1uc.el6.x86_64.rpm keepalived-debu…
Puppet on AWS from Sugawara Genki EC2でkeepalived+LVS(DSR) from Sugawara Genki
https://bitbucket.org/winebarrel/ddbcli DynamoDBのmysqlコマンド的なクライアントを作りました。ほんとはAWS Tools Hackathonでこのネタをやろうとしていたのですが、DynamoDBのAPIにさわり始めたらあれよあれよと実装が進んでしまいまして。本番どうする…
あまりがっつりとSimpleDBを使い込んでいる訳ではないですが、ちょっとしたデータをつっこんでおくにはなかなか便利です。特にログを残しておきたいときは特別なミドルウェアを用意する必要がないので、サーバやミドルウェアの検証をやるときにはよく使って…
EC2のスポットインスタンスは安くて大変お買い得ですが、価格が上がると強制ターミネートされるのがにんともかんとも。きちんとサービスアウトできる余裕が必要なので以下のようなスクリプトを書いて終了時にsleepするようにしてみたのですが、二通目のメー…
#!/usr/bin/env ruby require 'cgi' require 'base64' require 'net/https' require 'openssl' require 'optparse' require 'rexml/parsers/pullparser' require 'time' require 'yaml' Net::HTTP.version_1_2 class EC2Client API_VERSION = '2012-12-01' S…