読者です 読者をやめる 読者になる 読者になる

Redash を Backup & Restore する

サービスメトリクスを可視化するために Redash を導入しようと考えていて,可視化の部分だけじゃなく,運用面の調査もしていた. まず Redash をどうやってバックアップするんだろう?と思って調べてみたら,公式ドキュメントに手順がまとまっていた.一言で…

知っておくと便利な git clone --depth と git diff --indent-heuristic

コミット履歴が無駄に多く,黒歴史のある Git リポジトリで開発をする場合,初回の git clone が非常に遅いという問題がある.コミット数に依存せずに素早く落とせる方法を探していて,最近(今さら…!) git clone の --depth オプションのことを知った.用…

採用面接は難しい /『その「エンジニア採用」が不幸を生む』を読んだ

エンジニアの採用をテーマにした本って,今まで How Google Works ぐらいしか読んだことがなくて,タイトルに惹かれたので『その「エンジニア採用」が不幸を生む』を読んでみた. 今まで数十回は採用面接をしてきたと思うけど,常に採用は難しいなと思う.僕…

Lambda + Apex 事例紹介 ~ 全ては AWS コスト削減のために ~

今日は社内の別プロダクトと合同勉強会があって,Lambda + Apex 便利だよ!という発表をしてきた. タイトルは「Lambda + Apex 事例紹介 ~ 全ては AWS コスト削減のために ~」で,発表内容としては,大きく3点にフォーカスした. CloudWatch Events + Lambda…

gapps を使って Google Apps Script を継続的にデプロイする

GAS

最近 GAS (Google Apps Script) を書く機会があって,Google 関連のリソースに簡単にアクセスできて便利だなー!と感じる反面,直接 js を書いて実行する開発プロセスに違和感を感じていた.普通に GitHub でバージョン管理して,継続的にデプロイする方法を…

Aurora のスロークエリログを Fluentd 経由で Amazon Elasticsearch Service に転送する

Aurora でスロークエリログを出力して,Fluentd 経由で Amazon Elasticsearch Service に転送する構成を作った.MySQL on EC2 のときは,サーバ内で直接スロークエリログを確認していて非常に面倒だったので(単なる運用上の考慮不足),運用面で大きく改善…

CloudWatch Events + Lambda + CircleCI + Apex で Lambda をサーバレスに実行 & デプロイする

先週,プロダクトで開発合宿を企画して実施してきた.今回のテーマは「開発効率/運用効率の改善」だったので,僕はインフラチームとして先輩と一緒に開発に取り組んだ.お題は「AWS コスト削減」にした.開発合宿で開発したツールで学んだことを簡単にまと…

アクセスキーのコミットを抑止できて安全便利な awslabs/git-secrets

GitHub で awslabs のリポジトリを眺めてたら git-secrets という便利なツール(シェルで実装されてる)を発見した. どんなものかを簡単に説明すると,アクセスキーなどを誤ってコミットすることを Git の hooks を使って未然に防ぐツールで,誤って GitHub…

SRE Tech Talks #2 に参加してサービス運用の事例を聞いてきた

先週 SRE Tech Talks #2 に参加してきた.僕も仕事ではウェブオペレーションをメインで担当しているけど,他社の事例を聞くのは刺激になるし,まだまだできてないことが多くあるなと感じた.特に「オペレーションの効率化をソフトウェアエンジニアリングで実…

MySQL on EC2 → Aurora にレプリケーションをしてみた

既にサービスで稼働している MySQL on EC2 を Aurora に移行するために,以下のようなレプリケーション環境を検証用に構築して試した.Percona Xtrabackup でリストアをすると高速にできるらしいけど,今回は環境の制約もあって mysqldump 経由でリストアを…

Aurora のパラメータグループで max_connections の値が計算値と合わない

最近 Aurora の検証をしているので,今後は Aurora 関連の記事を書く機会が増えそう. 前提 RDS (Aurora MySQL) インスタンスタイプ : db.t2.medium DBInstanceClassMemory とは RDS のパラメータグループでは,特定の変数と演算子を使った動的な値設定がで…

golang.tokyo #3 に参加してパフォーマンスの話を聞いてきた

先週 golang.tokyo #3 に参加した.抽選倍率2倍だったからダメかもなぁ…!と思って申し込んだら当たった. テーマは「パフォーマンスチューニング」だったけど,「パフォーマンスチューニング」とは違うような話もあった.エウレカの話も聞きたかったから残…

CloudWatch で ELB の「パーセンタイル統計」を可視化しよう

AWS

今日は CloudWatch の話を書こうと思う.既に活用してる人も多いと思うけど,2016年11月の新機能リリースで各種メトリクスの「パーセンタイル統計」を可視化できるようになった. 「パーセンタイル統計」は凄く重要で,平均値だけをモニタリングしていると気…

Tech Meetup に参加して「grafana-zabbix 活用術」を紹介してきた

今日は freee で開催された Tech Meetup に参加してきた.ダッシュボード厨としては最近導入した grafana-zabbix の紹介もしたいと思って「grafana-zabbix 活用術」というタイトルで LT もしてきた.懇親会でいろいろお話もできたし凄く楽しかった! plaidte…

AWS Well-Architected Framework に5本目の柱 "Operational Excellence" が追加されていた

AWS

AWS を運用しているエンジニアなら読んだ人も多いであろう,2015年10月に公開された "AWS Well-Architected Framework" に実は大幅なアップデートが入っていることに気付いた.時期的には AWS re:Invent 2016 の直前で,AWS re:Invent 2016 で発表された新サ…

CircleCI + ShellCheck でシェルスクリプトを静的解析する

シェルスクリプトのレビューを効率化するため,シェルスクリプト専用の静的解析ツール "ShellCheck" を導入して,さらに CircleCI で自動テストすることにした.導入検証も兼ねて,個人的に使ってる dotfiles に導入してみた話をまとめる. github.com apt-g…

2016年の振り返りと2017年の抱負

2016年の振り返り 実戦投入力を高めることができた 2016年の抱負として掲げた「実戦投入力を高める」という目標を大きく達成することができた1年だった.「実戦投入力」とは「プログラミング言語,ミドルウェア,オープンソースなどをサービスに投入して実践…

Amazon Athena で「郵便番号データ(CSV 形式)」を検索する

AWS re:Invent 2016 で発表されてからもう1ヶ月も過ぎてしまったけど,今さらながら Amazon Athena を実際に試してみた.検証記事は既に多く出てて,積極的に読んでいたけど,実際に動かしてみようと思った. 現在まだ東京リージョンには対応して無く,今回…

2016年のプルリクエストを振り返る

2016/02 Repository : fiveisprime/marvel-api Language : Node.js アイアンマンなどで有名な Marvel が公式に提供してる API のラッパーで,Node.js で実装されている.Hubot で Marvel のキャラクター情報を返すボットを作ったときに使った.Hubot を実装…

Hatena Blog で記事下に関連記事を表示する Tips と約4ヶ月運用した効果

あまり気付かれてなさそうな気もするけど,実験的な施策として,今年9月から PC 限定でブログの記事下に関連記事を表示するようにデザインを変更していた! ( ゚д゚) 施策を約4ヶ月運用したので,設定方法と効果を1度まとめておこうと思った. もともとあった…

Amazon Elasticsearch Service を運用して学んだこと

「Amazon Web Services Advent Calendar 2016」20日目の記事を書くぞー! 最近 Amazon Elasticsearch Service を本番環境で運用していて,そこそこに運用経験がまとまったので,どこかで LT でもしようと思って先に発表資料だけを作っていたんだけど,年内に…

Amazon Elasticsearch Service で「手動スナップショット」を取得する

自動スナップショットと手動スナップショット Amazon Elasticsearch Service でクラスタのスナップショットを取得する場合,「自動スナップショット」と「手動スナップショット」の2種類がある. AWS 側で自動的に日次取得してくれるものを「自動スナップシ…

こんなにも格差が広がっているとは知らなかった /「シリコンバレーで起きている本当のこと」を読んだ

書店に並んでて,タイトルに惹かれて買った「シリコンバレーで起きている本当のこと」を読んだ. 内容としては軽く数時間あれば読み切れる量になっている. 目次 第1章 「世界を変える」情報発信地 第2章 富を生み出す町の知られざる顔 第3章 新しい技術と既…

Codenize Meetup に参加して Infrastructure as Code ツールとオペレーションの実践的な話が聞けた

木曜日に Codenize Meetup に参加してきた.Codenize.tools には様々なツールがあって,有名なものだと Roadworker(Route 53 の設定をコード化) / Piculet(セキュリティグループの設定をコード化) / Miam(IAM の設定をコード化)など.タイミング良く R…

Slack で "積極的に通知を受け取る" ための簡単な設定

「Slack 2 Advent Calendar 2016」7日目の記事を書くぞー! たまには Slack ネタでも書こうかなと思って Slack Advent Calendar を見たら全枠埋まってたけど,Slack 2 Advent Calendar は全然埋まって無くて,7日目を担当することにした.まだまだ枠空いてる…

Route 53 の管理を自動化できる Roadworker を試して GeoLocation のエクスポートを直した

最近試していた Piculet に続き,Codenize.tools の中でも特によく使われてそうな Roadworker を試した.セキュリティグループほどの複雑さはないけど,ドメイン設定も管理コンソールで運用するのではなく,宣言的にコード化を進めて,レビュープロセスを通…

Chef で mackerel-check-plugins をプロビジョニングする

「Mackerel Advent Calendar 2016」3日目の記事を書くぞー!昨日も僕が担当していて,拡張グラフパーマリンクを試した話を書いた. kakakakakku.hatenablog.com もっと枠が埋まってくれると良いのになぁ! qiita.com 今日は一般的なユースケースとして,Mack…

Mackerel の「拡張グラフパーマリンク」を使ってファイルシステム使用率をグラフにしようと試行錯誤した話

さぁ「Mackerel Advent Calendar 2016」2日目の記事を書くぞ!まだ枠空いてますよ〜 qiita.com 最近作った最高のダッシュボードの話 10月末に mkr dashboards コマンドを使って,ダッシュボードの定義を YAML 形式でバージョン管理しながら運用している話を…

Piculet の動作を詳細に確認して運用フローを考えてみた

前回は Piculet を使ってセキュリティグループ設定と Groupfile の比較を CircleCI でチェックできるところまで試した.興味があったら是非以下の記事を見てもらえると! kakakakakku.hatenablog.com 今回は前回の続きで,主に --apply オプションを使った反…

New Relic の "Deployment Tracking" でデプロイ前後のパフォーマンスを比較すると便利

New Relic APM で PRO 契約をすると "Deployment Tracking" という機能が使えるようになる(最近契約した). デプロイ情報(タイムスタンプ/変更点など)を New Relic に登録できる デプロイ前後のパフォーマンス比較(Apdex Score/Responce Time など)…

CircleCI と Piculet でセキュリティグループを CI する

管理コンソールでセキュリティグループ設定を管理するのは限界があると思っていて,例えば以下のような状態になってしまうことがあると思う. 必要に応じて日々増えていくルール設定(無意識にポチポチと追加してしまう) 使って無さそうだから消したいけど…

本質を追求することを習慣化しよう /「シンプルに考える」を読んだ

書店でたまたま目に止まって買った「シンプルに考える」を読んだ. 計40個の鉄則が紹介されていて,本文もシンプルにまとまっている.数時間で一気に読むことができた. 第1章 : ビジネスは「戦い」ではない 第2章 : 自分の「感性」で生きる 第3章 : 「成功…

知っておくと便利な Exponential Backoff

今日は社内勉強会で「知っておくと便利な Exponential Backoff」という発表をした.前回の「知っておくと便利な Bloom Filter」に続いてのタイトルで「知っておくと便利な」シリーズを確立していきたい. 実は Exponential Backoff という名称を知ったのは結…

APC / OPcache を CLI で管理できる CacheTool を試してみた

PHP

CacheTool を使うと PHP のキャッシュ機能である APC / APCu / OPcache を CLI で管理できるようになるという話を今日会社で教えてもらった!さっそく導入してみようと思って調査した. github.com 背景 例えば,キャッシュをクリアする場合,APC / APCu な…

AWS SDK for Ruby で S3 の暗号化(サーバサイド/クライアントサイド)を試してみた

S3 でオブジェクトの暗号化を検討する場合,大きく2種類ある. サーバサイド暗号化 暗号化/複合を AWS 側に任せる サーバー側の暗号化を使用したデータの保護 - Amazon Simple Storage Service クライアントサイド暗号化 暗号化/複合を自前で行う クライア…

Hubot が定期的に落ちてしまう場合は hubot-slack を最新バージョンにすると良さそう

社内で育てている Slack 常駐用 Hubot が定期的に落ちてしまうという事象が前からあって,今までは検知したらすぐに起動するという運用回避で逃げていた.ちなみに forever を使ってデーモン化はしていて,具体的には以下のように起動している.実際には環境…

超簡単に Pebble のスクリーンショットを撮る方法

Kickstarter で支援した Pebble 2 が 10/21 に届いて,それから2週間ずっと Pebble 生活を送っている. スマホの通知を Pebble でサッと確認できるのは効率的だし,歩数計で毎日の歩数を KPI として追うことができるし,時計をしていることを意識しないほど…

fluent-plugin-aws-elasticsearch-service を使う場合は reload_connections を false にする

最近 Amazon Elasticsearch Service にログを転送している Aggregator の /var/log/td-agent/td-agent.log に以下のログが出力されていて,調査してわかった fluent-plugin-aws-elasticsearch-service を使う場合に必要な設定に関してまとめておく. 2016-10…

mkr dashboards コマンドを活用して最高のダッシュボードを生成した

はじめに 監視サービスでアラートが鳴った場合,それは閾値を超えた異常値が検知されているので,すぐに対応が必要だけど,もしかしたら通常時にも何か起きてるかもしれないし,通常時の傾向が特定のリリース以降で変わってしまっているかもしれないし,監視…

Mackerel Meetup #8 に参加して実践的な活用事例を聞いてきた

今週月曜は Mackerel Meetup に参加した.少しバタバタしていて記事を書くのが遅れてしまった...! mackerelio.connpass.com 既に公式ブログに記事が出ていて,発表資料も公開されている. mackerel.io 新機能「メタデータ」がもたらす次世代のインフラマネ…

日本で働きながら海外名門大学で学べる!そう Coursera ならね!

昨日開催された「道玄坂 BeerBash #2」に参加して Coursera を紹介する発表をしてきた! 時間の関係上,発表では話せなかった部分も多いし,Coursera の素晴らしさをもっと広めたいと思っていて,補足記事を書こうと思った. dogenzaka-beerbash.connpass.co…

Mackerel の監視ルールをバージョン管理して CircleCI でテストする

mkr monitors { pull / diff / push } コマンドを使うと Mackerel の監視ルールをバージョン管理することができる. 特に diff は素晴らしくて,ローカルにある監視ルール (.json) と Mackerel 管理画面の設定の差分を確認することができるから,運用してた…

知っておくと便利な Bloom Filter

社内勉強会で「知っておくと便利な Bloom Filter 」という発表をした. Bloom Filter は Coursera の講義で学んで,今回は自分の理解の整理も兼ねてまとめてみた. 特徴 メリット デメリット ミドルウェア/サービスでの活用例 社内の評判も良くて「勉強にな…

Amazon Elasticsearch Service の Kibana ダッシュボードでグラフが正しく表示されない場合がある

最近ずっと Amazon Elasticsearch Service の Kibana で変な事象に困っていて,現状すぐに解決する目処が立たなそうなため,ワークアラウンドで回避することにした.同じ事象に困る人もいそうだなと思って,簡単にまとめておこうと思う.もし AWS 側で解決し…

Coursera で "Cloud Computing Concepts, Part 1" Week 5 を受講した

Coursera Coursera でイリノイ大学の講義 "Cloud Computing Concepts, Part 1" を受講してる! Week 5 に関して個人的な勉強メモをまとめた. https://www.coursera.org/learn/cloud-computing Week 5 : 期間 2016/09/26 - 2016/10/02 Week 5: Classical Dis…

Coursera で "Cloud Computing Concepts, Part 1" Week 4 を受講した

Coursera Coursera でイリノイ大学の講義 "Cloud Computing Concepts, Part 1" を受講してる! Week 4 に関して個人的な勉強メモをまとめた. https://www.coursera.org/learn/cloud-computing Week 4 : 期間 2016/09/19 - 2016/09/25 Week 4 : アジェンダ W…

Coursera で "Cloud Computing Concepts, Part 1" Week 3 を受講した

Coursera Coursera でイリノイ大学の講義 "Cloud Computing Concepts, Part 1" を受講してる! Week 3 に関して個人的な勉強メモをまとめた. https://www.coursera.org/learn/cloud-computing Week 3 : 期間 2016/09/12 - 2016/09/18 Week 3 : アジェンダ W…

「第106回 PHP勉強会@東京」で PHP & FuelPHP をアップデートした事例を話してきた

第106回目にして初参加!普通に楽しかった :) PHPer が多く集まってて,最初からビールで乾杯して,ワイワイと話しながら発表を聞くという非常にカジュアルなスタイルの勉強会だった. phpstudy.doorkeeper.jp 資料 最近進めていたプロジェクトを整理して話…

mackerel-plugin-fluentd を使うなら "[at]id" を指定するべし

タイトルに @id を書いておくと Twitter でメンションが飛んでしまうため [at]id に修正しました 前置き mackerel-plugin-fluentd を使うと,Fluentd のメトリクス(バッファサイズ/リトライカウントなど)を Mackerel のカスタムメトリックにポストするこ…

社内勉強会で "Chord" を紹介した

最近 Coursera で "Cloud Computing Concepts, Part 1" という講義を履修していて,講義の中で学んだ "Chord" というアルゴリズムに関して,実際に論文を読んで理解を深めた上で,ザックリと社内勉強会で紹介した. 完全に理解し切れていなくて,もしかした…