Stretcher をご利用中のかたに大切なお知らせ (S3 Signature V2廃止の件)

拙作の pull 型デプロイツール Stretcher をご利用中のかたに大切なお知らせです。 Amazon S3のAWS署名バーション2が、2019年6月24日をもって廃止されます dev.classmethod.jp Stretcher v0.x は Amazon S3 からのファイル取得に AdRoll/goamz を利用してお…

YAPC::Tokyo 2019でAWS X-Rayによる分散トレーシングの発表をしました

2019年1月26日に開催された YAPC::Tokyo 2019 にて、「Perlでも分散トレーシングしたい! - AWS::XRayによる解析とその実装」というタイトルの最後で発表してきました。 yapcjapan.org 発表資料はこちらです。 speakerdeck.com ほとんどのクラウドベンダーや…

graceful restart できない daemon の再起動時のダウンタイムを HAProxy でリトライして救う

とあるネットワーク(Web)サーバがありまして。 graceful restart できない graceful stop はできる 処理中のものは全て処理し終わってから終了する 再起動は数秒で完了する という性質のものを、稼働中に再起動するとダウンタイムがでてしまうのをなんとか誤…

Mackerel と連携する外形監視エージェント maprobe でマネージドサービスのメトリック収集を自動化する

Mackerel Advent Calendar 2018 22日目の記事です。 ちょっと前に maprobe という、Mackerel のホスト情報と連携して外形監視を行うエージェントツールを作りました。 sfujiwara.hatenablog.com maprobe は指定した Mackerel のサービス、ロールに存在してい…

WEB+DB PRESS vol.108 に18周年記念エッセイを寄稿しました

いつもお世話になっている WEB+DB PRESS誌の vol.108 に、18周年記念エッセイを寄稿しました。2018年12月22日発売です。創刊18周年おめでとうございます。 これまで WEB+DB PRESS には Perl Hackers Hub (vol. 71) と、特集 (vol.94) で技術記事を書かせてい…

今年書いた & update したCPANモジュールたち

Perl Advent Calendar 2018 11日目のエントリです。 最近、新しく書きはじめるもので Perl を使うことはめっきり減っているのですが、それでも仕事のいくつかのプロジェクトのメイン言語が Perl だったり、リリースした CPAN モジュールでまだまだ需要がある…

AWS X-Ray による ISUCON8 本選問題の解析

ISUCON8 の本選問題は、競技者がコントロールできない外部 API 呼び出しを多数含んだ出題内容でした。 講評では、 サービスの特性を適切に分析した上で、まとめるところはまとめたり、遅延させるところは遅延させるなど ……とさらっと書かれていますが、実際…

ISUCON8 本選出題記 あるいはISUCONベンチマーカー負荷調整の歴史

ISUCON 8 の本選出題を同僚の @ken39arg と担当しました。参加された皆様、運営にご協力して頂いたすべての関係者の方々にお礼申し上げます。 恒例の #isucon pic.twitter.com/iXAjgfgbeZ— fujiwara (@fujiwara) 2018年10月20日 問題についての講評は公式の …

builderscon 2018 に行ってきました

bulderscon 2018 tokyo に参加してきました。 今年は前後に CEDEC(登壇) と ISUCON(出題) があったので、発表する余裕はなさそうだなということで応募しなかったんですが、やっぱりカンファレンスは聞いているだけだと発表したくなりますね。来年は応募した…

ハッカーズチャンプルーに参加して Goとコンテナで作るWebアプリケーションベンチマーカー という話をしてきた #hcmpl

ハッカーズチャンプルー2018 で Go と ISUCON について話してもらえませんか? というお誘いをいただきまして、20年ぶりに沖縄に渡っております (注 まだ帰ってないので現在進行形)。 発表資料はこちらです。 speakerdeck.com 前日〜前夜祭 早めの飛行機で昼…

maprobe - Mackerel のホスト情報と連携する外形監視エージェントを作った

監視を Zabbix から Mackerel に移行しています。そこで困ったことを OSS を書いて解決しようシリーズのお時間です。 ホストのダウン検知を早くしたい Mackerel の監視は Push 型と呼ばれるもので、mackerel-agent が Mackerel サーバに対してメトリクスを送…

sardine で mackerel-plugin の出力をサービスメトリックとして投稿する

全国三千万 Mackerel ユーザーの皆様こんにちは。 mackerel-plugin で生成した値を、サービスメトリックとして投稿したいと思ったことはないでしょうか。ありますよね。でも mackerel-agent ではホストメトリックしか投稿できません。 ということで、拙作の …

ECS のデプロイツール ecspresso と、環境変数を展開して YAML/JSON/TOML を読み込む go-config について

OSS紹介 Advent Calendar 2017 - Qiita 18日目の記事です。(一週間遅れ) Amazon ECS へのデプロイツール ecspresso と、そこで使っている環境変数を展開しつつ複数の YAML/JSON/TOML を読み込む config loader である go-config の紹介をします。 ecspresso …

sardine - mackerel plugin のメトリクスを CloudWatch で集約する agent を書いた

OSS紹介 Advent Calendar 2017 - Qiita 22日目の記事です。 最近、監視を Zabbix から Mackerel に切り替えていっています。それと並行して、新規プロジェクトは Amazon ECS でコンテナで運用するようにもしていっています。そこで考えどころなのが、コンテ…

Amazon CloudSearch にドキュメントを取りこむ Lambda 関数 s32cs のご紹介

このエントリは OSS紹介 Advent Calendar 2017 - Qiita 16日目の記事です。穴が空いていたので拙作の紹介で穴埋めを。 s32cs という Amazon CloudSearch に対して S3 からのイベントドリブンでドキュメントを投入する Lambda を書いたのでご紹介します。 git…

fluent-logger-golang の実戦的な使いかたまとめ

OSS紹介アドベントカレンダー の14日目の記事です。 Fluentd の 公式 Go 版 Logger である fluent-logger-golang はこのように使うのがよさそう、という使い方をまとめてみました。 元々社内で書いておいたドキュメントを編集したものです。 github.com 前提…

aswrap - ~/.aws/(config|credentials) で定義した AssumeRole 定義から一時キーを取得してコマンドを起動してくれる wrapper を書いた

業務では多数の AWS アカウントを運用しています (現時点でアクティブなのは100行かないぐらい)。 AWS アカウントごとに利用者それぞれに IAM User や IAM key を発行するのは権限管理が煩雑になるため、以下のようなアカウント運用をしています。 ログイン…

alp と Plack::Middleware::QueryCounter を合わせて使うと捗る

OSS紹介 Advent Calendar 2017 - Qiita 4日目の記事です。 @tkuchiki 氏が作っている alp (Access Log Profiler) は、もはや ISUCON 競技者必須ツールとなった、LTSV 形式のアクセスログをいい感じに集計してくれるツールです。 github.com 通常は alp では …

ISUCON 7 本選で負けてきました

毎年恒例の ISUCON 7 本選に参加して、惨敗してきました。 競技中の最終スコアが 19600 程度、これが再現できていれば7位だったのですが、実際の結果は fail で 0 点、過去7大会の予選と本選で一度も経験したことがないスコアなしでの終戦でした。 今回の問…

ISUCON 7 予選2日目を3位で通過しました

まずは出題と運営チームの皆様にお礼を。予選から1チーム3台、合計1200台のサーバを用意するという空前の規模で、快適な競技環境を用意していただいてありがとうございました。 isucon.net 今回は ISUCON 4 の時の fujiwara組 (@fujiwara, @acidlemon, @hand…

YAPC::Fukuoka で分散 ID 採番機 katsubushi の話をしてきた

初福岡ですが前日は熊本に泊まって馬刺しを食べました。今まで食べてきた馬刺しとはなんだったのか。 合法レバ刺しです 🐴なので pic.twitter.com/v2t7y6pI01— fujiwara (@fujiwara) 2017年6月30日 発表資料はこちらです。 speakerdeck.com github.com 開発し…

Consulクラスタ内でファイルを分散配布する tuggle を書いた

github.com これはなに? HTTPを使って、ファイルを Consul クラスタ内で分散配布する daemon です。Go で書かれています。読みかたは「たぐる」です。 開発動機とユースケース 拙作の Stretcher というデプロイツールがあります。嬉しいことに、自分が勤務し…

ISUCON6で準優勝でした

ISUCON 6 にチーム「morimoto組」で参加して、最終スコア 36,067 で準優勝しました。 morimoto組は自分と、会社の新卒1,2年目( kasari , id:moshisora ) という歳の差チームです。 今年も作りました #isucon pic.twitter.com/y2fX4HiJys— fujiwara (@fujiwar…

API Gateway + Lambdaでcatch allした処理をApex + Goでnet/httpで扱える ridge を書いた

タイトル長い。 LambdaでGoが正式サポートされるのを首を長くして待ちつつ、Apex で Go を実行しています。 先日、API Gatewayで受けたすべてのリクエストをLambdaに丸投げすることができるようになりました。 Amazon API Gateway に API 設定を簡素化する 3…

ISUCON 6 予選通過しました

ISUCON 6 にチーム「morimoto組」で参加して、予選を通過して決勝進出することになりました。 ISUCONは過去5回のうち優勝3回、3位1回、出題1回、ということでもう引退(勝ち逃げ)しようかな…とも思ったのですが、今年は出題にも関わっていないので参加しない…

「みんなのGo言語」の執筆に参加しました

技術評論社から発行される「みんなのGo言語」という書籍の執筆に参加しました。本日、9月9日発売です! gihyo.jp みんなのGo言語【現場で使える実践テクニック】作者: 松木雅幸,mattn,藤原俊一郎,中島大一,牧大輔,鈴木健太,稲葉貴洋出版社/メーカー: 技術評…

WEB+DB PRESS vol.94 特集「実践スケーラブルAWS」を執筆しました

機会をいただいて、技術評論社 WEB+DB PRESS vol.94 の特集1「実践スケーラブルAWS」を同僚の id:tkuchiki と執筆しました。本日8/24発売です。 WEB+DB PRESS Vol.94作者: 藤原俊一郎,朽木拓,八木俊広,吉田太一郎,うらがみ,のざきひろふみ,うさみけんた,水嶋…

Fluent::Logger(Perl)をFluentd 0.14のSub-second timeに対応した

Fluentd 0.14 がリリースされましたね。 Fluentd v0.14.0 has been released | Fluentd 新機能が盛りだくさんですが、そのうちの一つ Sub-second time (秒未満の解像度のtimestamp) に Fluent::Logger 0.18で対応しました。 <source> type forward </source> <match **> @type file path</match>…

#shibuyago #2 で Stretcher の実装について話した

Shibuya.go#2 という勉強会で、自分が開発している Pull型デプロイツール Stretcher について発表してきました。 shibuyago.connpass.com 発表資料はこちらです。 speakerdeck.com Goの勉強会なので、Stretcherの実装で使われているTips的なコードの紹介を多…

nginx実践入門

「nginx実践入門」 を著者の @cubicdaiya さんからいただきました。ありがとうございます。 簡単ですが感想など。 nginx実践入門 (WEB+DB PRESS plus)作者: 久保達彦,道井俊介出版社/メーカー: 技術評論社発売日: 2016/01/16メディア: 単行本(ソフトカバー…