AWS移行を通して 得られた知見や教訓エキサイト株式会社 メディアプラットフォーム事業部武藤 寛
View Slide
自己紹介• 武藤 寛• エキサイト株式会社 メディアプラットフォーム事業部• レシピサイトを担当• PHP / Android / Flutter App• Twitter @mthiroshi_4o
料理のプロが作る簡単レシピサイト 「E・レシピ」- 複数レシピを組み合わせた「献立」を提案- 旬食材、季節イベントに合わせたレシピや トレンドの食ニュースも発信- Web, iOS, Androidで提供
AWS移行が完了- エキサイトは2019年から移行開始、2022年6月末に完了- E・レシピは2021年に着手、2022年6月下旬に完了
E・レシピのシステム概要
AWS構成
移行手順
VPC構築とDirect Connect接続オンプレ社内ネットワークAWSE・レシピ VPC専用線を確保
DB移行(DMS)
VM移行Application Migration Service (MGN)
Memcached移行
イメージサーバー移行
知見や教訓• Terraformの運用• AWS移行とリビルド• VPCとALBの注意点
Terraformの運用• 社内、チーム内で採用している• ディレクトリ構造には様々なパターンがある
gatewayapplicationinfra
AWS移行とリビルド
主要テーブルの不要カラムを削除• レシピデータを管理する主要なテーブルに50個の不要なカラム• 従来の新規データ定義をカラム追加で対応の積み重ね– 削除時にリスクがある運用• 不要カラムの参照がコードに残ることが負債化が進む
カラム整理から得たこと• 変更に強いテーブル設計をする– テーブルを適切に正規化する• 不要なコードは削除する– コード内検索のノイズが減る
APIのリビルド(現在進行中)• PHP → Java / SpringBoot で再実装• APIパラメータを整理し、用途に応じてエンドポイントの分割– 内部の分岐を減らして、見通しを良くする• SQLの見直し– Explainを確認し、必要に応じてIndex作成
リビルドを通して- 複雑なことをシンプルにすること- 負債を生まないために、良い設計と実装を続ける
VPCとALBの注意点
VMの移行作業中- DB移行完了後、サーバの移行に着手したフェーズ- EC2、ALBの構築と挙動確認を繰り返していた- 全ての挙動確認を終えてから本番移行を予定
_人人人人人人人人_> 突然のIP枯渇 < ̄^Y^Y^Y^Y^Y^Y^ ̄
ALBを構築するVPCサブネットの要件• サブネットに未割り当てのIPが8個以上必要• 負荷に応じて自動的にスケールアウトするため
当初のVPC• VPC : /24 (256IP)• 3AZ– private subent : /26 (64IP)– public subnet : /28 (16IP)• public subnetに16個あれば、ALBが足りる見積もり
VPCサブネットのIP仕様- サブネットごとに5個の予約アドレス- 実質的に使用可能なIPは3個 (16 - 5 - 8 = 3)- ALBは5個必要...オワタ...
VPCの再構築とDBの再移行• VPC: /22 (1024IP)• 3AZ– private subnet /24(256IP)– public subnet /26 (64IP)• 2度目のDB移行
失敗の要因と対策• 仕様に対する理解が足りなかった• インフラチームと初期から連携しておくべきだった
終わりにAWS移行を通して得たこと• Terraformの運用– 運用しやすいディレクトリ構造に挑戦。しかし、正解がない。• リビルドへの取り組み– 一部負債を解消した。技術負債を生まない設計と実装を目指す。• ALBとVPCの注意点– 仕様の理解が足りず失敗。– チームの連携を強化、個人のスキルも伸ばす。