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

AWS Graviton2 インスタンスのご紹介

AWS Graviton2 インスタンスのご紹介

AWS独自のArmベースプロセッサであるAWS Graviton2の概要と、移行のための方法、そしてRDSやElastiCache、EMRなどマネージドサービスも含めたエコシステムの拡大についてご紹介しています。

こちらは以下のイベントでの紹介資料です。
Compute x AWS Graviton2 「Armプロセッサによるコスト最適化」
https://awsj-compute.connpass.com/event/189336/

Daisuke Miyamoto

October 22, 2020
Tweet

More Decks by Daisuke Miyamoto

Other Decks in Technology

Transcript

  1. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Specialist Solutions Architect, HPC Daisuke Miyamoto 2020/10/22 Compute x AWS Graviton2 AWS Graviton2 インスタンスのご紹介 #awsjpcomputefes
  2. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 自己紹介 ❏ 名前 宮本 大輔 (みやもと だいすけ) ❏ 所属 アマゾン ウェブ サービス ジャパン 株式会社 技術統括本部 Specialist Solutions Architect, HPC ❏ 好きな AWS サービス ❖ AWS ParallelCluster ❖ Amazon FSx for Lustre ❖ AWS Snowball シリーズ
  3. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 本日の概要 • Amazon EC2とは • AWS Graviton2 の概要 • AWS Graviton2 への移行ガイド • 拡大する AWS Graviton2 エコシステム で[検索] Blackbelt graviton2 更に詳しく知りたい方は https://aws.amazon.com/jp/blogs/news/webinar-bb-aws-graviton2-2020/
  4. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon EC2 とは
  5. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 仮想サーバサービス Amazon EC2 (Elastic Compute Cloud) • 必要なときに必要な計算リソースを確保可能な仮想サーバサービス • 数分で起動し、秒単位の従量課金(一部タイプについては1時間単位) • ワークロードに応じて様々なインスタンスタイプを選択可能 • インスタンスを停止するだけでマシンスペック変更が可能 M5 汎用 コンピューティング 最適化 ストレージ・IO 最適化 GPU ・FPGA アクセラレーテッド メモリ最適化 X1 F1 P3 G4 T3 D2 I3 H1 R5 C5 インスタンスタイプ一覧と分類 Z1d
  6. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. Amazon EC2 で選択できる高性能CPUの選択肢 アプリケーションとワークロードに応じて 最適なコンピューティング環境を選択 Intel Xeon processor (x86_64 arch) 最大3.9GHz駆動 Cascade Lakeコア搭載 C5インスタンス AMD EPYC processor (x86_64 arch) 最大3.3GHz駆動 Romeコア搭載 C5aインスタンス AWS Graviton Processor (64-bit Arm arch) 64bit Arm Neoverse N1ベース Graviton2 CPU搭載 C6gインスタンス
  7. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. EC2 購入オプション オンデマンドインスタンス 長期コミット無し、使用分への支払い(秒 単位/時間単位)。Amazon EC2の定価 スパイクするようなワーク ロード リザーブドインスタンス (Savings Plans) 1年/3年の長期コミットをする代わり に大幅なディスカウント価格 一定の負荷の見通しがある ワークロード スポットインスタンス Amazon EC2の空きキャパシティを 活用し、最大90%値引き。中断が発 生することがある 中断に強く、かつ様々なイ ンスタンスタイプを活用で きるワークロード ワークロードに合わせて購入方法を選択することで コスト効率よくEC2を利用可能に
  8. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Graviton2 とは
  9. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. Arm アーキテクチャ とは? ARM Ltd により設計・ライセンスされるプロセッサコアのアーキテクチャ ARM Ltd は自社では製造を行わず、ライセンスを受けた他社が製造 • 高い消費電力性能 • 累計出荷数 1,500 億個以上(2018年時点)という実績 • 組み込みからスマートフォン、サーバ向けまで幅広く活用多くの採用実 績による豊富なエコシステム Arm アーキテクチャの採用により よりコストパフォーマンスの高いインスタンスを提供できるのではないか
  10. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. Annapurna Labs によるチップ開発の歴史 I/O Accelerator Card Nitro Card 5+ years of innovation with Annapurna Labs AWS Graviton, Inferentia
  11. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 第一世代 AWS Graviton プロセッサ 64-bit Arm コア採用AWSカスタム チップ、16 物理コア搭載 顧客からのフィードバックのもと Arm エコシステムの醸成に貢献 A1 インスタンスファミリーとして ローンチ
  12. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. re:Invent 2019 – Graviton2 搭載 M6g, R6g, C6g 発表
  13. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. AWS Graviton2 プロセッサ AWS が独自に設計した Arm Neoverse N1 コア採用のCPU • 1 チップに 64 物理コアを搭載 • 7 nm プロセスルール、300億トランジスタ • 前世代 AWS Graviton と比較して 4 倍の vCPU 数、7 倍の CPU 性能
  14. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. AWS Graviton2 プロセッサ搭載インスタンスファミリー M6g 汎用 4GB DRAM/vCPU C6g コンピューティング最適化 2GB DRAM/vCPU R6g メモリ最適化 8GB DRAM/vCPU 全てGA済み ! M6g/C6g/R6gは、東京リージョンを含む10のリージョンで利用可能 M6gd/C6gd/R6gdは、4つのリージョンで利用可能 ワークロードに応じた多様なインスタンスファミリーを提供 ローカルNVMe SSD ストレージを搭載したバリエーション 汎用 (M6gd), コンピューティング最適化 (C6gd), メモリ最適化(R6gd) ベアメタルタイプ (M6g.metal, M6gd.metal, C6g.metal, C6gd.metal, R6g.metal, R6gd.metal)
  15. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. AWS Graviton2 搭載 EC2 T4gインスタンス バースト可能な汎用インスタンス T3インスタンスと比較し最大40%優れた価格性能を提供 2020年12月31日まで毎月 t4g.micro 750時間分の無料トライアルを実施 https://aws.amazon.com/jp/blogs/news/new-t4g-instances-burstable-performance-powered-by-aws-graviton2/
  16. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. AWS Graviton2 搭載インスタンスの利点 コスト: • x86 系インスタンスの同サイズと比較した場合、約 20 % 安価 • 例: m5.16xlarge: 3.968 USD/hour m6g.16xlarge: 3.168 USD/hour パフォーマンス: • x86 系インスタンスでは 2 vCPU = 1 物理コア だが、 Arm 系インスタンスは 1 vCPU = 1 物理コア であり、 同インスタンスサイズでは 2 倍の物理コアが利用可能 • 例:m5.16xlarge: 64 vCPU = 32 物理コア m6g.16xlarge: 64 vCPU = 64 物理コア Webサーバ、コンテナ基盤、BigData処理、HPC、機械学習等様々なベンチマークで 既存の x86 系インスタンスと比較して約 40 % のコストパフォーマンス向上 * All SPEC scores estimates, compiled with gcc v9 -O3 -march=native, run on largest single-socket size for each instance type tested.
  17. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. AWS Graviton2 搭載インスタンス利用時の注意点 x86 系インスタンスとはアーキテクチャが異なるため、OS やアプリケー ションを Graviton2 のために用意する必要がある • Arm 専用の AMI (Amazon Machine Image)からインスタンスを起 動する必要がある • Windows は未サポート(Linux上で.NET Coreは利用可能) • x86 系インスタンスからのインスタンスタイプの変更は不可能 • 自作のアプリケーションやパッケージマネージャで提供されていない アプリケーションについては、コンパイルを行う必要がある • Arm 未対応の商用アプリケーションは利用できない • 1 物理コアしか使用しないアプリケーションでは x86 系インスタンス より遅くなる可能性がある
  18. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. まとめ: AWS Graviton2 • AWS Graviton2 プロセッサ搭載インスタンスファミリー M6g/C6g/R6g/T4g 等が利用可能 • Amazon EC2では同サイズの x86 系インスタンスと比較し、 約 20 % 安価な価格設定及び、2 倍の物理コアが利用可能であり 様々なワークロードで 約 40 % のコストパフォーマンス向上 • 利用にはアプリケーションの Arm 対応が必要となる点には注意が必要
  19. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Graviton2 への移行ガイド
  20. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. AWS Graviton getting-started Graviton/Graviton2利用時に最初にご確認いただきたいドキュメント • 推奨コンパイルオプション • OS サポート情報 • 各種アプリケーションでの 推奨バージョン、設定 • デバッグ・プロファイル • 言語別考慮事項 • etc.. https://github.com/aws/aws-graviton-gettting-started
  21. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. C/C++ におけるコンパイル時の注意点 GCCのバージョン • GCC 9以降を推奨 GCC における Graviton2 向け推奨コンパイルオプション: • -march=armv8.2-a+fp16+rcpc+dotprod+crypto Large-System Extensions の活用: • Graviton2 では、LSE (Large-System Extensions) をサポートしており、 POSIX thread における高速なスレッド間同期などを提供 • アプリケーションに加え、OSレベルでのサポートも必要。 現在は Ubuntu 20.04以降、Amazon Linux2 2.26-35以降、RHEL 8.2以降が LSE に対応 https://github.com/aws/aws-graviton-getting-started/blob/master/os.md • HPCアプリケーション等でのOpenMP利用時にも効果が大きい
  22. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. Arm Performance Libraries の利用 Arm Neoverse N1 向けに最適化された数学系ライブラリを無償で提供 • BLAS, LAPACK, FFT, Sparse Linear Algebra, libmath • RHEL, SUSE Linux Enterprise Server, Ubuntu をサポート • GCC 7.1/8.2/9.3 に対応 https://developer.arm.com/tools-and-software/server-and-hpc/downloads/arm-performance-libraries
  23. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. Java 利用時の注意点 • 基本的には 同一の バイナリで動作するが、暗号化や圧縮のライブラリについ ては、高速化のためにネイテイブライブラリを使用している場合もある その際はマルチアーキテクチャ向けにビルドし直す必要がある 例:https://github.com/aws/aws-graviton-gettting-started/blob/master/CommonNativeJarsTable.md • JDKのバージョンやディストリビューションによっても性能に影響を与える OpenJDK 11 及び Corretto 11 でベンチマークを行うことを推奨 参考:Arm Treasure Data 様による A1 での Presto ベンチマーク https://prestosql.io/blog/2019/12/23/Presto-Experiment-with-Graivton-Processor.html
  24. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. Graviton2 でのコンテナの利用方法 • Graviton2 上で Docker を利用することは可 能(イメージの作成・実行等) • ただし、Image内の実行ファイルは、 arm64とamd64 (x86_64) で互換性が無く、 アーキテクチャごとにImageを作成するこ ととなる • DockerHub では現在主要な Image につい ては、aarch64 向け Image が公開済み • Elastic なども Elasticsearch の aarch64 向 け公式イメージを提供 https://hub.docker.com/u/aarch64/
  25. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. マルチアーキテクチャ対応 Docker Image 作成方法 • Docker の Manifest 機能を使用することで、単一のレポジトリで、複数の アーキテクチャをホストする事が可能(ECR対応済み) • Dockerの Experimental 機能である buildx サブコマンドにより、QEMU を 使用して、amd64 環境でも aarch64 用イメージの作成が可能 • AWS CodeBuild では Arm タイプを選択可能であり、aarch64 ビルドが可能 https://aws.amazon.com/jp/blogs/containers/introducing-multi-architecture-container-images-for-amazon-ecr/
  26. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 機械学習アプリケーション 機械学習ワークロードでは、TensorFlowなどの各種フレームワークが Arm に 最適化されておらずパフォーマンスが得られない場合がある → オープンソースの Deep Learning コンパイラである Apache TVM を活用し、 Arm に最適化されたコードを出力(NEON対応、FP16対応等) https://tvm.apache.org/2017/10/06/nnvm-compiler-announcement
  27. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. AWS Graviton2 移行ガイド 2020年秋版 現在利用しているアプリケーションによって、複数の移行パターンが存在 • アプリケーションがyum/aptなどのパッケージマネージャから取得できる場合 • まずはパッケージマネージャからインストールを行い、評価を実施 • 要件を満たすパフォーマンスが得られない場合は、ソースコードからのコンパイル を検討 • C/C++ でアプリケーションが記述されている場合 • Arm64向けにコンパイルしなおす必要がある • getting-started 推奨コンパイルオプションを使用 (特に16xlarge等の大きなインス タンス利用時にはLSEに注意) • PythonやRubyなどのスクリプト言語や Java、.NET Core環境でアプリケーショ ンが記述されている場合 • 基本的にはそのまま利用する事が可能だがパフォーマンステストは行う必要がある • 実行環境のアップデートにより最適化・LSE対応により性能が向上する場合も • 高速化のためにネイティブバイナリが使用されているケースに注意
  28. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. © 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 拡大する AWS Graviton2 エコシステム
  29. © 2020, Amazon Web Services, Inc. or its Affiliates. AWS

    における Arm エコシステム Operating Systems Red Hat Enterprise Linux 8.2+ SLES 15 18.04LTS, 20.04LTS Debian Amazon Linux 2 Containers Docker Desktop Community Docker Enterprise Engine Amazon Elastic Container Service (Amazon ECS) Amazon Elastic Container Service for Kubernetes (Amazon EKS) Amazon Elastic Container Registry (Amazon ECR) Firecracker (MicroVMs) Bottlerocket (Container OS) (github.com/firecracker-microvm) (github.com/bottlerocket-os) Tools and software AWS Marketplace Amazon Corretto OpenJDK AWS Systems Manager Amazon CloudWat ch Amazon Inspector AWS Batch AWS Cloud9 AWS CodeBuild AWS CodeComm it AWS CodePipel ine
  30. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. AWS のコンテナ系サービスにおける Graviton2 対応状況 多くのコンテナ系サービスでGraviton2に対応済み (Arm アーキテクチャ用コンテナイメージが必要) • Amazon ECS: 対応済み • Amazon EKS: 2020年7月7日現在パブリックプレビュー中 → 8月17日より一般提供開始 (同時に単一クラスタ内でのアーキテクチャ混在にも対応) https://aws.amazon.com/jp/about-aws/whats-new/2020/08/amazon-eks-support-for-arm-based-instances-powered- by-aws-graviton-now-generally-available/ https://aws.amazon.com/jp/blogs/containers/eks-on-graviton-generally-available/ • Amazon ECR: マルチアーキテクチャレジストリに対応 • AWS Batch: 対応済み • AWS CodeBuild: Arm イメージを選択可能
  31. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. Amazon RDS が AWS Graviton2 をサポート MySQL 8.0.17以降、MariaDB 10.4.13以降、PostgreSQL 12.3以降に対応、またAmazon Auroraへの対応も発表済み AWS Graviton2 によるメリット • Multi-AZ構成やスナップショットなど、RDSの機能が同じように利用可能 • ModifyDBInstance APIによりx86系 <->Graviton2系インスタンス間の変更も可能 • Performance Insightなど一部未対応の機能もある • 同一タイプのx86系インスタンスと比較して約10%安価な価格設定 • 同一タイプのx86系インスタンスと比較してより高い最大EBSスループット • デフォルトでメモリの暗号化に対応 • パフォーマンスは最大 35% 向上、コストパフォーマンスでは最大 52% 向上 (コンピューティングとメモリ要件に関するさまざまな特性を持つワークロードの社内テストによる) パフォーマンス特性が異なる可能性があるため、事前のテストは必須だが Arm ベースであることを直接意識せずにコストメリットを享受 https://aws.amazon.com/jp/blogs/news/new-amazon-rds-on-graviton2-processors/
  32. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. その他AWS サービスでの対応 Amazon ElastiCache https://aws.amazon.com/jp/about-aws/whats-new/2020/10/amazon-elasticache-now-supports-m6g-and-r6g-graviton2-based- instances/ • 前世代のインスタンスに比べ最大 45% のコストパフォーマンスの向上 • Redis 5.0.6以降、Memcached 1.5.16以降でサポート • 新規作成時には Graviton2 (cache.r6g.large)がデフォルトの選択肢に Amazon EMR https://aws.amazon.com/jp/about-aws/whats-new/2020/10/amazon-emr-provides-lower-cost-improved-performance/ • Spark ワークロードのコストを最大 35% 削減し、パフォーマンスを最大 15% 向上 • EMR専用ランタイムの利用も可能で、更なるコストパフォーマンスが得られる
  33. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. 拡大し続ける Arm エコシステム Jenkins GitLab Drone.io GitHub GitHub Actions Travis CI Chef Nginx+ Honeycomb AWS CodeDeploy CrowdStrike DataDog Rapid7 Qualys Tenable
  34. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. CI/CD 環境の arm64 サポート 様々なCI/CD環境が arm64 をサポート • AWS CodeBuild • Azure Pipelines • Github Actions • GitLab • Jenkins • Drone.IO • Travis CI • CircleCI (Preview) https://community.arm.com/developer/tools-software/tools/b/tools-software-ides- blog/posts/continuous-ci-cd-momentum-for-arm-architecture
  35. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. Customer’s Voice from nulab nulab 様ではチャットツールである Typetalk で使用しているEC2インスタンスをすべて Graviton2ベースのものに移行 レスポンスタイムの改善に加え、EC2コス トが30%低下 https://aws.amazon.com/ec2/graviton/ nulab様での詳細な検証結果はこちら: https://nulab.com/ja/blog/typetalk/typetalk-ec2-graviton2-migration/
  36. © 2020, Amazon Web Services, Inc. or its Affiliates. All

    rights reserved. まとめ • Amazon EC2 では、ワークロードに合わせた多様なインスタンスタイプの選択や 購入オプションによりコスト効率よく処理を行う事が可能 • AWS Graviton2では、M6g/C6g/R6g/T4gに加え、NVMeストレージ搭載版など多 様なインスタンスタイプを提供済み • AWS Graviton2 により、Webサーバ、コンテナ基盤、BigData処理、HPC、機械 学習等様々なワークロードで、約40%のコストパフォーマンス向上が確認されて いる • AWS Graviton2 を取り巻くエコシステムはまさに拡充中 PoC実施の際は最新の情報をご確認いただくか、担当のAWSソリューションアー キテクトにご相談ください 是非この機会に、AWS Graviton2 も含めて AWS コストの最適化を考えてみませんか? Getting Started https://github.com/aws/aws-graviton-gettting-started Black Belt Online Seminar: AWS Graviton2 https://aws.amazon.com/jp/blogs/news/webinar-bb-aws-graviton2-2020/