2017-01-01から1年間の記事一覧

AWS WAFで環境毎にCDN(CloudFront+S3)を立てた

この記事は Speeeアドベントカレンダー 18日目 の記事になります。 昨日(一昨日)は、@bino98さんによる、「Slackでヘタクソな日本語/英語の校正をしてくれる「Botlint」を作ってる」でした。 この記事ではAWS WAFを使って環境ごとにCDN環境を構築する方法に…

Bootstrap Night! Vol.2 に参加しました。

12/12(火)に開催されたselfreeさん主催のBootstrap Night! vol.2に参加してきました。 selfree.connpass.com esa.ioの人の発表の中で イベント参加後にblog書くのは比較的ハードルが低いし、主催者側うれしいし(略)オススメ というお話があったのでその気…

フォアグラウンドでコマンドを実行した後でバックグラウンドジョブに変更する

バッチの手動実行など終了まで長時間かかるコマンドを実行する場合、 おそらくnohupでSIGHUPを受け付けないようにしてバックグラウンドジョブとして実行すると思います。 しかし、フォアグラウンドジョブとしてコマンドを実行した後で気付くことがたまにある…

電話番号をうまく扱うライブラリ(libphonenumber)の活用方法を考えてみる

1. 背景 社内で共有された以下の資料で、Googleが作成しているlibphonenumberという電話番号のバリデーションができるライブラリが紹介されていました。 自分が担当しているサービスは電話番号の入力が必須であり何かしら使えそうだということで活用方法を考…

Dockerをawsコマンド実行環境として使いS3からファイルをディレクトリごとダウンロードする

結論 AWSのS3から特定のディレクトリ以下をごっそりダウンロードするにはawscliを使う必要があります。 ただ、awscliを用意するのが面倒だったので、awsコマンド実行環境としてDockerを使用するワンライナーを書きました。 docker run -it --rm -v ~/docker/…

AWS LambdaでAWSの障害をslackにメンション付きで通知する

担当しているシステムのエラーの通知や障害の通知まわりで、その問題点と解決策を整理したのでメモしておきます。 背景 エラー通知があふれ見逃す危険があった 担当しているシステムではRailsやJSでExceptionが発生したときや、AWSでなんらかのイベントが発…

itamaeのgitリソースでエラーが起きたからメモ

itamaeのgitリソースを実行したところ「deployブランチがすでに存在しているためcheckoutできませんでした」という旨のエラーが出ました。 その原因を調べたのでメモとして残しておきます。 エラーの原因 itamaeでgitリソースを実行するときに以下をともに満…

Kotlinのtraitとabstractの違い

Kotlinを勉強していたらtraitという機能がでてきて、「abstractと何が違うねん」と思ったのでその違いを調べました。 (至極当たり前の内容です) 結論 abstractは単一継承しかできないが、traitは多重継承(Mixin)できる。 Kotlinのtraitとは Kotlinのtraitはa…