Kyashのインフラで使っているサービスやツールの話

KyashでインフラエンジニアをしているMasaです。

今回はKyashのインフラで使っているサービスやツールのご紹介をしたいと思います。

MFA

AWSのコンソールにログインするときやGmailGithubへアクセスする時には二段階認証を有効にしています。 複数のサービスで二段階認証を有効にしているとパスワードの管理が大変になりますよね。 そこで私はAuthyを使っています。

authy.com

以前はGoogleAuthenticatorを使っていましたが、複数デバイス登録したり出来ることが多いのでAuthyに変更しました。アイコンがわかりやすいので気に入っています。 f:id:maaaato:20180222122647p:plain:h400

あと余談ですが、AWSのIAMユーザーに "aws:MultiFactorAuthAge": "true" を設定しています。その為、APIを操作する場合はSTSでMFA認証し、一時的に有効なキーを発行しています。

ECS

弊社ではアプリケーションをgolangで書いています。バイナリをサーバーに置くだけでOKなのでとてもラクチンです。 バイナリを置くだけでOKなので、dockerコンテナ化を急いではいなかったのですが、そろそろうちもコンテナ化だよねと勝手に思い、ECSの利用を決めました。

導入してみてECSで感動したこととしては、

  • Task毎にIAMロールをアタッチできる
  • ALBと組み合わせた動的ポートマッピング

IAMロールでAPIサーバー毎に権限を割り当てていたので、それがECSでも使えるのはかなり嬉しいです!

また、デプロイでは利用している人が多かったこちらのスクリプトを使ってデプロイしています。

github.com

Parameter Store

クレデンシャルの管理にParameterStoreを使い始めました。ぱっと見た感じがわかりやすくていいサービスだと思っています。
プレーンテキストとSecure Stringパラメーターが設定できるのですが、Secure StringパラメーターはKMSを使って暗号化・復号化が可能です。
そしてクレデンシャルの更新にはssm-diffというツールを使っているのですが、diffが取れるので更新前のチェックもやりやすくて良いです。

github.com

実際にdiffを試したところ
ssm-diff --profile myprotein -f myprotein.yml plan
f:id:maaaato:20180222122729p:plain
よく見ると Aoyama-Itchome!Omote-sando! に変わっています。
あ!実は弊社は2月13日に移転いたしました!

絶賛コンテナ化を進めているKyashのインフラですが、今後はFargate、EKSも使えるようになるのでいまから楽しみです。