【レポート】リフト&シフトから始めるレガシー脱却への挑戦~大規模コンテンツ配信サービスの移行実例~:AWS Summit Tokyo 2019 Day2 #AWSSummit

本ブログは2019年06月12〜14日に行われたAWS Summit Tokyo 2019のセッションレポートです。 『リフト&シフトから始めるレガシー脱却への挑戦~大規模コンテンツ配信サービスの移行実例~』のセッションを聴講したので内容をレポートしたいと思います。
2019.06.13

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

本ブログは2019年06月12〜14日に行われたAWS Summit Tokyo 2019のセッションレポートです。

『リフト&シフトから始めるレガシー脱却への挑戦~大規模コンテンツ配信サービスの移行実例~』のセッションを聴講したので内容をレポートしたいと思います。

AWS Summit Tokyo 2019 | 2019 年 6 月 12 (水) 〜14 (金) 幕張メッセで開催

セッション概要

当セッションの登壇者及び概要は以下の通りです。

ニフティ株式会社 WEB事業部 WEBサービス開発グループ シニアエンジニア 伊達 乾

ニフティ株式会社 WEB事業部 WEBサービス開発グループ 添野 翔太

ニフティでは、これまでもポータルサイトならびに40を超えるウェブサービスのインフラ基盤にクラウドを採用していた。しかし、レガシーなアーキテクチャのシステムのため運用負荷が高く、開発生産性の向上も困難であった。そういった課題を解決できるようなモダンなシステムに作り変えるべく移行を進めている。芸能、国内、海外など気になるニュースやオリジナルニュースコンテンツを配信し、掲載媒体社数100社超えの@niftyニュースの移行をベースに、クラウド間移行の実例とぶつかった課題を紹介する。

レポート

  • ニフティについて:事業構造
    • 接続サービス
    • Webサービス
  • 主要なWebサービス(ほぼAWS移行済み)
    • メディア・コンテンツ
    • マーケットプレイス
  • 移行の目的
    • 中期的なシステムコストのコントロール
    • 主流クラウド技術を活用し生産性向上
    • 独自フレームワークの耐用年数超過
      • 2004年から独自のJava製フレームワークでサービス開発
      • 述べ100近くのサービスを開発運用
      • WordPressであらゆるサイトを作っていると想像してください(全て独自プラグインで)
  • 調査フェイズ(2017/9-2018/2)
    • ポイント:ステークホルダーを早めに巻き込む
      • 事業部長に適宜インプット:メリット、コスト、スケジュール、社内の管轄部署(サーバ管理部門)も巻き込む
    • 対象システム選定
      • 原則、全てのシステム
    • クラウドベンダー比較
      • Gartnerの分類を元に網羅的に比較したがカタログスペックの比較になり役にたたなかった
      • レガシーな環境を何とかしたい当初の思いに立ち返った
    • 移行手段の調査と検証
      • P2V(物理サーバから仮想サーバ)しか手段がとれなかったため、他社実績が多いCloudEndureに仮決めし、小規模なサービスで実証実験を実施
  • 準備フェイズ(2017/10-)
    • 移行実証実験
      • マネージドサービスを使いたくなるが、安易に切り替えると特性の違いから問題が生じるケースもある。性能検証を十分に実施すること(詳細は後述)
    • 移行時の製品選定例
      • RDSに存在するデータベースエンジンであれば原則RDSを使用
  • 移行フェイズ(2018/5-)
    • ポイント:トレーニングで基礎を身に着けた上で、移行作業を通してAWSを学ぶ

  • ニュースのAWS移行プロジェクト
    • @niftyニュースのご紹介
      • 月間約3,000万人以上が利用するアグリケーション型ニュースメディア
      • 月間アクセス数(合計)約1.5億PV、3000万UU
  • プロジェクト概要
    • 移行プロジェクトスケジュール
  • 移行方針を決めるにあたって
    • 移行パターンと現行調査
      • Rehost(リフト&シフト)を選択
  • リフト&シフトを後押しするツールCloudEndure
    • CloudEndure社のライブマイグレーションツールを活用
  • 移行でハマったポイント
    • CloudEndureではNFSサーバーが起動不能
      • CloudEndureの仕様で、初回のデータ同期が完了しないとサーバーを起動できない
      • 初回のデータ同期がいつまでも完了しなかった。
      • そこで、S3を経由してデータ移行
    • パフォーマンスが出ない
      • 当初は可用性を高めるためMulti-AZを検討
      • 遅くなった原因を推定すると 細かなレイテンシ差×ワークロードあたりのタスク数×タスクあたりのIO数が爆発した
      • EFSを一部やめてNFS on EC2,AuroraからRDS(シングル)にして解決。ただし可用性が下がった。
    • HTTPS周り
      • バッチやツールでHTTPS通信をする際に2つのエラーに遭遇
        • TLSバージョン問題
        • Server Name indictaion(SNI)問題
  • AWSでよかったこと
    • 開発や運用のしやすさが向上しました
      • ログ集約
      • トラフィック分類
      • サーバレス
      • コスト管理
    • Athenaを用いた記事ランキングデータ生成
      • データの重い加工処理を分離することに成功
      • 調査から実装完了まで2人日で実施
    • トラフィックの詳細分析
      • CloudFrontとELBにおいてHTTP5xx系を解析
    • コスト管理
      • コスト意識を持たせるためにSlackで週次で通知
      • コスト最適化をするために
        • リザーブドインスタンス
        • リザーブドキャパシティ
        • 特定の時間だけ起動するようCLIで制御
  • 今後の展望
    • 技術の負債をAWSサービスの力を借りて解消中
  • まとめ
    • レガシーなシステムほど慎重に

  • 今後の展望:AWS移行からAWS活用
    • レガシーなシステム開発を脱却し、エンジニアがより活躍できる、市場価値が上げられる開発の場に向けて
      • 全社へAWS浸透・新人育成:AWS内製研修
        • Architect, SysOpsなど各分野を講義+演習(1月〜6月 全9回)
    • 新規システムは原則AWSで開発
      • 2019/1/8 有償コンテンツソーシャル認証システム
      • 2019/2/15 ニフティコーポレートサイトリニューアル
        • 独自CMSからWordPressに移行、Aurora
    • 移行は上期中に完了させ、モダンなシステムに再構築
    • 社内OAのAWS活用:VDI検討中

感想

ニフティさんのクラウドジャーニーの詳細が聞けて興味深かったです。レガシーシステム改善に力を入れててすばらしいです。

他のセッションも聴講して引き続きセッションレポートを続けていきたいと思います。

https://dev.classmethod.jp/series/aws-summit-tokyo-2019/