ぎっくり腰が癖になりつつある今日この頃。つらいです。
インフラチームの長崎です。
はじめに
このブログは下記の続きになります。
「アカウント移行ってなに?」についてはこちらをご覧ください。
「切り替え」ってどんな事をしたのか
1.エンジニア全体のプロファイル切り替え&動作確認
エンジニアは、主に利用するAWSアカウントのプロファイルをデフォルトプロファイルとしてローカル端末に設定しています。
デフォルトプロファイルをこれまで設定していた既存の本番AWSアカウントから、新開発AWSアカウントへ切り替えを行なってもらいました。
また、切り替えに伴い普段開発を行う際に実行する操作が問題なくできるかを動作確認してもらいました。
切り替え対応実施済みの人、未実施の人が混在するとデフォルトプロファイルで見るリソースが異なる為、全員同じタイミングで切り替えを行いました。
本対応を行うにあたっての事前準備
切り替え日程の調整
全体で一気に行う為には「機能開発に不都合が生じない」事が大前提でした。
その為、機能開発における大きなリリースが控えていない、もしくは被らない日程で関係各所と調整を行いました。
切り替え手順の作成
エンジニア個人個人に対応を行なってもらう為、切り替え&動作確認の手順を作成しました。
また、人によってハンズオン形式で対応を行なってもらえるようにミーティング枠も予め確保しておきました。
エンジニアへの説明会
説明資料を作成し、エンジニア全体へ説明会を開催しました。
「アカウント移行の意義」や「対応してほしい事」を説明しました。
2.修正したソースコードのリリース
アカウント移行に伴うコードの修正を環境へデプロイしました。
当社はGithubでコードを管理しています。
作業ブランチから特定のブランチへマージする事で環境へデプロイされます。
この対応は、エンジニアに切り替え対応を行なってもらう当日の朝に実施しました。
新環境では、特定のブランチとは別のブランチをトリガーとして事前に動作確認済みでしたが、当社リリースの仕組み上旧環境と同じ特定のブランチでデプロイできるようにする必要があった為このタイミングでブランチを切り替えて実施しました。
都度修正した時にリリースも考えましたが、当社のリリースフロー上、毎回リリースまでに少し時間がかかってしまいそうだったので作業ブランチをまとめる、作業まとめブランチを作成し、ここに修正を集約しました。
本対応を行うにあたっての事前準備
ソースコードの修正
アカウント移行に伴うコードの修正は、下記の流れで行いました。
作業ブランチでコードの修正
作業ブランチから作業まとめブランチへマージする為のプルリクレビュー依頼
作業まとめブランチへマージ
こうする事で修正目的に応じて作業ブランチを作成する事ができ、プルリクレビュー者も確認がしやすいというメリットがあります。
また、実際のリリース時は、作業まとめブランチを特定ブランチへマージすれば良いです。
リリースできる枠の確保
当社ではソースコードをリリースできる時間帯が決まっており、予約する事で枠が確保できます。
かなり早い段階で切り替え当日のリリース枠は確保しておきました。
3.通知の切り替え
当社ではシステム上何か通知したい場合、Slackチャンネルへ通知する事が多いです。
新旧環境の通知両方が有効のままだと、通知が重複して混乱を招いてしまう為、新環境で有効化、旧環境で無効化を行いました。
これは、通知頻度の少ないものから優先的に切り替え当日の2日くらい前から対応を進めました。
本対応を行うにあたっての事前準備
通知箇所の調査&手順作成
リソースを新環境へ移行する際に通知が設定されている箇所をリスト化しておきました。
また、新環境で有効化、旧環境で無効化する手順を作成しておきました。
発生した問題
全体切り替えにあたって、個別に質問はあったりしましたが特段大きな問題は発生しませんでした。
しかし、考慮ができていなくて、エンジニアの開発に少し影響を与えてしまった問題に下記がありました。反省です。
GithubのPRで動くCodebuildテストが失敗する
当社ではプルリク作成後に該当コミットでCodebuildによるテストが行われます。
このCodebuildが旧環境側で実行されてしまっていた為、PRでテストが失敗しマージブロックされる事でリリースができない事象が発生してしまいました。
こちらは実行されるテストが新環境のCodebuildで行われるよう変更して解消しました。
※下記失敗時のイメージ
今後のアクション
切り替えまで完了し、運用も軌道に乗ってきたので、ここからは下記の事に注力していく予定です。
- 旧環境の削除
- エンジニアに新開発環境でAWSサービスに積極的に触れてもらう目的の推進活動
- 検証ルール策定や設定
- AWS教育コンテンツ作成 など
何かブログにできそうな内容があれば、また書きたいと思います。
オープンワークでは、一緒に働いてくれるメンバーを募集しています。 www.openwork.co.jp