こんにちは
株式会社Diverseで働いていますpython_spameggsです。
6日目の記事になります。
タイトル通り今年一年の自分がやって来たことを振り返りたいと思います。
1月〜3月
社内ツール
AWSへ移転する時に必要ではないものは予め無くしておきたかったので誰も使用していないものを洗い出して停止、削除しました。
弊社の制度で本を購入するのに補助してくるのでその申請が簡単にしやすくするものを作成しました。
DNS移管
AWSへ移管しました。
rspec-dnsを使用して漏れがないことを確認しました。
AWS CodeBuildとTerraformを使用してAWSサービスを作成
PRを作成するとterraform plan
が実行されてPRがマージされるとterraform apply
が実行されます。
こちらを参考にしました。Terraform どこで実行していますか?
すでにAWSコンソールから作成されていたサービスがあったのでterraform import
を使用してコード化しました。
mackerelの監視ルールをgithubで管理
監視ルールに追加や変更があったらmkr monitors pull
してgit push
してgithubで管理しています。
githubにpushされた時にCircleCIが動くようになっておりmkr monitors diff
を実行して監視ルールと差分がないかチェックしています。
私以外やっている人がいないので自動化したいなと思っているけど手が回ってないです。
dokkuを使用して開発環境を作成
環境を作成したいブランチを選択してボタン一つで作成、更新、削除ができるようになっています。
4月〜6月
AWS Direct Connectの準備
VPCなどの設定やDirect ConnectのVirtual Interfaceなどを開通するのに必要な情報をエクセルにまとめました。
資料をまとめるのは普段の作業と違ってなかなかハードでした。
MySQLのバックアップ専用サーバのマシン交換
レプリケーション遅延でバックアップがきちんと出来てなかったのでスケールアップしました。
バックアップ方法や監視方法が古いものを使っていたので見直しました。
gRPCのためにプロキシサーバを作成
nginxを使用してプロキシサーバを作成したが最近envoyの方が良かったのではないかと思い始めてます。
RPMをdocker-composeで作成できるように対応
DockerでRPMの作成はしていたけど古くなりドキュメントもなかったのでdocker-composeを使うものを作成しました。
AWS S3にRPM Repositoryとして使用できるように作成
AWSへ移転して使いたいRPMが出てきそうだったので準備しました。
sts:AssumeRole
を使って別のAWSアカウントからも使用できるようにして特定のユーザ or IPアドレスのみアクセスできるようにバケットポリシーを作成しました。
そのままだとs3からyumが出来ないのでAWS EC2インスタンスにyumできるようにプラグインを設定しました。
この時に参考していたものがbotoを使っていて古いのでboto3を使用するに変更しました。
7月〜9月
AWS Direct Connectの開通確認
疎通確認して速度計測をa、c、dそれぞれ確認しました。
AMI作成
packerとansibleを使用して作成しました。
MySQLのバージョンアップ
バージョンを5.5から5.6にアップグレードしました。
MHA for MySQLを使用してフェイルオーバーさせて切り替えました。
5.7まであげてもいいじゃないかと話に上がっていたが時間が足りなかったので次の機会に。
pt-duplicate-key-checkerを使用して重複したインデックスをチェック
興味があって時間もかからなかったのでさくっと出しただけで使えていません。
SSL/TLS証明書の更新
オンプレミスで使用しているものを更新しました。
10月〜12月
MySQL(オンプレミス)からAWS RDS(MySQL)にレプリケーション
time_zone設定の違うMySQLのレプリケーションについて
上記に気が付かずTIMESTAMP型のカラムがずれてしまったのこちらを参考にtimezoneを変更してmysqldumpを行いリストアして対応しました。
レプリケーション用のユーザパスワードが保存されていたものと違っていたので探索してmysql_historyから作成したログが残っていたので保護してmysql_historyからは削除しました。
terraformをv0.11からv0.12にバージョンを変更
AWS CodeBuildでWARNがいっぱい出てしまい実行結果のログが読みにくくなったため変更しました。
一部サーバをAWSへ移転
gRPCサーバとgRPCのプロキシサーバを移転しました。
予めRoute53に移転していてルーティングポリシーを重みを少しずつ変更して徐々に行った。
現在はメールサーバとRDSの移転を行っています。
まとめ
やったことをなるべくdocbaseに書いてきましたが詳細が抜けていることが多くて思い出すのが大変でした。
振り返ってみると1年通してこれだけAWSへ移転するための作業をやったことはないのでいい経験なりました。
来年も同じことを続けるけど。
明日の7日目は誰かが埋めてくれるはず!