[レポート] CMP303: 新世代EC2インスタンス基盤 Nitro システム詳解 #reinvent

re:Invent 2018 にて公開されたセッション「Powering Next-Gen EC2 Instances: Deep Dive into the Nitro System」をレポートします。
2018.12.06

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

AWS re:Invent 2018 にて 11/27 (現地時間)に行われた下記セッションをレポートします。本セッションはリピートセッションが設定されていて、本記事は主に CMP303-R1 セッションを聴講した内容を元に書いています。

セッションタイトル

  • CMP303 Powering Next-Gen EC2 Instances: Deep Dive into the Nitro System

概要

セッション概要より抄訳:
Nitroシステムは、ハードウェアオフロード機能やセキュリティコンポーネントなど沢山の技術の集合体です。このセッションでは、Nitro が如何にして EC2 インスタンスに革新をもたらし、不可能を可能に変えてきたかを詳解します。

The Nitro system is a rich collection of building block technologies that include hardware offload and security components built on AWS. It is powering the next generation of EC2 instances with an ever-broadening selection of compute, storage, memory, and networking options. In this session, we deep dive into the Nitro system, explore its design and architecture, discover how it enables innovative new EC2 instances, and understand how it has made the seemingly impossible, possible.

Speaker

  • Anthony Liguori - Sr. Principal Engineer, EC2

資料

なお昨年の re:Invent のセッションも参考になります。以下は拙記事ですが、よければあわせてご覧ください:

内容

今後 10年、もし我々が得た知見の全てを EC2 へ注ぎ込んだとしたら、ハイパーバイザはいったいどんな姿になるだろう

Nitro のこの 1年

  • 2017/11 リリース
  • 開発開始は 2013年
  • 現在、全ての新しいインスタンスタイプは全て Nitro
  • 特別に用意されたハードウェアとソフトウェア
  • AWS のために拵えられたハイパーバイザ

3つのパーツ

  • Nitro Cards
    • VPC ネットワーク
    • EBS / インスタンスストレージ
    • システムコントローラ
  • Nitro Security Chip
    • マザーボードと統合
    • ハードウェアリソースの保護
    • 「Root of Trust(信頼の頂点)」にあたるハードウェア
  • Nitro Hypervisor
    • 「ちょっと他にはないくらいの」軽量ハイパーバイザ
    • メモリとCPU資源の割当
    • ベアメタルにひっ迫するパフォーマンス

Nitro Card

Nitro Card のネットワーク(VPC)

  • ENA コントローラ
  • VPC データプレーン
    • 通信パケットのカプセル化
    • セキュリティグループ(HWオフロード)
    • 帯域制限
    • ルーティング

Nitro Card のストレージ(EBS / インスタンスストレージ)

  • NVMe コントローラ
  • EBS データプレーン
    • 暗号化サポート
  • インスタンスストレージ データプレーン
    • 透過的暗号化
    • 帯域制御
    • 一時期インスタンスストレージがなかった
      • ネットワークの高速化により再度復活できた
      • PCIeと類似の技術で構成

Nitro Card コントローラ

  • システムのコントロール
    • 受動的なAPIエンドポイントの提供
    • 他の全ての Nitro Card / ハイパーバイザ / セキュリティチップとの調停
  • Root of Trust
    • 計測と認定情報を提供

Nitro セキュリティチップ

  • 全ての I/O を仲介するカスタムコントローラ
  • システムブートに介入するため、Nitro コントローラを操作可能

シンプルでハードウェアベースの「root of trust」を提供

UEFI セキュアブートとの比較

  • UEFI は「 untrusted 」状態から始まる
  • 非常に複雑(サポートすべき対象が多いため)

Nitro ハイパーバイザ

  • KVMベース・軽量
  • インスタンスの動作に必要なときだけ動作する
  • レスポンスのベンチマーク
    • C4世代と比べてジッタが非常に低い
    • i3.metalと比較してわずかに上昇

継続的な発展

  • インスタンスストレージのタイプ追加
    • C5d, M5d, R5d
    • NVMeベース
  • ベアメタル
    • i3.metal
  • コスト最適化のための AMD インスタンス
    • AMD EPYC
  • 100Gbps
    • C5n
  • ARMベース
    • A1
  • Firecracker マイクロVM
    • サーバーレスのベースにNitroを使う
    • 仮想化〜コンテナ〜FaaSの様々なギャップを埋める
  • Firecracker オープンソースプロジェクト
  • AWS Outposts
    • 長年顧客から要望が多かった
      • 〝Super low latency〟
    • Nitroが必要な全ての人の元へ

所感

昨年の同系列セッションは「 Nitro 登場」という感じでしたが、今年は Nitro がどんどん実用されているという話だったと思います。一方で Jitter についてのベンチマークなど、興味深い情報開示も行われました。

最後の方で、FaaS や Fargate は Nitro が可能としたサービスだというような話もありましたし、AWS Outposts も Nitro のシンプルさがあって初めて動かせたプロジェクトという話でした。ここ最近のオンプレ - クラウド間の利便性の状況改善もこのための地盤固めと思えますし、今になって考えてみると、Snowball Edge も中身は小型 Outposts なのかなと想像できます。

AWS の新サービスも楽しみなのですが、それを実現する新ハードウェアの話はもっと楽しみなので、これからも注目していきたいと思います!