[レポート] 次世代のAmazon EC2の強化 Nitroシステムの詳細 #CMP303 #reinvent
本記事は、AWS re:Invent 2019 の「CMP303-R2 Powering next-gen Amazon EC2: Deep dive into the Nitro system」についてレポートします。
セッション情報
スピーカー
- Ravi Murty - Principal Engineer, Amazon Web Services
- Anthony Liguori - Senior Principal Engineer, Amazon Web Services
セッション概要
The Nitro system is a rich collection of building block technologies that include AWS-built hardware offload and security components; it is powering the next generation of Amazon 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 see how it has made the seemingly impossible possible.
Nitroシステムは、AWSで構築されたハードウェアオフロードとセキュリティコンポーネントを含む、ビルディングブロックテクノロジーの豊富なコレクションです。 コンピューティング、ストレージ、メモリ、およびネットワークオプションの幅広い選択肢により、次世代のAmazon EC2インスタンスを強化しています。 このセッションでは、Nitroシステムを深く掘り下げ、その設計とアーキテクチャを調査し、革新的な新しいEC2インスタンスを可能にする方法を発見し、一見不可能に見える方法を確認します。
レポート
アジェンダ
- Nitro概要
- Nitroシステムの継続的なイノベーション
- 最近のリリース
- EC2フリートの管理
2年前
- 2017年10月にリリース
- 2013年から開発していた
- 専用のハードウェア/ソフトウェア
- AWS用に構築されたハイパーバイザー
- 新しいインスタンスの起動はすべてNitroシステムを使用
3つのパーツ
- Nitroカード
- VPC Networking
- Amazon EBS
- Instance Storage
- システムコントローラー
- Nitroセキュリティチップ
- マザーボードに統合
- ハードウェアリソースを保護
- Nitroハードウェアの信頼の基点
- Nitroハイパーバイザー
- 軽量なハイパーバイザー
- メモリとCPUの割り当て
- ベアメタルのようなパフォーマンス
Nitroカード
Nitroカード for VPC
- ENAコントローラー
- すべての主要なオペレーティングシステムで利用可能なドライバー
- 基本構造からの独立
- VPCデータプレーン
- カプセル化
- セキュリティグループ
- 帯域制限
- ルーティング
Nitroカード for EBS
- NVMeコントローラー
- 広く利用可能な標準ドライバー
- EBSデータプレーン
- 暗号化サポート
- NVMからリモートストレージプロトコル
Nitroカード for インスタンスストレージ
- NVMeコントローラー
- 広く利用可能な標準ドライバー
- インスタンスストレージデータプレーン
- 透過的な暗号化
- 帯域制限
- ドライブ監視
Nitroカードコントローラー
- システムコントロール
- パッシブAPIエンドポイントを提供
- 他のすべてのNitroカードを調整
- Nitroハイパーバイザーとの調整
- Nitroセキュリティチップと調整
- ハードウェアの信頼の基点
- 計測と証明を提供する
Nitroセキュリティチップ
- すべてのI / Oを不揮発性ストレージにトラップするカスタムマイクロコントローラー
- Nitroコントローラーから制御してシステムブートを保持
- ハードウェアベースのシンプルな信頼の基点を提供
Nitroハードウェアの信頼の基点
- Nitroカードにより根本的な簡素化が可能に
- 不揮発性ストレージへのすべての書き込みアクセスはハードウェアでブロック
- レガシーの欠如によるセキュリティの理解が簡単
Nitroハイパーバイザー
- カスタムMMと小さなユーザースペースを備えたKVMベースのハイパーバイザー
- インスタンスの代わりに、静止状態でのみ実行
- Nitroを使用することによって、ハイパーバイザーは高速かつシンプル
Nitroシステムによる継続的な革新
イノベーションのペースを加速
- 新しいアーキテクチャ:ARMおよびAMD
- より幅広いベアメタル製品
- 新機能と性能 - 100gネットワーク, EFA
- 新しい顧客機能を迅速に提供
- Nitroシステムにより、共通のコードベースを維持
ArmベースのアプリケーションのAWSサポート
- 2018: A1インスタンス: 仮想化
- 2019: A1ベアメタルと M6gインスタンスタイプ
- 大幅なコスト削減、より高い価格/性能
- 64ビットArm NeoverseコアとカスタムAWSシリコンを備えたAWS Gravitonプロセッサ
- Webサイトやeコマースサイトを含むスケールアウトワークロードに最適
コスト最適化されたコンピューティングのためのAMDインスタンス
- 2018: M5a と R5aインスタンスタイプ
- 2019: M5ad、R5ad、T3a
- コンピューティングとメモリを10%節約
- シームレスなアプリケーション移行
- 汎用およびメモリ最適化ワークロードに最適
新しいプロセッサー:Cascade Lake
- 2019: 2つの新しいサイズのC5、C5dインスタンス、およびC5ベアメタル
- 新しいC5インスタンスでリソースを33%増加 (CPU, メモリ)
- DL Boost (VNNI instaructions)
- HPC、ML、深層推論、分散分析、バッチ処理に最適
幅広いベアメタルインスタンスの選択
- 2017: i3.metal を生産中
- AWSでのVMwareクラウドの強化
- 2018: i3.metalのGA
- 2019: ベアメタルインスタンスタイプC、M、R、およびA1の幅広い選択
- EC2ファミリーの本格的なメンバー
100Gbpsネットワーク
- 2018: C5n 仮想化インスタンス
- 2019: C5n ベアメタル、M5n、M5dn、R5n、R5dn
- Amazon S3へのデータ転送を含む100Gbpsネットワークスループット
- 超低遅延のメッセージパッシング
- HPCワークロードおよび分散MLに最適
Elastic Fabric Adapter
- Libfabricと統合
- スケーラブルな信頼性のあるデータグラム(SRD)プロトコル
- 仮想化およびベアメタルの両方で利用可能なユーザースペースとカーネルスペース
- 2019: EFA on c5n.18xlarge, p3dn.24xlarge
HPC software stack in Amazon EC2
Amazon EC2のHPCソフトウェアスタック
AWSで密結合されたHPCアプリケーションをスケーリング
Accelerator instances
- 2019: G4
- 業界で最も費用対効果の高いGPUインスタンス
- NVIDIA T4 GPUs, custom Intel
- Cascade Lake CPU
- 100Gbpsネットワーク
- MLアプリケーションの展開およびグラフィックを多用するアプリケーション向けに最適化
ストレージ最適化インスタンス
- 2019: i3en仮想化とベアメタル
- SSDインスタンスストレージのGBあたりの最低価格
- EFAを有効にして、一貫性のある低ネットワーク遅延を実現
- 大量のデータへの高いランダムI / Oアクセスを必要とするアプリケーション向けに最適化
Nitro: Anywhere you need it
AWS Outposts
- Nitroハードウェアとソフトウェアをあなたのデータセンターに
- 標準のAWS APIおよびコンソールを介したアクセス
- AWSサービスを使用してアプリをAWS Outpostにデプロイ
EC2フリートの管理
課題
- AWSは世界中でさらにリージョンを追加し続けています
- EC2のフリートは成長を続けています。 私たちは毎日サーバーを追加しています
- いくつかの異なるアーキテクチャと多数のインスタンスタイプをサポート
- これらのサーバーにソフトウェアを迅速に展開するメカニズムが必要セキュリティパッチ、新しいインスタンス機能、パフォーマンスの改善など
解決策
- 必要なときにソフトウェアを迅速かつ安全に展開できる専用サービス
- 仮想化ソフトウェアスタックのほとんどは、Nitroカードにオフロードしている
- Nitroカードは、顧客インスタンスを中断することなく更新できる
- ハイパーバイザーを持たない仮想化サーバーとベアメタルサーバーの両方に対応
- アップデート速度の制御と厳密なスケジューリング。1日に1つのリージョンで1つのAZのみ
Nitro: ソフトウェアアップデート
- 制御された方法でサーバーに展開されたソフトウェア
- NitroハイパーバイザーとNitroカードは安全に更新される
- ユーザのインスタンスは、更新中も同じサーバーで実行し続ける
さいごに
AWSの基盤であるNitroシステムの仕組みの一端を知るとことができました。当たり前のようにインスタンスを利用していますが、裏側は革新的な仕組みになっていることがわかりました。