Upgrade to Pro — share decks privately, control downloads, hide ads and more …

エキサイトブログの トップページを 段階的にリプレイスする

エキサイトブログの トップページを 段階的にリプレイスする

Avatar for Kazuki Yamagata

Kazuki Yamagata

August 26, 2025
Tweet

More Decks by Kazuki Yamagata

Other Decks in Technology

Transcript

  1. 新アプリケーションにJava21 / Spring Boot3を採用 Java21 / Spring Boot3 過去のPHP →

    Javaの切り替えを経て、事業部内で知見が溜まっていた バックエンドAPIもJavaで構築済み マルチモジュール構成を採用しており、必要なコードを再利用できる OpenAPI OpenAPI Generatorを使用してAPIクライアントを自動生成 旧アプリケーションでは、エンドポイント毎に都度書いており面倒だった こちらも事業部内で知見があり、導入することにした https://tech.excite.co.jp/entry/2024/02/15/192547
  2. locationディレクティブで切り替える server { # リプレイスしたページはSpring Bootコンテナを参照する location ~ ^/genre/ {

    proxy_pass http://springboot; } location ~ ^/ranking/ { proxy_pass http://springboot; } # リプレイス前のページはPHPコンテナを参照する location / { proxy_pass http://php; } }
  3. 新アプリケーションに移行した結果: 定量面 期間 / 人数 2024年6月 〜 2025年1月 / 3名(エンジニア2名、デザイナー1名)

    コンテナ稼働台数の減少 2vCPU / 4GiB / 5台 → 1vCPU / 2GiB / 2台 Lighthouseのスコア改善 移行前のデータは残っていないが、移行後にパフォーマンス面、アクセシビリティ面 において十分な結果を出せた
  4. まとめ PHP5 / 独自フレームワーク → Java21 / Spring Boot3 に移行した

    1つのECSタスクにまとめる + nginxのlocationディレクティブを採用し、段階的なリプ レイスを実現した 移行した結果、定量面と定性面でよい結果を残すことができた