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の注意点 – 仕様の理解が足りず失敗。 – チームの連携を強化、個人のスキルも伸ばす。