Roadworker - The Best Way to Manage Your Amazon Route53 Records

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’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. »

Author image Takumi Sakamoto

daemontools の setuidgid が supplementary groups 権限をつけてくれない件

『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>&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のようなもの』にまとまってますが、この辺りを使うのがいいのではないかと思ってる次第です。 »

Author image Takumi Sakamoto

#yapcasia と #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 分でと言われて早口で喋ってたのでだいぶ微妙な感じでしたが、やらないよりはやって失敗して学んでいくタイプなので次回にご期待ください…。 最後に、今回の YAPC を最後に櫛井さんと牧さんが運営から離れるとのことでしたが、今まで本当にお疲れさまでした。自分が参加させていただいた 3 回の YAPC はどれもほんとに楽しくて、勉強になって、素晴らしい時間を過ごすことができました。この場を借りて、お礼を言わせていただきたいです。本当にありがとうございました!!! DevOpsDay Tokyo 2013 Github の @johndbritton さんが Ops for Everyone の中で、「Hubot は全員のターミナルをシェアするみたいな考え方で、オペレーションの可視化を実現している」といったことを言っていて、うんうんって思いながら聞いていました。新しく入ってきた人はそれ見ながらどういう操作すればいいか勉強できるし、いま各々がどういうことやっているかも把握しやすくなりそうだし、Hubot を中心にしたオペレーションはかなりアリなんじゃないかと思います。 余談ですが、/graph me でグラフ出せる機能を拡張して、/graph me 呼んだときに GrowthForecast(RRD) のグラフを 社内 Gyazo とかにあげて、そのリンクを IRC にポストしてくれたりすると、後で IRC のログ振り返るときにそのとき見てたグラフが表示できて捗りそうかなーとか思いました。(RRD は後で見ようと思っても丸められてしまうので) »

Author image Takumi Sakamoto

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;` »

Author image Takumi Sakamoto

nagira という Nagios RESTful API が便利そうな件

オートスケーリングみたいなことをしようとする場合、サービスインする前に監視が全て OK になっているかチェック しておきたいみたいな需要がありますが、みんな大好き Nagios でこれをやろうとするとちょっと面倒だったりします。

»

Author image Takumi Sakamoto

Velocity 2013 に参加 & LT してきました!!

6⁄18 ~ 6⁄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 “不格好経営”にも載ってる DeNA の創業者である南場さんの言葉に、“これから会社がどんなに長生きしようとも、地球や宇宙の時間のなかでほんの瞬間の存在になる。けれどもなにか宇宙に引っ掻きキズみたいな証を残したい。” というものがあります。そこで、Velocity への参加が決まってから、DeNA 社員として何か引っ掻きキズを残せないか考えていたところ、Ignite Velocity という LT のセッションを見つけたので、abstract 書いて応募したところ accept されたので LT してきました。 ご存知ない方のために紹介しておくと Ignite は 20 枚のスライドを 15 秒づつ流して、5 分間のプレゼンをするというプレゼン形式で、Velocity 2012 では DevOps に関する話 等が Youtube にあがってます。 »

Author image Takumi Sakamoto

Code Simplicity

This blog post reminds me of the book I read six months ago. Code Simplicity Altough I don’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. »

Author image Takumi Sakamoto

rsync が 'ssh_exchange_identification: Connection closed by remote host' で失敗するときの対処法

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 を大きな値にして回避しました。 外部から攻撃される可能性がないサーバなら大きな値にしておくとよさそうです。 »

Author image Takumi Sakamoto

CentOS 6 に /dev/sdf としてアタッチした EBS ボリュームが /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. »

Author image Takumi Sakamoto

New York に行ってきた

前回の”Los Angeles に行ってきた“の続きです。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⁄11 に対する見方が変わって、遠い国の出来事から急にすごくリアルな出来事に思えるようになりました。 Brooklyn Bridge 全長 2km くらいなので歩いて渡ると楽しめます。Manhattan 側から歩いていき、Brooklyn 側の公園でアイスを食べながら一休みして地下鉄で帰りました。 Yankee Stadium せっかくなのでメジャーリーグも見てきました。オンラインでチケット買ってくこともできますが、人気カードでない限り当日スタジアム行って買えば問題ないです。$50 くらいのチケット買いましたが、球場内の移動が割と自由で写真のように内野席の後ろとか入れて立ち見できるので、一番安いチケット買って歩き回るのがベストなんじゃないかと思います。 Top of The Rock & Empire State Buinding New York の町を一望できる場所として、この 2 箇所がありますが、夜景を楽しむなら Empire State Building のライトアップを見れる Top of The Rock に行くのが正解です。 »

Author image Takumi Sakamoto