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