takus's blog https://blog.takus.me/ Recent content on takus's blog Hugo -- gohugo.io ja-jp Copyright (C) 2011- Takumi Sakamoto All Right Reserved. Mon, 08 May 2017 00:00:00 +0000 プロダクトマネージャーとして Kaizen Platform にジョインした https://blog.takus.me/2017/05/08/join-kaizen-platform/ Mon, 08 May 2017 00:00:00 +0000 https://blog.takus.me/2017/05/08/join-kaizen-platform/ <p>長らく Twitter も Blog もご無沙汰になっていた <a href="https://twitter.com/takus_ja">@takus</a> です。&rdquo;<a href="https://twitter.com/glidenote/status/857816468095815680">若手インフラ四天王</a>&rdquo; なのかはさておき<sup class="footnote-ref" id="fnref:1"><a href="#fn:1">1</a></sup>、5 月から <a href="https://www.wantedly.com/companies/kaizenplatform/info">Kaizen Platform</a> にジョインしてプロダクトマネージャーとして働き始めました。</p> Runscope で Web API を監視する https://blog.takus.me/2015/12/09/runscope/ Wed, 09 Dec 2015 00:00:00 +0900 https://blog.takus.me/2015/12/09/runscope/ <p>この記事は <a href="http://qiita.com/advent-calendar/2015/web_api">Web API Advent Calendar 2015 - Qiita</a> の 9 日目の記事です。<a href="https://www.runscope.com/">Runscope</a> という Web API 監視サービスについて紹介したいと思います。</p> AWS Lambda のココが惜しい https://blog.takus.me/2015/12/07/requests-for-aws-lambda/ Mon, 07 Dec 2015 00:00:00 +0900 https://blog.takus.me/2015/12/07/requests-for-aws-lambda/ <p>この記事は <a href="http://qiita.com/advent-calendar/2015/lambda">今年もやるよ!AWS Lambda縛り Advent Calendar 2015 - Qiita</a> の 7 日目の記事です。8 日ですけど 7 日目の記事です。つまり書くのを忘れてしまってました。すいません。</p> <p>今年の re:Invent 2015 では <a href="https://aws.amazon.com/jp/blogs/aws/aws-lambda-update-python-vpc-increased-function-duration-scheduling-and-more/">スケジュール実行、VPC サポート、実行時間の延長</a> などが発表されて、実用段階が近づきつつある AWS Lambda ですが、汎用ジョブスケジューラーとして使うにはちょっと足りない点について、思いつくことを書いてみようと思います。(もし、それできるよみたいのがあればコッソリ教えてください&hellip;)</p> AWS CodeDeploy と AutoScaling の組み合わせで気をつけたいこと https://blog.takus.me/2015/12/03/aws-codedeploy-and-auto-scaling/ Thu, 03 Dec 2015 00:00:00 +0900 https://blog.takus.me/2015/12/03/aws-codedeploy-and-auto-scaling/ <p>この記事は <a href="http://qiita.com/advent-calendar/2015/aws">AWS Advent Calendar 2015 - Qiita</a> の 3 日目の記事です。昨日は &ldquo;<a href="http://blog.takus.me/2015/12/02/docker-with-circleci-and-codedeploy/">AWS CodeDeploy と CircleCI で Docker コンテナを自動デプロイ</a>&rdquo; という記事を書きましたが、それに引き続き <a href="https://aws.amazon.com/jp/codedeploy/">AWS CodeDeploy</a> ネタです。</p> <p>Fabric や Capistrano などのデプロイツールを利用していると、AutoScaling によって起動してくるインスタンスへのアプリケーションのデプロイをどうするかというのは悩みの種ですが、 AWS CodeDeploy を利用すると、最後にデプロイに成功したリビジョンを起動時にデプロイしてくれるので非常に助かります。その一方で、 AutoScaling と連携して使うときに気をつけておくべきいいポイントがいくつかあるので、それについて書きます。</p> AWS CodeDeploy と CircleCI で Docker コンテナを自動デプロイ https://blog.takus.me/2015/12/02/docker-with-circleci-and-codedeploy/ Wed, 02 Dec 2015 00:00:00 +0900 https://blog.takus.me/2015/12/02/docker-with-circleci-and-codedeploy/ <p>この記事は <a href="http://qiita.com/advent-calendar/2015/circleci">CircleCI Advent Calendar 2015 - Qiita</a> の 2 日目の記事です。ちなみに 1 日目は @stormcat24 さんによる&rdquo;CircleCIでサクッとビルドチェーンを実現する&rdquo;お話でした。</p> <blockquote class="twitter-tweet" lang="ja"><a href="https://twitter.com/stormcat24/status/671486430548393985"></a></blockquote> <script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script> <p>というわけで、2 日目は、<a href="http://blog.takus.me/2015/10/09/livesense-technight/">SmartNews&rsquo;s Journey into Microservices という LT をしてきました</a> のスライドで少しだけ触れている、Docker コンテナを AWS CodeDeploy + CircleCI でデプロイする話について、簡単に説明しようと思います。</p> 良いディフェンダーはタックルをしないし、良いエンジニアは障害対応をしない https://blog.takus.me/2015/11/08/the-numbers-game/ Sun, 08 Nov 2015 17:22:05 +0900 https://blog.takus.me/2015/11/08/the-numbers-game/ <p>Amazon のオススメ本に出てきた「 <a rel="nofollow" href="http://www.amazon.co.jp/gp/product/B00R5Z9EU0/ref=as_li_tf_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=B00R5Z9EU0&linkCode=as2&tag=takus-22">サッカー データ革命 ロングボールは時代遅れか</a> 」を読んでみました。 この本は、野球界における「 <a rel="nofollow" href="http://www.amazon.co.jp/gp/product/B006Y44WJG/ref=as_li_tf_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=B006Y44WJG&linkCode=as2&tag=takus-22">マネーボール</a> 」のように、 サッカーを様々なデータを元に見つめ直すような内容になっていて、 例えば、チームが負けているときに交代によって最大の効果を得るためには、 1 人目の交代を後半 13 分、2 人目を後半 28 分、3 人目を後半 34 分までに行うべきとか、 極端に能力の高い選手を獲得するのと弱点となる選手の穴を埋める補強はどちらがいいのかとか、 統計を元にしたサッカーに関する興味深い考察が多かったのですが、その中に 1 つ引っかかる話があったのでそれについて書いてみます。</p> Dogstatsd で Datadog にカスタムメトリクスを送る方法 〜Fluentd との連携を添えて〜 https://blog.takus.me/2015/10/10/datadog-with-fluentd/ Sat, 10 Oct 2015 00:00:00 +0000 https://blog.takus.me/2015/10/10/datadog-with-fluentd/ <p><a href="https://datadoghq.com">Datadog</a> というシステム監視 SaaS のネタです。 先週の木曜に「Datadog でカスタムメトリクス送るの面倒じゃない?どうやってるの?」とある人に質問されたので、 自分が知ってる <strong>Dogstatsd</strong> を使う方法をシェアします。</p> SmartNews's Journey into Microservices という LT をしてきました https://blog.takus.me/2015/10/09/livesense-technight/ Fri, 09 Oct 2015 00:00:00 +0000 https://blog.takus.me/2015/10/09/livesense-technight/ <p>先週の火曜日の話になりますが <a href="http://made.livesense.co.jp/blogs/431">Livesense TechNight</a> というイベントで &ldquo;SmartNews&rsquo;s Journey into Microservices&rdquo; という LT をしてきました。</p> fluent-plugin-dynamodb-streams を作った https://blog.takus.me/2015/09/15/fluent-plugin-dynamodb-streams/ Tue, 15 Sep 2015 00:00:00 +0000 https://blog.takus.me/2015/09/15/fluent-plugin-dynamodb-streams/ <p>Amazon DynamoDB Streams のレコードを Fluentd で扱いたい要件があり、ググっても見当たらなかったのでプラグインを実装してみました。</p> Datadog ユーザの集い #dd_sushi を開催しました https://blog.takus.me/2015/02/26/dd-sushi/ Thu, 26 Feb 2015 00:00:00 +0000 https://blog.takus.me/2015/02/26/dd-sushi/ <p>こんにちは。スマートニュースの <a href="https://twitter.com/takus">@takus</a> です。 <sup>2</sup>&frasl;<sub>24</sub> に Datadog ユーザの集まり <a href="https://twitter.com/search?q=%23dd_sushi">#dd_sushi</a> というイベントを開催しましたので、この場を借りて簡単にレポートさせていただきます。</p> AWS re:Invent 2014 day1 のまとめ https://blog.takus.me/2014/11/12/reinvent-2014-day1/ Wed, 12 Nov 2014 00:00:00 +0000 https://blog.takus.me/2014/11/12/reinvent-2014-day1/ <p>AWS が主催する re:Invent 2014 に参加するためにラスベガスに来ております。<code>@suzu_v</code> 先生が<a href="http://suzuken.hatenablog.jp/entry/2014/11/13/112730">メモ書き</a>をしていたので、自分も簡単ながらメモを残しておこうと思います。</p> YAPC::Asia 2014 にいってきた #yapcasia https://blog.takus.me/2014/08/31/yapc-asia-2014/ Sun, 31 Aug 2014 00:00:00 +0000 https://blog.takus.me/2014/08/31/yapc-asia-2014/ <p>ブログを書くまでが YAPC::Asia ということなので簡単に書いておきます。</p> スマートニュースにジョインしました https://blog.takus.me/2014/08/01/join-smartnews/ Fri, 01 Aug 2014 00:00:00 +0000 https://blog.takus.me/2014/08/01/join-smartnews/ <p>様々な大物な方々の人事ニュースが飛び交う中で恐縮ですが、スマートニュース株式会社にジョインしたことをこの場を借りて報告させていただきます。</p> 結婚しました & 退職しました https://blog.takus.me/2014/07/31/got-married-and-leave-dena/ Thu, 31 Jul 2014 00:00:00 +0000 https://blog.takus.me/2014/07/31/got-married-and-leave-dena/ <p>一部の方には既に報告させていただいてますが <sup>7</sup>&frasl;<sub>22</sub> に入籍しました。</p> バルセロナにいってきた https://blog.takus.me/2014/05/16/travel-to-barcelona/ Fri, 16 May 2014 00:00:00 +0000 https://blog.takus.me/2014/05/16/travel-to-barcelona/ <p>去年の「<a href="http://blog.takus.me/2013/05/11/travel-to-los-angeles/">Los Angeles に行ってきた</a>」と 「<a href="http://blog.takus.me/2013/05/12/travel-to-new-york/">New York に行ってきた</a>」に引き続き、 今年はバルセロナにいってきましたが、かなりいい場所だったのでカンタンにまとめです。</p> バルセロナでプリペイド SIM カードを購入する https://blog.takus.me/2014/05/05/barcelona-prepaid-sim/ Mon, 05 May 2014 00:00:00 +0000 https://blog.takus.me/2014/05/05/barcelona-prepaid-sim/ <p>休暇でバルセロナに来てるわけですが、今回は現地でプリペイド SIM カードを買ってみたので買い方などをまとめておきます。</p> 『グーグル ネット覇者の真実』を読んだ https://blog.takus.me/2014/04/16/google-in-the-plex/ Wed, 16 Apr 2014 00:00:00 +0000 https://blog.takus.me/2014/04/16/google-in-the-plex/ <p>ある人にオススメされたので『<a rel="nofollow" href="http://www.amazon.co.jp/gp/product/B009LFBL4Y/ref=as_li_tf_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=B009LFBL4Y&linkCode=as2&tag=takus-22">グーグル ネット覇者の真実</a> 』を読んでみたらかなり面白い本でした。検索連動型広告という金脈を見つけて急成長していく序盤のワクワクする感じから、上場して今のような大企業になるにつれていわゆる大企業病が蔓延して色々と悩みが増えてくる様子などがかなり生々しく書かれていて、色々と考えさせられる内容が多かったです。その中でもいくつか印象に残ったことなどをメモっておきます。</p> 『アルゴリズムが世界を支配する』を読んだ https://blog.takus.me/2014/04/05/automate-this/ Sat, 05 Apr 2014 00:00:00 +0000 https://blog.takus.me/2014/04/05/automate-this/ <p><a rel="nofollow" href="http://www.amazon.co.jp/gp/product/B00FMI2XIW/ref=as_li_tf_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=B00FMI2XIW&linkCode=as2&tag=takus-22">アルゴリズムが世界を支配する</a> を読んでみました。</p> 『Think Simple』 は学びが多い本でした https://blog.takus.me/2014/03/29/think-simple/ Sat, 29 Mar 2014 00:00:00 +0000 https://blog.takus.me/2014/03/29/think-simple/ <p>Macbook や iPhone のデザインはシンプルでクールで最高だろ、みたいな本かと思って敬遠してましたが、<a href="http://blog.kenjiskywalker.org/blog/2013/11/16/think-simple/">@kenjiskywalker さんのブログ</a> みて面白そうだったので、<a rel="nofollow" href="http://www.amazon.co.jp/gp/product/B008YOHMCS/ref=as_li_tf_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=B008YOHMCS&linkCode=as2&tag=takus-22">Think Simple - アップルを生みだす熱狂的哲学</a> 読んでみたら、予想以上に学びが多くて、イイ本でした。</p> #jawsdays の #最強のAWS で「ぜんぶ AWS でやらないワケ」という話をしてきた https://blog.takus.me/2014/03/17/jawsdays-2014/ Mon, 17 Mar 2014 00:00:00 +0000 https://blog.takus.me/2014/03/17/jawsdays-2014/ <p><a href="https://twitter.com/hirose31">@hirose31</a> さん経由で <a href="https://twitter.com/con_mame">@con_mame</a> さんからお話をいただき、 <a href="http://jawsdays2014.jaws-ug.jp/">JAWSDAYS 2014</a> の「<a href="http://jawsdays2014.jaws-ug.jp/sessions/track7/">これで最強AWSに</a>」というセッションで話をしてきました。</p> EC2 に SSH できない時の対処法、あるいは Marketplace の AMI を気軽に選ぶべきでない理由 https://blog.takus.me/2014/03/04/ec2-ssh/ Tue, 04 Mar 2014 00:00:00 +0000 https://blog.takus.me/2014/03/04/ec2-ssh/ <p>前半の部分をまとめようと思ったら、大切なことは全て<a href="https://gist.github.com/j3tm0t0/5560892"> @j3tm0t0 さんの gist </a>に書いてあったので、SSH でログインできなくなった時はまず上記の gist に書いてあることを確認するといいと思います。</p> <p>で、今回の話は、snapshot を取得して 新たに volume を作成して、他のインスタンスにアタッチ&マウントしてエラーが出ていないかを確認しようとした時に下記のエラーでマウントできなかった件に関するお話です。</p> Octopress で はてなブックマーク数 を表示する https://blog.takus.me/2014/03/01/octopress-hatena-bookmark/ Sat, 01 Mar 2014 00:00:00 +0000 https://blog.takus.me/2014/03/01/octopress-hatena-bookmark/ https://github.com/takus/takus.github.com/commit/0cf6d223e4f2512c63652b8bc0147956b9d77722 こちらからは以上です。 Docker/Drone を CentOS 6.5 で動かして Github Enterprise のリポジトリをテストする https://blog.takus.me/2014/02/25/drone-on-centos/ Tue, 25 Feb 2014 00:00:00 +0000 https://blog.takus.me/2014/02/25/drone-on-centos/ <p>&ldquo;Docker 使うなら Ubuntu だろ jk&rdquo; とか言われそうですが CentOS 6.5 で使いたかったので試してみました。<a href="https://www.docker.io/gettingstarted/">Docker の公式サイトには &ldquo;Our recommended installation path is for Ubuntu linux, because we develop Docker on Ubuntu and our installation package will do most of the work for you.&rdquo; と書いてあったり</a>、<a href="https://github.com/drone/drone">Drone は Ubuntu 用のパッケージしかなかったり</a>するので、深淵な理由がなければ Ubuntu 使うのがいいんじゃないかと思います。</p> 自分が撮影した写真をドイツの出版社に買ってもらった話 https://blog.takus.me/2014/02/25/money/ Tue, 25 Feb 2014 00:00:00 +0000 https://blog.takus.me/2014/02/25/money/ <p>ある日、ドイツの出版社から Flickr で共有した御柱の写真を買いたいというオファーがあり、色々調べながら無事に取引できたので、取引の流れをまとめておきます。</p> Immutable Infrastructure Hackathon :D で docker をさわってみた https://blog.takus.me/2014/02/23/docker/ Sun, 23 Feb 2014 00:00:00 +0000 https://blog.takus.me/2014/02/23/docker/ <p>Immutable Infrastructure Hackathon :D で <a href="https://www.docker.io/">Docker</a> を触ってみただけという、ゆるふわなメモです。</p> Nagios のアラートに CloudForecast へのリンクをつける https://blog.takus.me/2014/01/28/nagios-resource-graph/ Tue, 28 Jan 2014 00:00:00 +0000 https://blog.takus.me/2014/01/28/nagios-resource-graph/ <p>といっても、単に <code>Graph: http://cf.example.com/server?address=$HOSTADDRESS$\n</code> みたいな記述を <code>command.cfg</code> に追加してあげるだけの話です。</p> fluent-plugin-ec2-metadata という fluentd プラグインを書いてみた https://blog.takus.me/2014/01/18/fluent-plugin-ec2-metadata/ Sat, 18 Jan 2014 00:00:00 +0000 https://blog.takus.me/2014/01/18/fluent-plugin-ec2-metadata/ <p>前々から fluentd のプラグインを書いてみようと思っていたので、ec2 の metadata をレコードに追加するようなプラグインを書いてみました。</p> サイドバックの生存戦略 https://blog.takus.me/2014/01/05/survival-strategy/ Sun, 05 Jan 2014 00:00:00 +0000 https://blog.takus.me/2014/01/05/survival-strategy/ <p>単純にサッカーが好きなこともありますが、サッカー選手が書いている本を昔からよく読んでいる方だと思います。サッカー選手とは置かれてる状況が全然違うものの、時には共感することや実践したいと思うようなことに巡り会うことがあります。 で、正月に Amazon を徘徊してたら、 内田篤人の「<a href="http://www.amazon.co.jp/exec/obidos/ASIN/B00E3OZRIO/takus-22/ref=nosim">僕は自分が見たことしか信じない</a>」が期間限定セールで 299 円になってたので読んでみたところ、引っかかったことがあったので書いてみたいと思います。</p> さよなら 2013 年 https://blog.takus.me/2013/12/31/2013-to-2014/ Tue, 31 Dec 2013 00:00:00 +0000 https://blog.takus.me/2013/12/31/2013-to-2014/ 年の瀬ということで今年を振り返ってみます。 仕事のこと 一言でいうならすごく仕事の守備範囲が広がった一年だった印象です。サッカーで例えると今まで FW 1 本でやってきた選手が、MF もやるようになってプレーの幅が広がったような感じでしょうか(適当)。運用に関わる範囲が増えただけでなく、オペミスしたら甚大な被害が出そうな作業も「任せておけばイイカンジになりますか?」と上司に振られるようになったり、新しい仕組みの導入なども積極的にやらせてもらえる (勝手にやってるともいえるが&hellip;) ようになったり、色々とやらせてもらえるようになった結果としてエンジニアとしての幅が広がったのではないかと思います! また、海外拠点の人とやり取りする機会が増えた結果、最近はメールや IRC も半分くらいは英語で書くような生活をするようになったり、日によっては 1 日中英語喋ってるようなときもあり、コミュニケーションという面でも出来ることの幅は広がっていった一年でした。 一方で、人に教えるようになるにつれて「自分でやった方が早い病」 みたいに思うことがあったり、人に教えるとかマネジメントするとか難しいなとか思いながら、その辺はモヤモヤしながら試行錯誤してた気がします。 プライベートなこと アメリカ初上陸 &amp; 海外カンファレンス初参戦 5 月にロサンゼルスとニューヨーク、6 月にサンフランシスコと、はじめてアメリカに行きました。特に 6 月のサンフランシスコでは、Velocity Conference という Web operation や Web performance に関するカンファレンスに参加できたのはすごく印象深い思い出です。初めての海外カンファレンスなのに一人で参加したこともあり、最初はぼっち感がハンパなかったですが、初日に LT したことも助けになり、最終的には色んな人と喋れたので、とてもいい経験になりました。 Velocity 2013 に参加 &amp; LT してきました!! 若手 Web エンジニア交流会 今年は@クックパッド、@mixi、@Google と 3 回も開催させていだだきました。いつもオフィスを貸していただいたり、準備を手伝ってくれてる皆様、本当にありがとうございます。募集ページに &ldquo;基本的に新卒 3 年目前後のウェブエンジニアを対象としています&rdquo; って書いてあり、そろそろ若手も名乗れなくなってくるので、今後の方向性については模索している段階です(笑 (個人的) 電子書籍元年 Kindle が上陸したのは 去年な気がしますが、今年になってからすごく読む機会が増えました。都会の家は狭くてたくさん本が置けるような本棚も置けないので物理的な本を買うのはすごく億劫なのと、そもそもいつも Mac やガジェット持ち歩いているために本を入れるスペースがないこともあって、読みたい本があってもスルーする機会が多かったですが、Kindle ストアや O&rsquo;Reilly のオンラインストアで気軽に本を買って読めるようになったのは自分にとっては非常に大きかったです。例えば &ldquo;実践ハイパフォーマンスMySQL&rdquo; という MySQL の名著は 864 ページもあって、人を殺せるくらい分厚い本ですが、電子書籍なら物理的なスペースゼロなので、気軽に買って読むことができました。紙に比べて不便な部分もないわけではないですが、自分にとってはそれ以上のメリットがあるので、来年も電子書籍にはお世話になっていくことでしょう。 価格面でも、5000 円くらいする &ldquo;実践ハイパフォーマンスMySQL&rdquo; が、オライリーのセール時に買うとわずか $19. innodb_stats_on_metadata に要注意 https://blog.takus.me/2013/12/21/innodb-stats-on-metadata/ Sat, 21 Dec 2013 00:00:00 +0000 https://blog.takus.me/2013/12/21/innodb-stats-on-metadata/ 一日に数回 MySQL が詰まるような現象があったので原因を調べたところ、そのサーバだけ innodb_stats_on_metadata=1 になっていたのが原因だったという話デス。 innodb_stats_on_metadata は、テーブルのメタデータにアクセスしたときに InnoDB の統計情報を更新するかどうかのフラグで、今回問題が起こっていたサーバのようにデータ量が多いサーバなどでは無効にしておく必要があります。例えば、公式ドキュメント の innodb_stats_on_metadata の部分にはこのように書いてあります。 この変数が有効 (この変数が作成される前からのデフォルト) な場合、SHOW TABLE STATUS や SHOW INDEX などのメタデータステートメントの実行時や、INFORMATION_SCHEMA テーブル TABLES または STATISTICS へのアクセス時に、InnoDB は統計情報を更新します。(これらの更新は、ANALYZE TABLE で行われるものに似ている。) 無効な場合、InnoDB はそれらの処理中に統計情報を更新しません。この変数を無効にすると、テーブルやインデックスを多数含むスキーマへのアクセス速度が改善される可能性があります。またその場合、InnoDB テーブルが関係するクエリーの実行計画の安定性も高まる可能性があります。 他にも MySQL Performance Blog の Solving INFORMATION_SCHEMA slowness という記事や、High Performance MySQL 3rd Edition の 5 章にもこのオプションに関する言及がありました。 性能に影響与えるようなオプションであればデフォルトで無効にしておいてくれればいいのにと思っていたら、MySQL 5.6 からデフォルトで無効になるようです。 Roadworker - The Best Way to Manage Your Amazon Route53 Records https://blog.takus.me/2013/11/10/roadworker/ Sun, 10 Nov 2013 00:00:00 +0000 https://blog.takus.me/2013/11/10/roadworker/ What is Roadworker? According to @sgwr_dts (the author of roadworker), Roadworker is a tool to manage Amazon Route53. It defines the state of Route53 using DSL, and updates Route53 according to DSL. Why we should avoid using Route53&rsquo;s web console? Definitely, Amazon Route53 is one of the best DNS hosting service. Highly Available SLA 100%!! Cost-Effective basically $0.50 per hosted zone / $0.500 per million queries Simple You can start to use within minutes But Managing Route53 via its web console is slightly painful. daemontools の setuidgid が supplementary groups 権限をつけてくれない件 https://blog.takus.me/2013/11/02/daemontools-setuidgid/ Sat, 02 Nov 2013 00:00:00 +0000 https://blog.takus.me/2013/11/02/daemontools-setuidgid/ 『daemontools の setuidgid』や 『補助グループ権限もつけてくれるsetuidgidのようなもの』のところに書いてある話なんですが、daemontools の setuidgid は 補助グループ権限をつけてくれません。 どういうことかというと、sysadmin グループに属する admin ユーザがいて、下記のような設定になってるときに、 $ id admin uid=2500(admin) gid=2500(admin) groups=2500(admin),2501(sysadmin) $ ls -l /home/admin/password.pl -rw-r----- 1 root sysadmin 584 Jul 24 22:47 /home/admin/password.pl 下記のような run ファイルで daemon を起動したところ、password.pl が読めないというエラーが出ました。 #!/bin/sh exec 2&gt;&amp;1 exec setuidgid admin /path/to/oreno_daemon 一見すると、admin ユーザは sysadmin ユーザに含まれているため権限は問題ないように思えて、実際にコンソールから実行すると読むことができるのですが、前述の通り setuidgid は補助グループ権限をつけてくれないため、setuidgid で指定した admin ユーザは下記のようなユーザとみなされ、password.pl を読むことができないというオチでした。 $ id admin uid=2500(admin) gid=2500(admin) groups=2500(admin) 解決策は、『補助グループ権限もつけてくれるsetuidgidのようなもの』にまとまってますが、この辺りを使うのがいいのではないかと思ってる次第です。 #yapcasia と #devopsday と #wakateweb の話 https://blog.takus.me/2013/10/18/yapc-devopsday-wakateweb/ Fri, 18 Oct 2013 00:00:00 +0000 https://blog.takus.me/2013/10/18/yapc-devopsday-wakateweb/ 9 月後半から 10 月前半にかけて、#yapcasia と #depopsday と #wakateweb といったイベントに参加させていただきましたが、全くブログに書いてなかったので簡単にまとめておきます。 YAPC::ASIA 2013 今回の YAPC も最高に楽しい 3 日間でした。会場が日吉ということで、なんだか学生時代に戻ったような気分で参加していた気がします。 Rubyの良いところ語ってください 〜そんなPerlで大丈夫か?〜 Perl が盛大に dis られる座談会なのかと思っていましたがそんなこともなく、卜部さんのブログに書いてあること が全てな印象でした。流行りと廃りはどんな言語・技術にもあるもので、トレンドの変化が起きた時に移行すべきなのにできないというように、何かに固執する (固執せざるを得なくなる) のがほんとのリスクじゃないでしょうか。 フルテストも50msで終わらせたい 〜FreakOutの取り組み〜 このトークで印象に残ってるのが、「テストを爆速にした結果、手元でやるより push したほうが速くて、みんな push しだした」という部分で、これによって他の人の開発アクティビティが見えやすくなったとおっしゃっていましたが、まさしくツールで文化を変えていくような例でスバラシイと思いました。組織で何かに取り組もうとしたときに、こうしましょうって決めても、人によって温度感がバラバラでなかなか浸透しなかったりなんてことはよくあるので、気持ちよく走れるレールを敷いてあげて、自然にいい方向に持ってけれるような仕事の仕方をしていけるといいですね! さいごに 1 日目の夜に Facebook で @nekokak さんが「喋りたくなったから喋る」みたいなこと書いてるの見て、そういえば去年の YAPC のブログでも次は発表したいとか書いてたなって思い出して、LT に応募して喋ってきました。時間ないから 3 分でと言われて早口で喋ってたのでだいぶ微妙な感じでしたが、やらないよりはやって失敗して学んでいくタイプなので次回にご期待ください&hellip;。 最後に、今回の YAPC を最後に櫛井さんと牧さんが運営から離れるとのことでしたが、今まで本当にお疲れさまでした。自分が参加させていただいた 3 回の YAPC はどれもほんとに楽しくて、勉強になって、素晴らしい時間を過ごすことができました。この場を借りて、お礼を言わせていただきたいです。本当にありがとうございました!!! DevOpsDay Tokyo 2013 Github の @johndbritton さんが Ops for Everyone の中で、「Hubot は全員のターミナルをシェアするみたいな考え方で、オペレーションの可視化を実現している」といったことを言っていて、うんうんって思いながら聞いていました。新しく入ってきた人はそれ見ながらどういう操作すればいいか勉強できるし、いま各々がどういうことやっているかも把握しやすくなりそうだし、Hubot を中心にしたオペレーションはかなりアリなんじゃないかと思います。 余談ですが、/graph me でグラフ出せる機能を拡張して、/graph me 呼んだときに GrowthForecast(RRD) のグラフを 社内 Gyazo とかにあげて、そのリンクを IRC にポストしてくれたりすると、後で IRC のログ振り返るときにそのとき見てたグラフが表示できて捗りそうかなーとか思いました。(RRD は後で見ようと思っても丸められてしまうので) mysql_secure_installation の中身 https://blog.takus.me/2013/08/11/mysql_secure_installation/ Sun, 11 Aug 2013 00:00:00 +0000 https://blog.takus.me/2013/08/11/mysql_secure_installation/ 単純に気になったので。5.1 系のソース眺めただけです。 root ユーザのパスワード文字列を設定 # Set the root password UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root'; anonymous ユーザを削除 # Remove anonymous users DELETE FROM mysql.user WHERE User=''; リモートからの root ログインを禁止する # Disallow remote root login DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1'); test データベースを削除する # Remove test database DROP DATABASE test; DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'; 権限を再読み出しする # Reload privilege tables FLUSH PRIVILEGES;` nagira という Nagios RESTful API が便利そうな件 https://blog.takus.me/2013/08/06/nagira-nagios-restful-api/ Tue, 06 Aug 2013 00:00:00 +0000 https://blog.takus.me/2013/08/06/nagira-nagios-restful-api/ <p>オートスケーリングみたいなことをしようとする場合、サービスインする前に監視が全て OK になっているかチェック しておきたいみたいな需要がありますが、みんな大好き Nagios でこれをやろうとするとちょっと面倒だったりします。</p> Velocity 2013 に参加 & LT してきました!! https://blog.takus.me/2013/06/21/velocity-conference-santa-clara-2013/ Fri, 21 Jun 2013 00:00:00 +0000 https://blog.takus.me/2013/06/21/velocity-conference-santa-clara-2013/ 6&frasl;18 ~ 6&frasl;20 に Santa Clara で開催された Velocity 2013 に参加して来ました。Velocity は Web Performance や Web Operation などが主なテーマで、Google、Facebook、Twitter、Amazon、Yahoo! などをはじめとした様々な企業から 1,000 人以上が参加する大規模なカンファレンスです。いまやよく耳にする DevOps というキーワードも 10+ Deploys Per Day: Dev and Ops Cooperation at Flickr という Velocity 2009 のトークで有名になった言葉ですね。 参加するにあたって、@xaicron さんの 勝手に YAPC::NA 2013 に行ってきた!! と同じく、会社が渡航費、宿泊費、参加費等の全ての費用を負担してくれました!!新卒入社 2 年目の自分をこのような素晴らしいカンファレンスに快く派遣してくれた DeNA++ です。 My Ignite Talk &ldquo;不格好経営&rdquo;にも載ってる DeNA の創業者である南場さんの言葉に、&ldquo;これから会社がどんなに長生きしようとも、地球や宇宙の時間のなかでほんの瞬間の存在になる。けれどもなにか宇宙に引っ掻きキズみたいな証を残したい。&rdquo; というものがあります。そこで、Velocity への参加が決まってから、DeNA 社員として何か引っ掻きキズを残せないか考えていたところ、Ignite Velocity という LT のセッションを見つけたので、abstract 書いて応募したところ accept されたので LT してきました。 ご存知ない方のために紹介しておくと Ignite は 20 枚のスライドを 15 秒づつ流して、5 分間のプレゼンをするというプレゼン形式で、Velocity 2012 では DevOps に関する話 等が Youtube にあがってます。 Code Simplicity https://blog.takus.me/2013/06/06/code-simplicity/ Thu, 06 Jun 2013 00:00:00 +0000 https://blog.takus.me/2013/06/06/code-simplicity/ This blog post reminds me of the book I read six months ago. Code Simplicity Altough I don&rsquo;t remember the exact sentences in the book, the author wrote something like that: The ultimate goal of software is to help people, and great software is a software that will continue to help people. However, continuing to help people is really difficult because the environment around our software is going to change. rsync が 'ssh_exchange_identification: Connection closed by remote host' で失敗するときの対処法 https://blog.takus.me/2013/06/03/rsync-ssh-maxstartups/ Mon, 03 Jun 2013 00:00:00 +0000 https://blog.takus.me/2013/06/03/rsync-ssh-maxstartups/ rsync したときに下記のようなエラーでファイル転送が失敗する事案があったので、 /etc/sshd_config の LogLevel を DEBUG 2 に変更して再実行したところ、drop connection されていました。 $ deploy-tool . . . err:host0001:65280 ssh_exchange_identification: Connection closed by remote host rsync: connection unexpectedly closed (0 bytes received so far) [sender] rsync error: unexplained error (code 255) at io.c(600) [sender=3.0.6] $ sudo tail -f /var/log/secure | grep 'drop connection' Jun 1 02:20:40 host0001 sshd[21747]: debug1: drop connection #10 Jun 1 02:20:40 host0001 sshd[21747]: debug1: drop connection #10 man を見ると /etc/sshd_config の MaxStartUps が作用してそうだったので MaxStartups を大きな値にして回避しました。 外部から攻撃される可能性がないサーバなら大きな値にしておくとよさそうです。 CentOS 6 に /dev/sdf としてアタッチした EBS ボリュームが /dev/xvdj として認識される件 https://blog.takus.me/2013/05/23/ebs-dev-sdf-dev-xvdj/ Thu, 23 May 2013 00:00:00 +0000 https://blog.takus.me/2013/05/23/ebs-dev-sdf-dev-xvdj/ インスタンスガチャなのかなんなのか、同じくらいの負荷与えてる EBS ボリュームのうち 1 台だけ性能劣化することがあって、ひとまず EC2 の問題なのか EBS の問題なのか切り分けるために EBS ボリュームを作って、AWS のマネジメントコンソールから CentOS 6 のサーバに /dev/sdf としてアタッチしたのに一向にデバイス認識されず、おかしいなと思って調べていたらアタッチしたボリュームと同じサイズのデバイスがあって、ググったら RHEL 6 や CentOS 6 でデバイス名がズレてしまうバグが存在するというオチでした。 # fdisk -l . . . Disk /dev/xvdj: 429.5 GB, 429496729600 bytes 255 heads, 63 sectors/track, 52216 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/xvdj doesn't contain a valid partition table 参考リンク CentOS6. New York に行ってきた https://blog.takus.me/2013/05/12/travel-to-new-york/ Sun, 12 May 2013 00:00:00 +0000 https://blog.takus.me/2013/05/12/travel-to-new-york/ 前回の&rdquo;Los Angeles に行ってきた&ldquo;の続きです。New York 編。 Tips Unlimited Ride MetroCard 市内であれば、ほとんどの場所に地下鉄で行けるので地下鉄の乗り放題パスを買うと捗ります。7 日間乗り放題で $30 と無駄に期間が長くて使い切れないですが、すぐに元取れます。 NEW YORK CityPASS とりあえず初めて NY 行く人はこれを買っておくといいと思います。エンパイアステートビル展望台、メトロポリタン美術館、アメリカ自然史博物館、トップオブザロック展望台、近代美術館、自由の女神周辺のフェリー観光ができて、$106 は個別にチケットを買うよりはかなりお得です。旅行行く前にオンラインで支払って、バーコード入りのチケットを印刷して持って行けば OK です。 Statue of Liverty フェリーで自由の女神からブルックリン橋まで Manhattan 島の南部を全体的に回ってくれてだいぶ満足できるツアーになってます。 911 Memorial すでに One World Trade Center と呼ばれる新しいビルが天空高くそびえ立っていましたが、こんなビルが跡形もなく崩れ去るなんてとても想像できないわけで、自分の中での 9&frasl;11 に対する見方が変わって、遠い国の出来事から急にすごくリアルな出来事に思えるようになりました。 Brooklyn Bridge 全長 2km くらいなので歩いて渡ると楽しめます。Manhattan 側から歩いていき、Brooklyn 側の公園でアイスを食べながら一休みして地下鉄で帰りました。 Yankee Stadium せっかくなのでメジャーリーグも見てきました。オンラインでチケット買ってくこともできますが、人気カードでない限り当日スタジアム行って買えば問題ないです。$50 くらいのチケット買いましたが、球場内の移動が割と自由で写真のように内野席の後ろとか入れて立ち見できるので、一番安いチケット買って歩き回るのがベストなんじゃないかと思います。 Top of The Rock &amp; Empire State Buinding New York の町を一望できる場所として、この 2 箇所がありますが、夜景を楽しむなら Empire State Building のライトアップを見れる Top of The Rock に行くのが正解です。 Provisioning Frameworks Casual Talks vol.1 に行ってきた #pfcasual https://blog.takus.me/2013/05/12/provisioning-frameworks-casual-talks-001/ Sun, 12 May 2013 00:00:00 +0000 https://blog.takus.me/2013/05/12/provisioning-frameworks-casual-talks-001/ 金曜日にヒカリエで開催された Provisioning Frameworks Casual Talks vol.1 に参加 &amp; 少しだけお手伝いしてきたのでまとめ。@zabbiozabbio さんと一緒に 27F のエレベーターホールで待ち受けていたのが自分です。 serverspec の話 chef + puppet の話というよりも chef 使うにしても、puppet 使うにしても、(Touryo 使うにしても)、serverspec 使って構成管理ツールとは別にサーバの構成をテストすべきだよねという話が印象に残っていて、どの構成管理ツール使うか検討している間に、まずは serverspec でテストするようにしておくのがよさそうかなと思いました。 で、attribute(config) の管理方法の話 serverspec 自体は出たときからよさそうだなとは思っていたものの、attribute に入れた内容が設定ファイルに反映されているかみたいなテストをしようとすると上記のような疑問にぶち当たって、serverspec が構成管理ツールに依存するのイケてないなーとか思っていましたが、家に帰って twitter 眺めてたら @riywo 先生がボソっといいことつぶやいてました。 弊社でいえば、たとえば admintool 的なツールが attribute 持っていて、provision と test の両方から参照できるみたいになっていれば、なんとなく上記の問題も解決できそうで、chef-solo -j URL で URL 指定して json 取ってこれると言ってた気がするので、なんかこの辺りうまくやれるツールがあるとよさそうですね:D 2013/05/12 23:34 追記 serverspec でホスト固有の属性値を扱う方法 で参考になりそうな仕組みが提案されてたので参考にしたいところです。 自動更新の話 @sonots さんのブログ にまとまってる話。自分は自動更新は怖い派ですが、実現できないか考える余地は色々とありそうだと思いました。話に出ていた staging はもちろん @sethvargo 先生がお話していた、environments を使えば production の一部のサーバだけ更新するみたいなこともできそうで、staging → production の一部 →production 全部 (or ブルー・グルーン・デプロイで新しいクラスタにだけ) といったように反映しつつテスト回せば、取り返しがつかなくなる前に気づくことも可能なのかもしれないとか思いました。(話聞いた印象なだけで裏取ったりはしてないですが&hellip;) Los Angeles に行ってきた https://blog.takus.me/2013/05/11/travel-to-los-angeles/ Sat, 11 May 2013 00:00:00 +0000 https://blog.takus.me/2013/05/11/travel-to-los-angeles/ 帰ってきてから 1 週間ぐらいたってしまいましたが、ゴールデンウィークを利用して Los Angeles と New York に行ってきたのでまとめ。ひとまず Los Angeles 編。 We Need a Car ヨーロッパ旅行の感覚で現地に着いてから色々考えようとか思ってましたが、公共交通機関で移動すると時間かかりすぎなのが非常に辛い町でした。ロサンゼルス国際空港の近くのホテルに宿泊していましたが、ビーチで有名な Santa Monica まではバスで 40 分程度、Hollywood までは 1 時間はかかってしまいます。逆にタクシーだとそれぞれ 30 分程度で着いてしまうので、レンタカー借りて移動するのが正解でした&hellip;。 Disney Resort California の Disney Resort は LAX から南に車で 40 分ほどの Anaheim にあります。LAX からは有料のシャトルバスが出ていて、&rdquo;Long Distance Vans&rdquo; と書かれた緑色の案内版の下で待ってると &ldquo;Disney Resort&rdquo; と書かれたバスが通るので合図して停車してもらって乗ります。片道 $20 程度。「帰りも乗ってくか?」と聞かれたので、「09:00 からショーがあってそれを見たいから 10:00 に迎えに来てくれて、ホテルまで送ってくれるなら」と交渉したところ、「ノープロブレム」とのことだったのでお願いしました。 日本におけるディズニーランドとディズニーシーのように、Disney Park と Disney California Park の 2 つがあったので、1 日でどちらにも出入りが自由な Park Hopper Ticket を $125 で購入。日本のディズニーランドが 6200 円なので大体同じくらいの感覚なんじゃないかと思います。 crontab で date コマンド使う場合の注意 https://blog.takus.me/2013/05/01/crontab-date/ Wed, 01 May 2013 00:00:00 +0000 https://blog.takus.me/2013/05/01/crontab-date/ crontab で定期的にを実行したときに出力されたものをログとして書き出すときに、ファイル名のサフィックスとして日時をつけることでログローテーションさせたいというケースはあると思います。ですが、以下のような記述はうまくいきません。 0 0 * * * /home/takus/bin/oreno_script.pl &gt; /tmp/log.`date -d '1 days ago' +%Y%m%d` 2&gt;&amp;1 これは % が crontab では特別な意味を持つ文字であるのが原因で、下記のように % はバックスラッシュでエスケープしておく必要があります。 0 0 * * * /home/takus/bin/oreno_script.pl &gt; /tmp/log.`date -d '1 days ago' +\%Y\%m\%d` 2&gt;&amp;1 crontab は man を読んで正しく使いましょう。 参考 詳細は man 5 crontab で確認できます。 ブラウザから tail -f log | grep keyword できるツール supergrep https://blog.takus.me/2013/04/25/supergrep/ Thu, 25 Apr 2013 00:00:00 +0000 https://blog.takus.me/2013/04/25/supergrep/ エンジニアならサーバにログインしてコマンド打てば済む話ですが、世の中には非エンジニアでも tail -f log | grep keyword みたいにログを見れるようにしたいという案件がたまにあるみたいです。自分で書いてもよかったのですが、supergrep というツールがあったので使ってみました。 Is It A Bird? Is It A Plane? No, It’s Supergrep! esty/supergrep インストール supergrep は node.js で書かれているので、node のインストールから。node の作法はよく知らないので適当です。 git clone https://github.com/creationix/nvm.git ~/nvm . ~/nvm/nvm.sh nvm install v0.10.5 nvm alias default v0.10.5 node -v 続いて supergrep をインストールして起動します。これだけ。起動時に &lsquo;Warning: express.createServer() is deprecated, express&rsquo; が出るのはご愛敬。 git clone https://github.com/etsy/supergrep.git cd supergrep npm install ./runlocal http://hostname:3000 にブラウザからアクセスするとログが見れる状態になりました。 設定 デフォルトでは /var/log/httpd/{info.log,php.log} を見るようになっていますが、他のログもみたい場合は localConfig. CentOS に Riak をインストール & Data::Riak::Fast で操作してみる https://blog.takus.me/2013/03/28/riak-install/ Thu, 28 Mar 2013 00:00:00 +0000 https://blog.takus.me/2013/03/28/riak-install/ 最近、社内 TechTalk で何か話せという依頼があり、ちょうど Riak Serious Talk もあるので、Riak についてアーキテクチャから利用例まで調べて話してみました。その課程で Riak のインストール等したので適当にブログっておきます。 インストール Vagrantbox.es から CentOS 6.4 x86_64 Minimal を持ってきてテストサーバを用意。起動後にひとまず iptables だけ停止。Vagrant の操作などは割愛します。 依存パッケージ導入 Erlang をインストールするのに必要なパッケージをインストールします。 sudo yum groupinstall “Development tools” sudo yum install git sudo yum install libwx unixODBC.x86_64 unixODBC-devel.x86_6 wxBase.x86_64 wxGTK.x86_64 wxGTK-gl wget https://elearning.erlang-solutions.com/couchdb//rbingen_adapter//package_R15B01_centos664_1333462308/esl-erlang-R15B01-1.x86_64.rpm sudo rpm -ivh esl-erlang-R15B01-1.x86_64.rpm Riak をインストール とりあえず make まで。ソースは Basho のサイトから入手できます。 wget http://downloads.basho.com.s3-website-us-east-1.amazonaws.com/riak/1.3/1.3.0/riak-1.3.0.tar.gz tar zxvf riak-1.3.0.tar.gz cd riak-1.3.0 make devrel Riak を起動してみる 4 ノードを起動。ulimit しているのはなしだと警告が出るので一応。 Test::Fake::HTTPD で Web API クライアントをテスト https://blog.takus.me/2013/03/22/test-web-api-client/ Fri, 22 Mar 2013 00:00:00 +0000 https://blog.takus.me/2013/03/22/test-web-api-client/ ある社内向け Web API のクライアントのテスト書く時にどうすべきかなと小一時間調べてみて、Test::Fake::HTTPD がよさそうなので使ってみたメモ。思うがままにレスポンス返せるし、実際に本番サーバ叩いたりしなくてもいいし、オフラインでもテストできて、だいぶテストが捗りそうです。 #!/usr/bin/env perl use warnings; use strict; use Test::More; use Test::Fake::HTTPD; use JSON::XS; use Furl::HTTP; subtest api =&gt; sub { my $response = { '/1/statuses/user_timeline/takus.json?count=1' =&gt; [ { 'created_at' =&gt; 'Thu Mar 21 07:22:25 +0000 2013', 'text' =&gt; 'Hello, world', 'user' =&gt; { 'screen_name' =&gt; 'takus', 'lang' =&gt; 'en', 'location' =&gt; 'Tokyo, Japan', }, 'id' =&gt; '314638108048097280', } ], }; my $httpd = run_http_server { my $req = shift; if ( $response-&gt;{ $req-&gt;uri } ) { return HTTP::Response-&gt;new( 200, 'ok', [ 'Content-Type' =&gt; 'text/html' ], encode_json $response-&gt;{ $req-&gt;uri } ); } return HTTP::Response-&gt;new( 404, $req-&gt;uri . 2012 年を振り返って https://blog.takus.me/2013/01/01/2012-to-2013/ Tue, 01 Jan 2013 00:00:00 +0000 https://blog.takus.me/2013/01/01/2012-to-2013/ あけましておめでとうございます。年越し前に書こうと思っていましたが、あけおめ砲に備えて色々準備してるうちにいつの間にか年越ししてしまっていたので、今さらながら 2012 年を振り返ってみます。 卒業 今となっては大学院を卒業したのが遠い昔のように思いますが、2012 年の出来事だったんですよね。当時、インフラを担当してた My365 が順調に伸びつつあったので、成長に合わせてスケールするように色々と試行錯誤しながら、修士論文+国際会議用の論文を書いていたので、両方とも中途半端な感じになってしまったことは自分としては非常に残念でした。結果的に My365 はその頃のシステムをベースに今も動き続けいて、論文は Short Paper として IEEE CLOUD 2012 という会議に採録されたわけで、全て失敗したというわけでもないのですが、振り返ってみればどちらよくできる部分があったんじゃなかという反省ばかりです&hellip;。 就職 仕事は無事に希望通りの部署に配属されて、大規模 Web サービスのインフラの面倒をみるようなお仕事をしています。システムの規模もそれに関わる人の数も、今まで少人数で見てたサービスとは桁違いで、最初は戸惑う部分も多かったですが、10 ヶ月も経つとできることも増えてきて、毎日楽しく働けています。 課外活動 仕事以外でも モヒカン揃いの Monitoring casual #1 で発表 してみたり、@shun0102 と&ldquo;Web若手エンジニアの会&rdquo; を立ち上げたり、YAPC::ASIA 2012 のボランティア をやってみたりと振り返れば色々なイベントに参加した 1 年でした。 特に、カジュアルに始めた &ldquo;Web若手エンジニアの会&rdquo; が気がつけば 3 回もやった上に、前回は 50 人規模になるような大きなイベントになってビックリしていますが、オモシロイ人もたくさん来てくれるようになっていいイベントになりつつあり、会場提供してくれてる会社の方々や、興味深い発表をしてくれるスピーカーの方々にはただただ感謝するばかりです。 プライベート 2012 年はヨーロッパ、グアム、台北など色々な所に旅行に行きました。中でも 3 月のクロアチア〜スロベニア〜イタリア 1 人旅 は、ほんとに一日一日が刺激的で「*旅は麻薬みたいなものだ*」と言ってる人の気持ちがようやく分かったような気がします。 まとめ 技術に関するエントリが出てこないこの振り返りエントリに象徴されるように、アウトプットが少ないのは大きな反省点で、2013 年はもっとアウトプットを意識しながら過ごしていきたいと思っています。 というわけで、今年もよろしくお願いいたします。 Macbook で外部ディスプレイ接続時にウィンドウをイイカンジに並べる https://blog.takus.me/2012/12/20/mac-forget-me-not/ Thu, 20 Dec 2012 00:00:00 +0000 https://blog.takus.me/2012/12/20/mac-forget-me-not/ By Theis Kofoed Hjorth Macbook で外部ディスプレイを利用してる人なら「このウィンドウはここに配置しておきたい!」みたいなのがあるかと思います。自分の場合は、MacbookAir のディスプレイにブラウザと Twitter、メインディスプレイに作業用のターミナル、サブディスプレイにサービスのダッシュボードやエラーログを tail するターミナルなんかを並べていて、各ウィンドウごとにポジションを決めて使っています。 しかし、Mac では会議などのために外部ディスプレイを外してしまうとせっかく好みの位置に並べたウィンドウが元の位置に戻ってしまいます。で、また会議から戻ってくると、自分好みの位置にチマチマ並べ直すわけですが、毎回こんな作業やるなんて面倒ですよね。 そこで自分は forget-me-not というソフトを使っています。このアプリは外部ディスプレイを接続した時のウィンドウ配置を記憶しておいてくれて、再接続時に自動で復元してくれるので、上にあげたような悩みをズバリ解決してくれてます。おまけに無料です! 自分は forget-me-not で十分なのでほかのソフトは調べてませんが、他にも有料のより高機能なソフトがあったり、@hirose31 さんのように AppleScript で好みの配置に並べるという手もあるようなので、参考までに並べておきます。自分も興味あるので、使ってみた感想とかあれば教えていただけると嬉しいです。 追記 2012/12/21 モロ被りなタイミングで @kenjiskywalker さんが Stay の紹介記事を書いてらっしゃったので参考リンクに追加させていただきます。forget-me-not が環境によってはうまく動かなかったりすることもあるみたいなので、そんな方は Stay を試してみるといいかもしれません。買ってみようと思った方はぜひあちらのブログのリンクを踏んで買っていただければと思います! 参考リンク forget-me-not StayさえあればもうMBAをサブディスプレイに繋げるのは怖くない - kenjiskywalker no memo ウィンドウをキッチリカッチリ配置したい - (ひ)メモ breeze stay divvy YAPC::ASIA 2012 に行ってきた https://blog.takus.me/2012/10/06/32974165602/ Sat, 06 Oct 2012 00:00:00 +0000 https://blog.takus.me/2012/10/06/32974165602/ ブログを書くまでが YAPC ということで,遅ればせながらブログを書こうと思います.ブログが数ヶ月ぶりの更新ですね…orz 事実を積み上げて判断。古典的でも地道にやる @myfinder さんの「平均レスポンスタイム50msをPerlで捌く中規模サービスの実装/運用」の中で,キーワード的に何度も出てきていたこの言葉がすごく印象に残りました.常に正しい判断をするために地道に努力している姿勢は見習うべきものだなーと感心して,自分もそういうエンジニアでありたいなと改めて思いました. ボランティアスタッフとして 今回はボランティアスタッフとして YAPC に携わらせていただきました。平日じゃありえないくらい早起きしたり,一般で参加するよりは大変でしたが,このような素晴らしいカンファレンスにスタッフとして携われたのはすごくいい経験になったと思います.また,去年の YAPC で最後にスタッフが壇上に上がっていて羨ましいなと思ったのですが,今年は自分がそこにいられてすごく嬉しかったです. 反省 去年の感想エントリに「何か発表したいなー」と書いておきながら,何も喋らなかったのが残念すぎでした.自分のくだらない話してもしょうがないなーという思いがどっかにありましたが,talk を聞いていると同じようなことやってたり考えてる人は結構いるわけで,とりあえず「my365 インフラ成長の軌跡と反省点」みたいな内容で喋ってみればよかった・・・.ひとまず今後は申し込みドリブンでネタ考えて発表するみたいなことをもっとやっていかないといけないと思いました. まとめ というわけで,スタッフのみなさん,スピーカーのみなさん,参加者のみなさんお疲れ様でした.また来年もよろしくお願いいたします. 会社のブログを書きました https://blog.takus.me/2012/07/24/28199469096/ Tue, 24 Jul 2012 00:00:00 +0000 https://blog.takus.me/2012/07/24/28199469096/ 「Web若手エンジニアの会」を開催しました - Technology of DeNA Monitoring Casual Talk に行ってきた https://blog.takus.me/2012/06/18/28199466903/ Mon, 18 Jun 2012 00:00:00 +0000 https://blog.takus.me/2012/06/18/28199466903/ サーバ・リソース監視に関するお話をする Monitoring Casual Talk #1 という勉強会に行って、ちょっとだけ喋らせてもらってきました。 自分の発表について すたじおなんとかさんがブログで「まわりには運用モンスターばかりで、小動物のようにボクは終始((((;゚Д゚))))ガクガクブルブルでした。」と書かれていましたが、 僕も最初に参加者リスト見たときに「全然カジュアルじゃねぇ((((;゚Д゚))))ガクガクブルブル」と思い、ちょっと参加を躊躇いました。 でも、監視については自分で試行錯誤しながら色々やってきたので、他の人の監視の話を聞いて学びたいという好奇心の方が強くなってしまい、 なんか自分の持ちネタで話せそうなことないかなとあれこれ考えて、「多すぎるアラートをなんとかしたい」みたいな内容の話をしてきました。 内容は「依存関係とかちゃんと定義しましょうね」みたいな当たり前のこと過ぎて、 参加者の皆さんの参考になったとはいえないかもしれませんが、 若気の至りということで今回は大目にみていただけたらと思います。 次回はもっと面白いネタを仕入れて挑みますので&hellip;。 ほかのひとの発表を聞いた感想 あまり触ったことがない Zabbix や Cacti の話をはじめ、全体的に勉強になることが多くて、参加してほんとによかったです。 特に @lamanotrama さんの『Nagios運用例(on AWS)』は、自分も前職で同じようなことをやっていたので、すごく参考になり、半年前にこれ見たかったというのが正直な感想です。 コンフィグの自動生成スクリプトなんかは同じようなもの を昔作ってましたが、Diff 取ったり、AWS のコンソールから監視除外にできたりで、やっぱペパポさんのツール方がイケてますね…。 他にも話を聞いてると、どこの会社でも同じようなところで悩んでることが多くあるような印象を受けて、 こういう勉強会を通じて情報交換しながら、サービス監視してるエンジニアがみんなハッピーになっていけばいいし、 そこに自分が貢献していければなーとか思ったので、がんばっていきたいと思いマス。 参考リンク Monitoring Casual Talks #1 を開催してきた話 当日の様子 on toggeter How to Set Up New Macbook Air https://blog.takus.me/2012/05/17/23170067016/ Thu, 17 May 2012 00:00:00 +0000 https://blog.takus.me/2012/05/17/23170067016/ I love the Macbook Air. This is by far the best computer I&rsquo;ve ever used. Recently, I got new Macbook Air and set up it for development. This is a memo I used for set up. System Preferences Some default preferences are not useful. I hope that these preferences become default on the next MacOSX. You should change some of them. The followings are examples: Keybord &gt; Keyboard Check &ldquo;Use all F1, F2, etc&hellip;&rdquo; Modifier Keys -&gt; Bind Caps Lock Key as Control Key Keyboard &gt; User Dictionary Uncheck smart quotes Security &gt; Privacy Check &ldquo;Require password immediately after sleep or screen saver begins&rdquo; Displays Check &ldquo;Show displays in menu bar&rdquo; Dock Check &ldquo;Automatically hide and show the Dock&rdquo; Date and Time Time Zone -&gt; Check &ldquo;Set time zone automatically using current location&rdquo; Clock -&gt; Check &ldquo;Show date&rdquo; Sharing Edit &ldquo;Computer Name&rdquo; you like Install Desktop Applications AppStore Xcode YoruFukurou (Twitter Client) Day One (Personal Diary) Evernote Skitch Reeder (RSS Reader) Growl SourceTree Others Command Line Tools for Xcode iTerm2 Chrome Firefox LimeChat Skype&lt; Dropbox KeePassX (Password Manager) Mendeley (Paper Management Tool) mi (Text Editor) smcFanControl (Fan Controller) Install Terminal Applications Homebrew is a famous package manager for MacOSX. クロアチア〜スロベニア〜イタリアに行ってきた https://blog.takus.me/2012/03/24/28199464257/ Sat, 24 Mar 2012 00:00:00 +0000 https://blog.takus.me/2012/03/24/28199464257/ 1 人でクロアチア〜スロベニア〜イタリアあたりに約 10 日間滞在してきた記録のまとめ。旅の準備、現地での生活、撮影した写真、かかったお金など。誰かの参考になればと思ってまとめてみました。 準備 とりあえずクロアチアとイタリアあたりに行きたいなと思っていたので、クロアチア南部から北上してイタリア入って、ミラノあたりから帰ればいいかなという大雑把な計画を立てました。(もはや計画と言えなそうですが^^;) 航空券はもちろんskygateで検索(笑)ステマとか言われかねないですが、正直なところ色々な航空券サイトの中で一番使いやすいんじゃないかと思います。最初は東京からドゥブロヴニクで探していましたが、あまり安い航空券がヒットしなかったので、方針を変更。ドゥブロヴニクへの便があるフランクフルト空港までの航空券を探したらうまくいきました。結局、お値段の安さとスターアライアンス系のマイルが貯まるということで、中華国際航空に決定。 中華国際航空 往路 東京→北京→フランクフルト 復路 ミラノ→上海→東京 78,000 yen(燃油サーチャージ込) さらにフランクフルトから、クロアチアへの航空券を予約するために、skyscanner を利用しました。これは格安航空券の比較サイトで、世界中の格安航空券を探せる超便利サイトです。スカイゲートと比較するために利用してみましたが、こちらは問い合わせなどを英語で行う必要があるので、スカイゲートより若干敷居が高いのかなと思いました。(問い合わせしないなら関係ありませんが) クロアチア航空 フランクフルト→ドゥブロヴニク 216 euro (燃油サーチャージ込) カバンは karrimor の airport pro 40R を選びました。これは国際線で機内に持ち込めるサイズな上に、キャリーとしてもバックパックとしても使え、さらに着脱式のデイパックも付いているので、本体をホテルに置いて、デイパックで出かけることができて、役立ちました。 衣服はダウンジャケット、セーター、シャツ、ジーンズを毎日着て、その下に着ているヒートテックとパンツ、靴下を洗濯しながら過ごしていました。あまり綺麗とは言えないですが、冬で汗もあまりかかないので気になることはありませんでした。 荷物の大半はガジェット類。MacbookAir はもちろんバックアップ用の HDD、モバイルブースター、一眼レフ+レンズ 2 本+三脚など、フル装備。海外で利用できる WiFi ルータの MiFi もレンタルしていきました。ヨーロッパであればヨーロッパ周遊プランがあり、対応国ならどこでも定額で使えて非常に便利でした。値段はソフトバンクの海外パケ放題と同じ程度でした。 海外旅行に一人で行くの初めてだったので、最初は様子見で 40 euro くらいのビジネスホテルに宿泊していましたが、途中から方針を変えて ~20 euro くらいのドミトリーに泊まるようにしました。危ないと感じることもなかったし、ベッドに入ると5分くらいで寝れる特技を持ってるので、ほかの人が気になることもなく、かなり快適に過ごすことができました。 泊まる場所の探し方ですが、自分にとっては WiFi が利用できるかどうかがかなり死活問題だったので、information desk などで紹介してもらうのでなく、hostelworld や booking.com で WiFi が使える宿泊場所を安い順に見ていき、レビューが悪くなければそこに決めるという方針で、宿泊する前日や当日に予約していました。その結果、一度もハズレを引くことはなかったので、この方法は結構オススメです。 食事についてはドミトリーの受付やターミナルの辺りにいる客引きみたいな地元人にオススメのレストランを聞いて、そこに行くようにしていました。前にローマ行ったときに適当にレストラン選んでたら大失敗したのですが、さすがに地元の人に聞くと失敗することはありませんでした。 言葉については、クロアチアでもイタリアでも英語が通じたので旅行中に困ることはほとんどありませんでした。ラングリッチと Gaba のレッスンの効果があったのか、前に海外旅行に行った時より遥かに英会話ができるようになっていて、自分でもビックリしました。ホテルに電話して部屋が空いてるか聞いたり、受付に誰もいないので電話で呼び出すみたいなこともやってみれば案外余裕でした。ただ、旅先で仲良くなった人ともうちょっと深い話しようとすると、単語が出て来なかったり、聞き取れてないところがあったりして、「もうちょっと喋れれば、もっと仲良くなれるんだろうな」と思う場面が何度もあって、もっと本腰入れて英語やらねばと思う機会は多かったです。 行ったところ 羽田、北京、フランクフルト、ドゥブロヴニクと飛行機を乗り継いてクロアチアに入国。ドゥブロヴニクからスプリット、プリトヴィツェ、ザグレブとクロアチアをバスで北上し、ザグレブから電車でスロベニアに入国して首都のリュブリャナへ。リュブリャナからは電車でオーストリアのフィラハに行き、そこからバスでイタリアへ入国してベネツィアに1泊。ベネツィアからは電車でミラノへ行き、ミラノに数日滞在。最後はミラノのマルペンサ空港から上海経由で成田に帰国というルートでした。 2011 年の振り返りと 2012 年の目標 https://blog.takus.me/2012/01/06/28199462010/ Fri, 06 Jan 2012 00:00:00 +0000 https://blog.takus.me/2012/01/06/28199462010/ 2012 年もすでに何日か経ってしまいましたが、2011 年を振り返りつつ、2012 年の目標でも書いておこうかと思います。 やっぱり 1 年を振り返って、次の目標を立てるのは大事ですよね。(宣言すると努力せざるを得ないという点でも&hellip;) 2011 年の出来事 3 月 震災の日 ちょうど内定先の面接を受け終わって、オフィスを出た直後に被災しました。電車は止まってどうしようもないので、新宿から横浜の自宅まで徒歩で帰宅。 あの状況の中で、一人で長時間歩いて帰るのは正直辛かったですが、twitter で色んな人が励ましてくれて、非常に助かりました。 そんな中で思ったことがこんなことでした。 この時に「*落ちないサービスを作る*」ということの重要さを実感して、自分の方向性をそっちにシフトしていきました。 あとから振り返ると、この経験が、この後の内定承諾や My365 チームへのジョインにつながっていったんじゃないかと思います。 4 月 内定承諾 色々と悩むところもありましたが、3 月の終わり頃に就職先を決めました。 自分のやりたいことって何だろうと考えたときに、一番それができそうだと思ったのが就職先の会社でした。 あとは中で働いてる人の優秀さで決めました。 6 月 内定先でインターン 働いてる人で内定先を選んでほんとに正解だったと思いました。 いきなり MySQL でおなじみの松信さんがいきなりメンターになっていただいたり、 その後も HandlerSocket を開発した樋口さんがメンターとしてお世話してくれたり、 会社設立時からインフラエンジニアとして働いてる方々から色々な苦労話を聞くことができたり、非常に貴重な経験ができました。 8 月 松田直樹の死 スティーブ・ジョブズの訃報と同じくらい、松田直樹の訃報にもショックを受けました。 ジョブズもスタンフォードでのスピーチで If today were the last day of my life, would I want to do what I am about to do today? と言っています。 今やってることはほんとに心から自分が取り組みたいことなのか今まで以上に真剣に考えて生きなければいけないと、二人の偉大な人物の死から学びました。 s3fs を使って Amazon S3 を Linux にマウントする https://blog.takus.me/2011/11/19/28199459336/ Sat, 19 Nov 2011 00:00:00 +0000 https://blog.takus.me/2011/11/19/28199459336/ 最近,My365 という iPhone アプリのサーバサイドを担当することになり,全然使ったことのなかった Amazon Web Service をほげほげしてるので,その辺のネタの一部を紹介. さくら VPS から Amazon EC2 への移行話もそのうちまとめたいと思います. s3fs とは? FUSE-based file system backed by Amazon S3. Mount a bucket as a local file system read/write. Store files/folders natively and transparently. ―s3fs というわけで,S3 の bucket をファイルシステムとしてマウントできてしまう便利なツールです. EC2 のインスタンスをターミネートすると基本的に全てのデータが失われてしまうので,全てのサーバが起動時に S3 の bucket をマウントしておくようにし,アプリケーションのログなどは日次で S3 に mv しておき,ターミネートする前にログを S3 に待避するようにしておくと幸せになれます. ((他にいいログ管理ソリューションがあれば教えてください)) インストール こんな感じのスクリプトを使ってあげれば,サクッとインストールできるんじゃないかと思います. エラーチェック等はしてないですのであしからず. インストール後に書き込みを行うと,S3 へファイルが作成されていることが確認できます. ほかにも,ローカルキャッシュを使って転送量を減らすこともできるみたいですね. s3fs まとめ s3fs を使えば,Linux 上に S3 の bucket をマウントできる インストールが簡単 ローカルキャッシュみたいな便利な機能も実装されてる YAPC::ASIA 2011 に行ってきた https://blog.takus.me/2011/10/17/28199456070/ Mon, 17 Oct 2011 00:00:00 +0000 https://blog.takus.me/2011/10/17/28199456070/ 年に 1 度の perl の祭典、YAPC::ASIA 2011 に行ってきました。「家に帰ってブログを書くまでが YAPC です」とアナウンスされていたので書いてみました。 はじめてのYAPC::ASIA 2011 今回が初めての YAPC 参加。perl は書き始めて半年くらいで知識も浅い状態でしたが、perl という言語自体の話だけでなく、「perl を使って hogehoge した」みたいなトークが多く、perl 初心者でも充分に楽しめました。 印象に残ったセッション Carton: CPAN dependencies manager by @miyagawa さん Carton という Ruby における Bundler のようなモジュールのお話 プレゼンテーションの流れが非常にロジカルで分かりやすい。参考にしたい。 デモもお洒落でカッコよかった。これも真似したい。 Perlで構築された中規模サイトのDC引っ越し記録 by @fujiwara さん KAYACが運営している こえ部 を別の DC に引っ越したというお話 とにかく話にリアリティがあって面白かった コンポーネント毎に検証しながら少しづつ移行、すごく丁寧 ベストスピーカー賞も納得(もちろん自分も投票しました) 運用しやすいWebアプリケーションの構築方法 by @kazeburo さん Log、DB、Cache、Metrics に使える各種モジュールの紹介 単にモジュールの機能の紹介だけでなく、なぜそのような機能が必要なのかまで深掘りして説明していた 説明が丁寧なため、すごくそのモジュールを使ってみたい気分にさせる Managing A Band Of Hackers by @higek さん マネジメントについてすごく真面目ないいお話 その一方で、@hidek さんをいじる TL が横で流れていて面白かった 「1+1 が 2 なら、マネージャーをやる意味はないんです」という言葉が印象的 Being Geek をオススメしてたので読んでみようと思います 感想など 学生無料のありがたさ ほんとに助かりました。学生料金を負担していただいたスポンサーの方々本当にありがとうございます。 来年は今年の分のお返しができるようにがんばって稼ぎたいと思います(笑) MacPorts から Homebrew への移行メモ https://blog.takus.me/2011/03/28/28409424679/ Mon, 28 Mar 2011 00:00:00 +0000 https://blog.takus.me/2011/03/28/28409424679/ MacOSX向けのパッケージマネージャーといえば MacPorts が有名ですが、Mac に元々入っているプログラムもご丁寧に再コンパイルしてくれたりで、ビルドに時間がかかったりして、なかなか使い勝手が悪いです。ということで、Mac に元々入っているプログラムをそのまま活かせると巷で(?)評判のいい Homebrew に移行してみることにしました。 FinkでもMacPortsでもないパッケージ環境「Homebrew」 MacPortsからHomebrewに移行しつつある Homebrewのインストール 参考リンク Installation - GitHub Macのパッケージ管理をMacPortsからhomebrewへ Macで環境を整えるための環境-homebrewとrvmとrubygems-