[レポート] CMP391 ARMアーキテクチャのEC2: A1インスタンスが登場 #reinvent

新発表のARMアーキテクチャを採用した新しいEC2インスタンスタイプ、A1についての紹介セッションです。新開発のAWS Graviton Processorを搭載し、コスト効率に優れたインスタンスタイプとのことです。
2018.12.05

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

re:Invent 2018で発表になった、ARMアーキテクチャを採用した新しいEC2インスタンスタイプ、A1についての紹介セッションを聴講してきましたのでレポートします。新開発のAWS Graviton Processorを搭載し、コスト効率に優れているとのことです。ソフトウェアについても、移行はスムーズに可能とのことです。ユーザー事例として写真ストレージサービスのSmugMug(Flickrを買収したところ)。そしてデモでは、通常のアプリケーションのほか、なんとAndroidがA1インスタンスで稼働している様子が紹介されました。

公式ページのセッション概要を引用します。

Amazon EC2 offers a comprehensive set of instances targeted at a variety of customer workloads optimized across compute, storage, memory, network, as well as accelerators, such as GPUs. For the first time, Amazon EC2 is introducing instances that are powered by CPUs custom built by Amazon on the Arm architecture. In this session, we will deep dive into Amazon EC2 A1 instances and learn about the key capabilities, target usages, benefits, and the overall ecosystem.

スピーカー

  • Ali Saidi - Principal Engineer, AWS
  • Sudhir Raman - Sr Product Manager, AWS
  • Shane Meyers - Principal Production Engineer, SmugMug

セッション動画

本レポートのスライドは上記動画からの引用しました。

アジェンダ

  • Introducing new Amazon EC2 A1 Instance
  • Workloads and usages
  • Customer Use case: SmugMug
  • Software Ecosystem and demos
  • Summary

セッションメモ

EC2おさらい

  • Resouces
    • Instances/Storage/Networking
  • Availability
    • Regions and AZ/Placement Groups/Load Balancing/Auto Scaling
  • Management
    • Deployment/Monitoring/Administration
  • Purchase Option
    • On Demand/Reserved/Spot
  • 幅広くしかも深いプラットフォームの選択肢
    • 175 instance types
  • プロセッサーとアーキテクチャの選択肢
    • Intel Xeon Scalable (Skylake)
    • AMD EPYYC(最近発表したばかり)
    • AWS Graviton Processor

AMD EPYCについては下記を参照してください。

Annapluna Labによるカスタムチップ設計

  • 数年前に買収
  • AWS向けのカスタムシリコン設計
    • IO: ストレージとネットワークをオフロードするNitroカード
    • 新発表のC5nインスンタンスにて100Gを可能にした
    • もちろんHPCインターコネクト
  • 新しいチャレンジ:Graviton Processor
    • この月曜に発表したばかり
    • 広範囲のワークロードに対応する汎用目的のプロセッサ
    • しかし、能力やコストに違ったトレードオフがある
    • さまざまなレイヤでの革新を促す、イテレーションとフィードバックのために、直接顧客に利用してもらう

  • Nitroビルディングブロック
    • 昨年発表。これにより66インスタンスタイプが登場
    • A1インスタンスタイプは同じモジュラービルディングブロックを採用している
    • 三つのコンポーネント
      • Nitro Hypervisor, Nitro Card, Nitro Security Chip
    • C5,M5,R5インスタンスに提供されるEBS, ENAデバイス、そしてセキュリティコンポーネントなど同じものがA1にも提供されている

A1インスタンス

  • 利用可能なのは4リージョン: N.Virginia, Ohio, Oregon, Ireland
  • AWS Graviton Processorを採用した最初のインスタンス
  • Scale-outアプリケーション用に最適なコスト/パフォーマンス

    • 従来のEC2と同様のフレキシビリティを保ちつつ
    • 汎用ワークロードに対して最大45%コスト削減
    • 新世代64ビットARMコア、AWS独自設計チップ

  • 汎用目的向けインスンタンスタイプ

    • スパイクのあるワークロードにはT3
    • メモリやCPU、特にx86アーキには、M5
  • A1インスタンスのターゲットアプリケーション
    • Web Tier
    • コンテナ化されたマイクロサービス
    • 分散キャッシュやデータベース
    • ARMをクラウドで使えることは、開発者、エンスー、教育にもアピール
  • 5つのインスタンスサイズ
    • medium ~ 4xlarge
    • RIやスポットインスタンス、専有(dedicated)インスタンスにも対応

顧客事例:SmugMug

  • Safe beautiful home for all photos
  • 数百のEC2, ペタバイトのS3, 画像処理にGPUを多く使用
  • 2018秋にFlickrを買収

  • A1へのマイグレーション
    • PHP, Nginx, HAProxy, Ubuntu, Puppet
    • Ubunto 14.04 Trusty は、16.04以上にする必要があったが 18.04 Bionic を選択
    • EC2インスタンスを管理するためのPuppetは 3.4 から5.4へ移行
    • カスタムパッケージはすべてARMへリコンパイル
    • ARMをサポートするためいくつかのパッケージを新しくする必要があった

  • キーポイント
    • コスト削減:コアあたり40%以下。価値を顧客に届けるために価格は重要。使わない手はない。
    • 見かけと使い勝手は他のインスタンスタイプと同じ
    • 99%の作業はOSの18.04へのアップグレード。ARMサポートのための作業はごくわずか
    • ARMサポートのためにサードパーティと協力して作業
    • PhotoServeティアのための有力な候補となっている
    • プロファイルを取ったところ暗号化処理やその他多くの処理はIntelより速い。しかしいくつかの作業では遅い場合もある。
    • ニーズに合わせて適切なプロセッサタイプを選ぶべきだ

  • 予定
    • 可能なA1へのマイグレーションをワークロード別にテスト
    • 適切なタスクをA1にマイグレート
    • さらなるコスト削減へA1のスポットマーケットを活用

Software Ecosystem

  • OS: Amazon Linux, Ubuntu 16.04, 18.04, RedHat, Fedora が既にサポート
    • PHPやNginx, Ruby, Python, MariaDBなどほとんどのパッケージはaptやyumでインストール可能
  • コンテナ
    • 多くのイメージが公式にARM64対応している
    • ECSとECRは対応済み。EKSは近日対応予定
  • ツール
    • System Manager, CloudWatch, Cloud9, CodePipeline
    • OpenJDK実装であるAmazon Correttoは近日利用可能になる予定

デモ

  • A1の使い方
    • AMCで、AMIの選択肢にラジオボタンが追加されてARMが選択できる
    • A1の5インスタンスタイプが選択できるようになる
    • あとのウィザード画面は他のインスタンスタイプと全く同じ
    • Nginxをインストールしてみます。まったく同様に動作します。
    • dockerをインストール。イメージも同様に透過的に使えます
  • AndroidゲームをA1インスタンスで動かす
    • Canonicalにより開発

アーキテクチャ図

  • LXDコンテナからグラフィカル出力をストリーム
  • 同じA1インスタンスで、それぞれAndroidが平行動作する10個のLXDコンテナ
  • Jujuはコマンド一発ですべてのソフトウェアスタックを自動的にデプロイ
  • Androidデバイス向けのAPKをアップロード

ゲームの画面

10個のコンテナが動作

  • RHEL7.6デモ
    • お天気に関するツイートのセンチメントを絵文字で地図上にマッピング
    • A1インスタンス上で動作するKubenatesノード
    • Twitter APIで取得、解析してSQLDBにストア、ユーザにWebで提供
      • kubectlで簡単にデプロイする様子をデモしていました
    • オープンソースのパッケージであれば従来とまったく同様に堅牢に利用可能

まとめ

  • EC2 A1インスンタンスは新しいAWS Gravitonプロセッサにより動作
  • AWS GravitonプロセッサはAWSによるカスタム設計で新世代の64ビットARMコア
  • A1インスタンスはスケールアウトとARMベースのワークロードに対するコストメリットを提供
  • ドキュメントとFAQはこちら https://aws.amazon.com/ec2/instance-types/a1

さいごに

AWS Gravitonプロセッサを採用したA1インスタンスですが、他のEC2インスタンスタイプと同様に利用できることが顧客事例やデモで丁寧に解説されました。コストメリットが最大の特徴ですが、AndroidアプリケーションがA1インスタンス上で稼働するデモには驚きました。APKファイルがそのままインストール可能で、コンテナで同時に10個同時に稼働可能とは。開発やテストに威力を発揮するのではないかと感じられました。

参考