KyashでインフラエンジニアをしているMasaです。
今回はKyashのインフラで使っているサービスやツールのご紹介をしたいと思います。
MFA
AWSのコンソールにログインするときやGmail、Githubへアクセスする時には二段階認証を有効にしています。 複数のサービスで二段階認証を有効にしているとパスワードの管理が大変になりますよね。 そこで私はAuthyを使っています。
以前はGoogleAuthenticatorを使っていましたが、複数デバイス登録したり出来ることが多いのでAuthyに変更しました。アイコンがわかりやすいので気に入っています。
あと余談ですが、AWSのIAMユーザーに "aws:MultiFactorAuthAge": "true"
を設定しています。その為、APIを操作する場合はSTSでMFA認証し、一時的に有効なキーを発行しています。
ECS
弊社ではアプリケーションをgolangで書いています。バイナリをサーバーに置くだけでOKなのでとてもラクチンです。 バイナリを置くだけでOKなので、dockerコンテナ化を急いではいなかったのですが、そろそろうちもコンテナ化だよねと勝手に思い、ECSの利用を決めました。
導入してみてECSで感動したこととしては、
- Task毎にIAMロールをアタッチできる
- ALBと組み合わせた動的ポートマッピング
IAMロールでAPIサーバー毎に権限を割り当てていたので、それがECSでも使えるのはかなり嬉しいです!
また、デプロイでは利用している人が多かったこちらのスクリプトを使ってデプロイしています。
Parameter Store
クレデンシャルの管理にParameterStoreを使い始めました。ぱっと見た感じがわかりやすくていいサービスだと思っています。
プレーンテキストとSecure Stringパラメーターが設定できるのですが、Secure StringパラメーターはKMSを使って暗号化・復号化が可能です。
そしてクレデンシャルの更新にはssm-diffというツールを使っているのですが、diffが取れるので更新前のチェックもやりやすくて良いです。
実際にdiffを試したところ
ssm-diff --profile myprotein -f myprotein.yml plan
よく見ると Aoyama-Itchome!
が Omote-sando!
に変わっています。
あ!実は弊社は2月13日に移転いたしました!
絶賛コンテナ化を進めているKyashのインフラですが、今後はFargate、EKSも使えるようになるのでいまから楽しみです。