【レポート】Amazon EC2 のコストパフォーマンスを最大 40 % 向上させる AWS Graviton によるコスト最適化入門 AWS-53 #AWSSummit

2022.05.26

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

こんにちは、森田です。

本記事は、2022年5月26日(木)に行われたAWS Summit Onlineのセッション「Amazon EC2 のコストパフォーマンスを最大 40 % 向上させる AWS Graviton によるコスト最適化入門」のセッションレポートとなります。

こちらのセッションでは、AWSが独自開発した Arm アーキテクチャ採用の CPU である Graviton プロセッサの紹介や利用方法、移行方法について説明されております。

セッション概要

 

AWS Graviton プロセッサは、AWS が独自開発した Arm アーキテクチャ採用の CPU です。現行世代の AWS Graviton2 は Amazon EC2 で多様なインスタンスタイプが提供されており、x86 アーキテクチャの同等インスタンスと比較して、Web アプリケーションやビッグデータ処理、HPCといった様々なワークロードで最大 40 % のコストパフォーマンス向上が報告されています。また、Amazon EC2 だけでなく Amazon RDS や AWS Lambda 等様々なマネージドサービスでも利用できるため、移植の負担を抑えながらコスト効率を向上させることも可能です。本セッションでは、この AWS Graviton について、概要や利用事例に加え、Amazon EC2 やコンテナ上で利用する際のプログラム移植のポイント、マネージドサービスでの活用、そして次世代の AWS Graviton3 についてもご紹介します。Arm アーキテクチャにハードルを感じている方も、是非こちらのセッションをきっかけにコスト最適化にチャレンジしてみませんか。

 

スピーカー

AWS 技術統括本部

Compute/HPC スペシャリストソリューションアーキテクト

宮本 大輔 氏

 

セッションレポート

Amazon EC2 のコスト最適化手法

  • Amazon EC2とは
    • 仮想サーバサービス
    • 従量課金
    • 仮想化基盤 Nitro System で仮想化のオーバヘッドを極小化
    • ワークロードにあった豊富なインスタンスタイプ
  • コスト最適化の例
    • インスタンス台数の最適化
      • Auto Scaling
    • 購入オプションの最適化
      • スポットインスタンス
      • リザーブドインスタンス
      • Savings Plans
    • インスタンスタイプの最適化
      • ワークロードに応じたものを選択

AWS Graviton2 の概要とエコシステム

  • Graviton2 プロセッサとは
    • Arm アーキテクチャCPU
  • コストパフォーマンス(コストが安い・パフォーマンスが高い)のか
    • コスト
      • x86系の同サイズと比較した場合に、約20%安価
    • パフォーマンス
      •  2倍の物理コアが利用できる
    • 様々なワークロード(Webサーバ、コンテナなど)でコストパフォーマンスが向上
  • 消費電力効率が良い
  • 多くの企業で採用されている
  • Amazon Prime Dayの事例
    • 既存のx86系インスタンスと比較して最大40%優れたコストパフォーマンス
  • x86系とほぼ同等のサービスが利用可能
    • インスタンスタイプ
      • 汎用, コンピュート最適化
      • G5g
        • NVIDIA T4 Tensor コア GPU
        • Arm アプリケーション実行
      • Im4gn / Im4gen
        • 高速なローカルストレージ
    • 様々なOS・コンテナ環境, パートナーソリューションサポート
  • AWS Graviton2 対応済みマネージドサービス
    • x86であるかArmかを意識する必要がない
    • 移行が容易

アプリケーションの AWS Graviton2 への移行

  • AWS Graviton getting-started
    • 言語別の考慮事項やバージョンなど
  • 多くの利用者が想像より簡単だった
  • ワークロード移行ケース
    • マネージドサービスを利用している場合
      • タイプの変更のみ
      • パフォーマンステスト
    • パッケージマネージャで取得できる場合
      • インストールを行い、評価する
      • ソースコードからのコンパイルすることで性能向上する場合あり
    • PythonやJavaなどのアプリケーションの場合
      • そのまま利用できる
      • 最新のバージョンを利用する
    • コンパイル言語を使用している場合
      • getting-startedを確認
    • コンテナ利用している場合
      • アーキテクチャごとに Docker イメージ作成
    • Windows Server でのアプリケーションの場合
      • Arm版が存在しないため利用できない
  • C/C++ におけるコンパイル時の注意
    • GCCのバージョン
    • Graviton2向けのコンパイルオプション
    • Large-System Extensions の活用
  • コンテナ利用時の注意
    • x86系とは互換性ない
    • マルチアーキテクチャ対応 Docker Image を作成
      • パイプライン作成を推奨

AWS におけるチップ開発の歴史と AWS Graviton3

  • AWSでは独自チップ開発を行なっている
  • 7年以上開発を行なっている
  • AWS Nitro System
    • 2017年11月発表
    • 仮想化オーバヘッドを低減
  • 第一世代 AWS Graviton
    • 2018年11月発表
    • Arm コア採用
  • AWS Graviton2
    • re::Invent 2019 発表
  • AWS Graviton3
    • re:Invent 2021 発表
    • DDR5 メモリ採用
    •  浮動小数点性能向上
    • ラックあたりのソケット密度向上
    • 現在、プレビュー版

最後に

AWS Graviton の歴史や利用した際のコストパフォーマンスについて把握することができるセッションでした。

特に、AWS Graviton への移行時の考慮すべき事項をまとめて確認でき、非常に参考になりました!

AWS Graviton の今後の開発も非常に楽しみで、ワクワクしました。

「AWS Gravitonの移行大変そう...」って思っている方は資料もあるので、ぜひチェックしてみてください!