「みんなのGo言語」には現場で使える実践テクニックが本当に書いてあった

発売されたのは約1年前だけど,最近仕事で Golang を書いているので,実践的なテクニックを学ぶために今さらながら「みんなのGo言語」を読んだ.WEB+DB PRESS のようなカジュアルさのある本で,1日でサクッと読むことができた.読み終わった後に,学んだこと…

Golang でジョブのスケジューリング実行ができる JobRunner を試した

最近 Golang でジョブを非同期にスケジューリング実行するような仕組みを実装していて,要件に合っていた JobRunner を使った.特徴としては,様々なスケジューリングを定義できる点と,API を起動してプロセスを常駐させる点にある. github.com 基本実装 …

Lambda (Python) をローカル環境で実行できる python-lambda-local を試した

Lambda (Python) のローカル環境を整えるため,python-lambda-local を試した.python-lambda-local を使うと,Python コードを Lambda にデプロイすることなく動作確認ができるようになる.Apex を使っていれば apex invoke でお手軽に実行することもできる…

The Go Blog : JSON and Go を読んだ

今さらながら The Go Blog : JSON and Go を読んで,Golang で JSON を扱う方法を学んでいた.Golang を実践的に書いている人にとっては初歩的すぎる内容だけど,個人的にメモを残しておく. JSON and Go - The Go Blog encoding/json の json.Unmarshal を…

「JAWS-UG コンテナ支部 #9」で「ECS x Mackerel」をテーマに LT をした

昨日は「JAWS-UG コンテナ支部 #9」に参加して,LT もしてきた.ECS を中心に移行の話,デプロイの話,モニタリングの話などを聞けたし,懇親会にも参加させてもらって,カジュアルに話せて楽しかった.僕もコンテナ支部の運営をお手伝いしたいな! jawsug-c…

AWS をフル活用して「サーバレス」な SPA を実装できる「サーバーレスシングルページアプリケーション」を読んだ

6月末に O'Reilly から出版された「サーバーレスシングルページアプリケーション」を読んだ.ただ読むだけじゃ理解度が浅くなってしまうかもしれないなと感じて,今回は全ての実装を写経してみた.そのため少し時間はかかってしまったけど,フロントエンドに…

新任リーダーにオススメする「ザ・ファシリテーター」を読み直した

リーダー,マネージャーと言っても役割はいろいろあって,組織のフェーズ,規模,目指すビジョンによっても求められるアクションが異なる.だからこそ難しいし,チャレンジングだと思う.また「リーダー論」をテーマにした本もたくさん出版されていて,最近…

AWS Solution Days 2017「第2回 Aurora 事例祭り」で発表をしてきた

今日は「AWS Solution Days 2017 ~ AWS DB Day ~」に参加をして「第2回 Aurora 事例祭り」で発表もしてきた.すぐに資料公開をして良いとのことだったので,参加レポートをまとめる. AWS Solution Days 2017 ~AWS DB Day~(2017 年 7 月 5 日開催) | AWS…

Unsplash API (unsplash_rb) を試した

写真サービスだと Unsplash が大好きで,気分転換に見ることも多いし,発表資料の背景写真はほとんど Unsplash から引っ張ってきている.全ての写真を自由に使えるし,シンプルなサービスながら,非常にクオリティが高い. Unsplash 関連ツール 公式で Chrom…

組織パフォーマンスを改善しよう!

今週,社内で「技術的負債」をテーマにしたイベントがあり,トーク枠で発表をしてきた.タイトルは「技術的負債を “なるべく” 作らないためのコツ」で,意図的に技術の話をせずに,エモ系のストーリーに仕上げた. 特に伝えたかった部分は最後の「組織パフォ…

Apex の --env オプションを使って Lambda を複数環境にデプロイする

最近仕事で必要になり,CircleCI + Apex を使って,Lambda を複数環境 (prd / stg / dev など) にデプロイできる仕組みを作ったので,実現したかったこと,工夫したことなどを紹介したいと思う.ちなみに,以前も似たような事例で CloudWatch Events + Lambd…

任意のパラメータを格納できる EC2 Systems Manager「パラメータストア」を試したら便利だった

AWS

re:Invent 2016 で発表されたけど,オンプレ関連だと勝手に思い込んでいて,今まで試していなかった Amazon EC2 Systems Manager の中に「パラメータストア」というサービスがあり,試してみたらこれが非常に便利だった.簡単に言うと,任意のパラメータをパ…

Lambda を軸にサーバレスを解説した「実践 AWS Lambda」を読んだ

AWS Summit Tokyo 2017 の先行発売でゲットした「実践 AWS Lambda」をさっそく読んだ.Lambda の解説だけではなく,サーバレスの文脈で導入事例が増えてきたアーキテクチャ(ユースケース)の紹介がされていたり,サーバレスのデプロイツールとして AWS SAM …

AWS Summit Tokyo 2017 に参加して2日間ずっと AWS のことを考えていた

www.awssummit.tokyo 2017/05/30(火) ~ 2017/06/02(金) の期間で,計4日間開催されていた AWS Summit Tokyo 2017 に参加してきた.僕は後半2日間に参加して,非常に満足度が高く,もっともっと AWS を使い倒さなきゃ!とモチベーションが上がった.セッショ…

個人的な Keynote ベストプラクティス 2017

最近「どうやってスライドを作ってるの?」と聞かれる機会も増えてきたので,普段 Keynote を使っていて,特に意識しているポイントをベストプラクティスとしてまとめた.参考になれば! Keynote Best Practice speakerdeck.com Unsplash 背景画像を選ぶとき…

目標達成をもっと支援したい /「コーチングの基本」を読んだ

「コーチングの基本」を読んだ.今年は “教える” という行動をもっと深く知るという個人的なテーマがあって,2月からプログラミング学習者のパーソナルメンターという仕事もしている.また,社内でメンバーの育成を担当する機会もある.そういう背景から,ま…

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 でもしようと思って先に発表資料だけを作っていたんだけど,年内に…