S3のmultipart uploadが本当に有効かどうか測ってみた

わんばんこ、ザビオです。

AWS Advent Calendar 2013の18日目の記事です。

多くは語りませんが、いつまでも待っています。

題名の通りですが、容量が大きいファイルはS3のmultipart uploadを利用すると通常送信より早く送り終わるみたいなのですが、multipart uploadを利用した際に、どれくらい早くなるのか、測ってみようと思ったので、測ってみました。

multipart uploadなし

容量 実行完了時間
1MB 0.754267 sec
5MB 1.990114 sec
10MB 3.154825 sec
100MB 15.70757 sec
1GB 211.044775 sec

multipart uploadあり

容量 実行完了時間
1MB 0.783278 sec
5MB 1.652858 sec
10MB 3.467234 sec
100MB 14.706926 sec
1GB 154.335374 sec

※3回実行し、実行結果の平均値を記載していています。

容量大きいデータだと、そこそこ差が出てきますね。
時間の関係上1GBしか測定出来ませんでしたが、もう少し容量大きくなると結構差が出そう。

うんコードはココ

Net-SNMPで外部コマンドでハマったの

最近、snmpで外部コマンドを実行して、実行結果をホニャホニャする作業をよく行なっています。
CentOSRed hat系は、snmpdのdaemonがrootユーザで動作します。
しかし、Debianですと、snmpdのdaemonsnmpで動作しているので、
外部コマンドの結果が"Permission denied"と怒られる訳です。


snmp 12085 0.0 0.1 56372 10624 ? Sl Mar19 0:22 /usr/sbin/snmpd -Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1

そんな時は、snmpd.confにadduser ****/uid を指定して再起動すれば、そのユーザで起動されるというお話


agentuser zabbio

snmpめんどくさい・・・
debianってextendで指定って出来るのかしら・・・

Zabbix2.0で古いZabbix-agentを監視してみる

最近、ブログ全然更新しないでサボりまくっております・・・
今回は、Zabbixネタで・・・あんまり需要ない感じががが・・・\(^o^)/

今日ツイッターで、上がった質問がサクッと検証出来そうだったので試してみました。

Zabbixは互換性があるので、バージョン違っても大体動くと聞いていたので、試してみました。
※新バージョンにしか実装されていない機能の場合は、もちろん古いバージョンだと使えません・・・。

Zabbix-Serverは2.0.5
Zabbix-Agentは3台で(1.4.7、1.6.9、1.8.16)で試しました。

まずは、ServerにAgentを登録して、デフォルトのLinuxテンプレートを割り当てました。

画面小さいですが、とりあえず正常に監視できていそうです。
値もちゃんと取れているものもあります。


※Zabbix-Agent1.4

それでは本題ですが、zabbix-getを使って、値を幾つか取ってきましょうー。

と、取れました。
@kodai74先生から回答がありました。
どうやらzabbix_senderが上手くいかないかもしれないとの事なので、ついでに試してみました。


zabbix_sender -z ******** -p 10051 -s zabbix1_4 -k nakatake.zabbio -o 200
zabbix_sender -z ******** -p 10051 -s zabbix1_6 -k nakatake.zabbio -o 300
zabbix_sender -z ******** -p 10051 -s zabbix1_8 -k nakatake.zabbio -o 400

貼りつけた画像は1.4ですが、無事にラッパー出来ました!
他のバージョンでも、特に問題なく出来ました!
プロトコルの内容が変わっているみたいですが、ある程度の監視項目は取得出来ました!

結論
バージョン違っていてもある程度、互換性がある。
みんなZabbix使おうよということです。

DeNAに転職しました

東京の皆さんこんばんは。
福岡から引越してきたザビオです。

はい、ご存知の方もいらっしゃいますが1月16日からDeNAに転職することになりましたー!
入社して、毎日が刺激的で、超すごい人ばかりで、飽きない日々を送っております!

入社当時はソーシャルゲームってマイナスなイメージが合ったのですが
僕は楽しみながらやれていますー!

めちゃめちゃ優秀な人がたくさんいるので、いろいろ勉強しながら、頑張りたいと思いますー!
東京の皆様、宜しくお願いします。

退職しました!

はい、びっくりされた方もいるかもしれませんが、
今月末をもって退職いたします。

とても短い期間で辞めることになってしまい、
いろんな方々にご迷惑をお掛けしまして、申し訳ございませんでした。

辞める理由としては、会社に非はなく、僕のワガママで辞めることになりました。
そんなワガママを受け入れてくださった、大石さんを始め、羽柴さん、柳瀬さん、その他大勢の方々に感謝いたします。
ありがとうございます!

お世話になる前は、自分でもできるっと思っていたことが、外に出てみたら全く出来なかったり、
打ち合わせや、勉強会でも伝えたいことがうまく伝わっていなかったり、技術的な面以外でも悔しい思いをしました。
その度に、僕を叱咤激励して下さった、羽柴さん柳瀬さんや小室さん、前田さん、後・・・リーダー?には感謝してもしきれません!
本当にありがとうございます!今度ともお付き合いしていただけると嬉しいです!

福岡のエンジニアの方々も大変優しくしていただいて感謝しております。
イスではなく、手榴弾が飛ぶと噂があり、ガクブル状態でありましたが、そんなことなかったですw
hktstudyは不滅なので引継ぎませんが、1年に1回はやりましょう★

またフリースペースとして場所を貸していただいた、アラタナ様を始め
市江さんや、宮崎さん、博士、しかさん・・・和田さんありがとうございます!
とてもエロいことを教えて下さいましてありがとうございます!このエロ知識で東京でもやっていければいいなと思っております。

私は、渋谷のヒカリエのDeNAに行く事になりますが、皆様今後共変わらずお付き合いのほど、よろしくお願い致します。
ザビオ

ELBのhttp_status_codeをfluentdを使って可視化してみる

前回記事の下りが長すぎるので、短くいきます!
AWS Advent Calender 24日目です!クリスマスですが、クリスマスには全く関係ありません!
途中までしか動作確認できていませんのであしからず・・・
そしてネタ的にもAWSあんまり関係な・・・

構成図はこんな感じ

やりたいことは
・fluentdでaccessログのステータスコードをカウント
・カウント結果をZabbixに放り込む
・ELBからインスタンスが外れた場合にアラートメール
※fluentdのプラグインでCloudwatchとか出来たら・・・・それ使いますw
※fluentd流行っているみたいなので波に乗っかりました・・・

となっております。

まずはWebサーバーにfluentd(td-agent)インストールとプラグインインストール。


# cat /etc/yum.repos.d/td.repo
[treasuredata]
name=TreasureData
baseurl=http://packages.treasure-data.com/redhat/$basearch
gpgcheck=0
# /usr/lib64/fluent/ruby/bin/fluent-gem install fluent-plugin-datacounter fluent-plugin-zabbix fluent-plugin-forest

td-agentd.confを編集


# vim /etc/td-agent/td-agent.conf


type tail
format apache
path /var/log/httpd/access_log
tag apache.access
pos_file /var/log/td-agent/access_log.pos

# accessログのレスポンスコードごとにカウント

type copy

compress gzip
type file
path /var/log/td-agent/access_log


type datacounter
count_key code
aggregate all
tag count.apache.access.code
pattern1 2xx ^2\d\d$
pattern2 3xx ^3\d\d$
pattern3 4xx ^4\d\d$
pattern4 5xx ^5\d\d$

# ファイルとして保存

type copy

type file
path /var/log/td-agent/countaccess_log


type zabbix
zabbix_server ***.***.***.***
host zabbio-test
port 10051
name_key_pattern [2345]xx_count
add_key_prefix apache


上記設定後、td-agent起動


service td-agent start
chkconfig td-agent on

accesslogがこのような形に変換されます


2012-12-24T14:35:10+00:00 count.apache.access.code {"unmatched_count":0,"unmatched_rate":0.0,"unmatched_percentage":0.0,"2xx_count":2,"2xx_rate":0.03,"2xx_percentage":100.0,"3xx_count":0,"3xx_rate":0.0,"3xx_percentage":0.0,"4xx_count":0,"4xx_rate":0.0,"4xx_percentage":0.0,"5xx_count":0,"5xx_rate":0.0,"5xx_percentage":0.0}
2012-12-24T14:37:10+00:00 count.apache.access.code {"unmatched_count":0,"unmatched_rate":0.0,"unmatched_percentage":0.0,"2xx_count":2,"2xx_rate":0.03,"2xx_percentage":16.666666666666668,"3xx_count":0,"3xx_rate":0.0,"3xx_percentage":0.0,"4xx_count":10,"4xx_rate":0.16,"4xx_percentage":83.33333333333333,"5xx_count":0,"5xx_rate":0.0,"5xx_percentage":0.0}

設定完了後、Zabbixに監視項目を登録

keyは、2xx_percentageや、2xx_rateも使えるのでELBの下にぶら下がるインスタンスの生存確認等に使ってみるのもいいのではないかと思いましたー。

これで、Zabbixでhttp_status_code毎のグラフを表示したいのですが、続きは次回・・・!?

大容量のDBデータを準備する

そこそこ大きいDBデータが欲しいと言われたら
あなたはどうしますか?

今回はMySQLWikipediaデータを使ってmysqlに突っ込んでみましょう。

xml2sqlのインストール

wikipediaで提供しているXMLフォーマットのデータをmysqlpostgresqlにインポートできるxml2sqlというツールが用意されているので、これを利用します。

http://meta.wikimedia.org/wiki/Xml2sql


yum install expat-devel
wget http://ftp.tietew.jp/pub/wikipedia/xml2sql-0.5.tar.gz
tar zxvf xml2sql-0.5.tar.gz
cd xml2sql-0.5
./configure
make
cp xml2sql $HOME/bin/

wikipediaの全てのデータをダウンロード


wget http://dumps.wikimedia.org/jawiki/latest/jawiki-latest-pages-articles.xml.bz2
bzip2 -d jawiki-latest-pages-articles.xml.bz2

下記の形で展開


cat jawiki-latest-pages-articles.xml | sed -e 's/.*<\/ns>\|\|.*<\/parentid>\|\|.*<\/sha1>\|\|.*<\/model>\|\|.*<\/format>\|\|.*<\/redirect>\|//' | xml2sql


ll -h
5.8G 11月 13 01:39 2012 text.txt
139M 11月 13 01:39 2012 page.txt
189M 11月 13 01:39 2012 revision.txt

mysqlimportで展開


mysqlimport -d -L zabbio text.txt
mysqlimport -d -L zabbio page.txt
mysqlimport -d -L zabbio revision.txt