[JAWS DAYS 2022] 円安と戦うために複数のAWSサービスでGravitonに移行した話

42.5K Views

October 08, 22

スライド概要

JAWS DAYS 2022 - Satellites 2022.10.08(Sat) 10:00~18:00 で発表したスライドです。
https://jawsdays2022.jaws-ug.jp/sessions/C01/

profile-image

経済ニュースアプリのSREの仕事をしています。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

円安と戦うために複数のAWSサービスで Gravitonに移行した話 株式会社ニューズピックス 安藤 裕紀 JAWS DAYS 2022 - Satellites 2022.10.08(Sat)

2.

00 自己紹介 Yuki Ando / あんどぅ NewsPicks SRE SREチームのマネージャー兼テックリード 好きなAWSのサービス:ECS、Cost Explorer 、CDK ©NewsPicks Inc. All Rights Reserved.

3.

00 目次 1. NewsPicksとSREチームについて 2. 円安の危機 3. Gravitonに移行した話 ©NewsPicks Inc. All Rights Reserved.

4.

01 NewsPicksとSREチームについて ©NewsPicks Inc. All Rights Reserved.

5.

01 ソーシャル経済メディア NewsPicksについて タイトルタイトルタイトルタイトルタイトルタイトルタイト ルタイトルタイトルタイトル テキストテキストテキストテキストテキストテキストテ キストテキストテキストテキストテキストテキストテキ ストテキストテキストテキストテキストテキストテキスト テキストテキストテキストテキストテキストテキストテ キストテキストテキストテキストテキストテキストテキ ストテキストテキストテキストテキストテキストテキスト テキストテキストテキストテキストテキストテキストテ キストテキスト ©NewsPicks Inc. All Rights Reserved.

6.

01 サービスのユーザー数・プレミアム会員ともに成長中 ©NewsPicks Inc. All Rights Reserved.

7.

01 プロダクトチーム内でSREが1チームで複数事業のインフラを担当 SRE ©NewsPicks Inc. All Rights Reserved.

8.

01 SREチームのミッションと、活動の4つの軸 Mission 誰もが安全かつ高速に開発できるインフラを提供することで、 NewsPicksの企業価値を継続的に向上させる ユーザー体験を守る 開発者体験を高める 常にユーザー視点のモニタリングを行い、可用性やレイテ ンシーのSLO達成を通じて快適なユーザー体験を提供する メディアとしてニュースのスパイクアクセスを難なく捌く ユーザーに価値を届けるプロダクト開発のパフォーマンスを 最大化するため、開発者の負を取り除き快適・安全・高速に 使える開発基盤サービスを提供する レガシーを捨てる セキュリティ・コストを適正化する レガシーなサーバーOSやミドルウェア、言語ランタイム、 アーキテクチャーを継続的に刷新していく モダンな技術スタックによりエンジニア採用の競争力を 高め、プロダクト開発組織の成長阻害要因を取り除く SNSの側面があるソーシャル経済メディアをユーザーが安心し て利用できるセキュリティを確保する サービスの規模拡大に比例してサーバーのコストが増えない ようにし、売上に対するコストの割合を低くする ©NewsPicks Inc. All Rights Reserved.

9.

01 SREチームのミッションと、活動の4つの軸 Mission 誰もが安全かつ高速に開発できるインフラを提供することで、 NewsPicksの企業価値を継続的に向上させる ユーザー体験を守る 開発者体験を高める 常にユーザー視点のモニタリングを行い、可用性やレイテ ンシーのSLO達成を通じて快適なユーザー体験を提供する メディアとしてニュースのスパイクアクセスを難なく捌く ユーザーに価値を届けるプロダクト開発のパフォーマンスを 最大化するため、開発者の負を取り除き快適・安全・高速に 使える開発基盤サービスを提供する レガシーを捨てる セキュリティ・コストを適正化する レガシーなサーバーOSやミドルウェア、言語ランタイム、 アーキテクチャーを継続的に刷新していく モダンな技術スタックによりエンジニア採用の競争力を 高め、プロダクト開発組織の成長阻害要因を取り除く SNSの側面があるソーシャル経済メディアをユーザーが安心 して利用できるセキュリティを確保する サービスの規模拡大に比例してサーバーのコストが増えない ようにし、売上に対するコストの割合を低くする ©NewsPicks Inc. All Rights Reserved.

10.

02 円安の危機 ©NewsPicks Inc. All Rights Reserved.

11.

02 未曾有の円安によりSREチームの心は休まらない日々 USD/JPYの為替チャート 😱10月:145円(+26%) 😰7月:135円(+17%) 🤔4月:125円(+8.5%) 😀1月:115円(±0%) yahoo!finance https://finance.yahoo.com/quote/JPY=X 2022.10.8時点より ©NewsPicks Inc. All Rights Reserved.

12.

02 未曾有の円安によりSREチームの心は休まらない日々 USD/JPYの為替チャート 😱10月:145円(+26%) 1ドル115円→145円で26%アップ😱 「仮に」AWS費用が1億なら2600万のコスト増😭 😰7月:135円(+17%) 利益率15%の事業だとすると、追加で1億7,333万の売上を持ってこないと 会社として当初の収益目標を達成できないことになります🥺(やばい) 🤔4月:125円(+8.5%) 経営から伝わってくるコスト削減の期待度をお察しください 😀1月:115円(±0%) ※数字は、NewsPicks事業の数字ではなく架空のものです yahoo!finance https://finance.yahoo.com/quote/JPY=X 2022.10.8時点より ©NewsPicks Inc. All Rights Reserved.

13.

02 親の顔よりもAWS Cost Explorerを眺める日々 AWS Cost Explorerのサービス別グラフ(2022.1-9月) ©NewsPicks Inc. All Rights Reserved.

14.

02 親の顔よりもAWS Cost Explorerを眺める日々 AWS Cost Explorerのサービス別グラフ(2022.1-9月) AWSさん、Cost Explorerの金額がJPYで確認できるようにアップデートお願いします!🙏 ©NewsPicks Inc. All Rights Reserved.

15.

02 最終的に、年初のAWSコストから20%近くの削減に成功💪 AWS Cost Explorerのサービス別グラフ(2022.1-9月) 20%近い削減 ©NewsPicks Inc. All Rights Reserved.

16.

円安と戦うために複数のAWSサービスで Gravitonに移行した話 株式会社ニューズピックス 安藤 裕紀 JAWS DAYS 2022 - Satellites 2022.10.08(Sat)

17.

円安(26%アップ)との戦いには勝てませんでした😇 ©NewsPicks Inc. All Rights Reserved.

18.

完 ご清聴ありがとうございました! ©NewsPicks Inc. All Rights Reserved.

19.

円安と戦うためにって負けたけど複数の AWSサービスでGravitonに移行した話 株式会社ニューズピックス 安藤 裕紀 JAWS DAYS 2022 - Satellites 2022.10.08(Sat)

20.

03 Gravitonに移行した話 ©NewsPicks Inc. All Rights Reserved.

21.

03 Gravitonとは AWSが開発したARMベースの独自プロセッサ 2022/10 現在で最新のGraviton3が利用で きるAWSサービスはEC2など一部だが、 Graviton2でも現行世代(c5/m5/r5)のIntel CPUのインスタンスと比べて最大40%のコス トパフォーマンス向上とのこと コストは単純に10%〜20%安くなり、性能の 期待値も高い(ワークロードや処理による) ため、性能に問題ないなら積極的に採用検討 する価値がある AWS Graviton3 を搭載した Amazon EC2 C7g インスタンスの発表 (フルビデオ ) : James Hamilton https://www.youtube.com/watch?v=QKo7yDAn75k ©NewsPicks Inc. All Rights Reserved.

22.

03 Gravitonへの移行は20%削減までに実施した様々な施策の一つ EC2/ECSのスケーリング コンピューティングリソースを サービスの使用量に合わせてスケー リングして無駄を減らす 開発環境は平日日中のみ稼働する ようにして無駄を減らす。祝日の停 止を設定する RI/SP/Spotの活用 Savings Plansの推奨事項やカバレッ ジレポートを見てこまめに購入判断 する。Fargate Spotを利用する Cost ExplorerでDynamoDBの Reserved Capacityの利用状況を確 認してこまめに購入判断する ©NewsPicks Inc. All Rights Reserved. ストレージコスト削減 EBSのスナップショット世代数の見 直しと過去の不要な手動スナップ ショットの消し込み S3ライフサイクルルールの見直しと 適切なGlacier活用 Gravitonへの移行 マネージドなデータベースサービス (Aurora,RDS,ElastiCache)の インスタンスタイプをGravitonに 変更する(だけ)

23.

03 Gravitonへの移行は20%削減までに実施した様々な施策の一つ EC2/ECSのスケーリング コンピューティングリソースを サービスの使用量に合わせてスケー リングして無駄を減らす 開発環境は平日日中のみ稼働する ようにして無駄を減らす。祝日の停 止を設定する RI/SP/Spotの活用 Savings Plansの推奨事項やカバレッ ジレポートを見てこまめに購入判断 する。Fargate Spotを利用する Cost ExplorerでDynamoDBの Reserved Capacityの利用状況を確 認してこまめに購入判断する ©NewsPicks Inc. All Rights Reserved. ストレージコスト削減 EBSのスナップショット世代数の見 直しと過去の不要な手動スナップ ショットの消し込み S3ライフサイクルルールの見直しと 適切なGlacier活用 Gravitonへの移行 マネージドなデータベースサービス (Aurora,RDS,ElastiCache)の インスタンスタイプをGravitonに 変更する(だけ) 最も工数のコスパが良かった

24.

03 きっかけは複数のDatabaseサービスでのEOL通知 Aurora MySQLデータベースバージョンのEOL ElastiCache for Redis バージョン3のEOL →「どうせバージョンアップが必要なら、合わせてGraviton移行したらいいのでは?🤔」 ©NewsPicks Inc. All Rights Reserved.

25.

03 Gravitonが利用可能なサービスの中でもDatabaseを対象に計画 サービス分類 Graviton利用可能サービス アプリケーション/ ライブラリのARM対応 今回のGraviton移行の 対象/対象外の理由 Compute Amazon EC2 要確認 一部ライブラリの変更対応が必要 AWS Lambda 要確認 コスト削減インパクトが極小 AWS Fargate 要確認 Fargate Spotを利用(現状併用不可) Amazon EMR 要確認 ほとんど利用していない Amazon EKS 要確認 利用していない Amazon Aurora 不要 Amazon RDS 不要 アプリケーションの対応がなく AWS作業のみで移行可能 コストが約10%下がる Amazon ElastiCache 不要 Database ©NewsPicks Inc. All Rights Reserved.

26.

03 Gravitonへの移行はいずれもAWSのマネコン操作のみ Aurora MySQL, RDS for PostgreSQL ElastiCache for Redis →数分〜十数分の停止時間が発生する(スナップショットから復元して事前検証可能) ©NewsPicks Inc. All Rights Reserved.

27.

03 変更対象のDBは個別の停止時間で影響分離することが難しかった システム概略図 ログ データ基盤 スマホアプリ APIサーバー メインDB レポート用DB toB向け サービス Aurora MySQL ECS on EC2 キャッシュDB ElastiCache for Redis ©NewsPicks Inc. All Rights Reserved. RDS for PostgreSQL メインDBが停止するタイミングで 全サービスが影響を受けるため、 別々に実施しても断続的に停止の 影響が発生しトータルの停止時間 が伸びてしまう

28.

03 メンテナンス停止でトラフィックを遮断し一括でタイプ変更を選択 システム概略図 ログ データ基盤 スマホアプリ APIサーバー メインDB レポート用DB toB向け サービス メンテナンス停止 Aurora MySQL RDS for PostgreSQL ECS on EC2 キャッシュDB ElastiCache for Redis ©NewsPicks Inc. All Rights Reserved. メンテナンス停止中に Gravitonに変更

29.

03 事前の検証は最小限で、問題があれば切り戻す方針とした 事前の検証・準備 ● 本番DBのスナップショットからDBを復元し、Gravitonへの変更リハーサル ○ ● Gravitonへの変更後にE2Eテストを実施し、基本的なサービス機能に問題ないことを確認 ○ ● DBアクセスのポーリングを仕掛けておき、変更中の停止時間を測定 自動E2Eテストの実行時間に変化がないことで主要動線のレスポンスも悪化がないと判断 サービス再開後の本番トラフィックでの切り戻し判断ポイントを設定した ○ 2時間・24時間タイムウィンドウのSLOに問題が発生していないこと ©NewsPicks Inc. All Rights Reserved.

30.

03 結果:パフォーマンスの悪化もなくコスト削減ができた🥰 AWSサービス タイプ コスト削減幅 (RI1年前払い) パフォーマンス影響 -10% 全体としてはパフォーマン スが改善💪 一部のテーブル・クエリは 遅くなったものもあり Before After Amazon Aurora(MySQL) db.r5.large db.r6g.large Amazon RDS(PostgreSQL) db.t3.medium db.t4g.medium -2.5% 影響なし(元々のスルー プットが多くない) Amazon ElastiCache for Redis cache.r5.large cache.r6g.large -5% 影響なし(キャッシュは 元々のレスポンスが爆速) ※ 上記RIを複数購入し実際は db.r6g.4xlargeを利用 同じインスタンスファミ リーはRI充当できるため →同じr5からr6gでもAuroraよりElastiCacheの方がコスト削減幅が小さく、t3からt4gなどバーストタイプで は更にコスト削減幅は小さい。バーストタイプやElastiCacheでは相対的にGravitonのメリットは小さくなる ©NewsPicks Inc. All Rights Reserved.

31.

03 ご参考:AuroraのGraviton移行による性能の変化は一律ではない Graviton移行後Query timeが早くなったテーブル Graviton移行後Query timeが遅くなったテーブル →NewsPicksではスループットが大きい左上(緑グラフ)のクエリが早くなったことで全体のレスポンス性能が 向上し、遅くなった一部のクエリはユーザー体験にとってレスポンス性能の重要度が低いため問題なかった。 「Gravitonで性能劣化はない」と過信するのは危険のため、本番同様のスループットで事前検証できると良い ©NewsPicks Inc. All Rights Reserved.

32.

03 まとめ ● AWSからのEOL通知はGravitonチャンス ● Gravitonへの変更は(見切り発車して結果オーライor切り戻しが可能なら) コスト削減に対する工数のコスパがとても良い。そのためには信頼できるSLOがあると良い ● スナップショットからの復元でGravitonに変更するリハーサルでは、 本番での所要時間と乖離は少なかったのでリハーサルによってメンテ停止時間の精緻化ができる ● DBのマネージドサービスはGravitonに変更しても最大10%程度のコスト削減だが、 コンピューティングサービスでは20%程度とGravitonのコスト削減効果が大きいため ライブラリの変更にも対応してアプリケーションのARM対応/Graviton移行を進めたい ©NewsPicks Inc. All Rights Reserved.

33.

ご清聴ありがとうございました! エンジニア積極採用中です! https://tech.newspicks.com ©NewsPicks Inc. All Rights Reserved.