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

Data Migration Night に登壇してデータ移行の Tips を紹介してきた

今日は Data Migration Night に参加してきた & LT 枠で登壇してきた! atnd.org ChatWork がデータマイグレーションに使った技術の話 CQRS + Event Sourcing System Aurora にある17億メッセージを HBase にマイグレーションする 基本マイグレーションと差…

Mackerel で ECS の動的ポートマッピングに対応したタスクのメトリクスを取得する

前回書いた記事に続き,Mackerel を使って ECS のメトリクスを取得する方法を検証していて,今回は「パターン2 : コンテナインスタンスに mackerel-agent をインストールする」の検証結果をまとめる.前提としては前回と同じで,ALB の動的ポートマッピング…

mackerel-agent タスクをコンテナインスタンスごとに起動して ECS のメトリクスを取得する

最近 Mackerel を使って ECS のメトリクスを取得する方法を検証している.ポイントとしては,ALB の動的ポートマッピングを使うところで,コンテナインスタンスの中で複数のタスク(コンテナ)が起動されるため,全てのタスクのメトリクスを取得する必要があ…

FCM (Firebase Cloud Messaging) で Instance ID API を使ってトピックをサブスクライブする

最近 Firebase を検証している.今回は mBaaS としての Firebase ではなく,プッシュ通知基盤としての Firebase を検証していて,学んだことをまとめておこうと思う.Firebase には他にも Analytics や Functions や Remote Config などなど,機能がたくさん…

プレゼンをするときに意識していること

僕自身,プレゼンが得意とまでは言わないけど,プレゼンをすることは大好きで,勉強会だったり,会社のイベントだったり,様々なところで話す機会がある.「プレゼンのコツ」をネットで調べたら既に大量の記事が出てくるし,何番煎じだよという声もありそう…

docker login をせずに ECR を操作できる awslabs/amazon-ecr-credential-helper

3月末に参加した「JAWS-UG コンテナ支部」で知った ECR (Amazon EC2 Container Registry) の便利ツール Amazon ECR Docker Credential Helper を試した.Amazon ECR Docker Credential Helper を使うと ECR のログインを省略できる. kakakakakku.hatenablog…

CircleCI + ecs-deploy で ECS にデプロイをする

引き続き ECS のデプロイを調査していて,今回は導入された話を比較的よく聞く ecs-deploy を試した.AWS CLI と jq に依存しているけど,Shell 100% で実装されているため,実行環境の構築が不要という手軽さが1番のメリットだと思う. github.com ちなみに…

「JAWS-UG コンテナ支部 入門編 #4」に参加して ECS の事例を聞いてきた

3/30(木) に参加して既に3週間もたってしまったけど,ECS の事例を聞きたいなと思って「JAWS-UG コンテナ支部 入門編 #4」に参加してきた.今回は「入門編」だったので,僕のレベル的にちょうど良いなと思った.あと JAWS 系のイベントは “19-21時” でサクッ…

AWS CLI で ALB 配下のインスタンスを deregister / register する

AWS CLI で ELB 配下のインスタンスをローリングデプロイする方法は去年にまとめた.aws elb deregister-instances-from-load-balancer と aws elb register-instances-with-load-balancer を使うだけじゃなく,aws elb describe-instance-health を使って w…

CircleCI で ECS にデプロイをするサンプルプロジェクト circleci/go-ecs-ecr を試した

CircleCI を使って,ECS に Docker コンテナをデプロイする方法を調べていたら,CircleCI が公開しているサンプルプロジェクト circleci/go-ecs-ecr の存在を知ったので,さっそく試してみた. circleci/go-ecs-ecr を動かすと,Golang の API が動く Docker…

計画する技術

今日は社内勉強会で「計画する技術」というタイトルで発表をした. 前から少し「計画」のところに課題感があって,そのあたりの知識を組織に広めて欲しいというオーダーもあったため,僕が日々考えていることを言語化して,発表することにした.僕は今までに…

PHP の Elasticsearch クライアント Elastica で Amazon ES に接続する

PHP から Elasticsearch を操作するために Elastica というライブラリを使っている.今まで EC2 で運用していた Elasticsearch を Amazon ES に移行する話があり,Elastica から Amazon ES を操作するときに悩むことが多かったため,まとめておこうと思う. …

mysqldiff を使って継続的に MySQL のデータベーススキーマの差分をチェックする

最近,環境ごとのデータベーススキーマの差分をチェックする機会があった.プロダクション環境とステージング環境ならまだしも,開発環境だと検証のために追加したインデックスがそのままになっていたり,開発が途中で止まってしまって日の目を見ることがな…

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 として追うことができるし,時計をしていることを意識しないほど…