Amazon Web Services ブログ

AWS Nitro SSD – I/O 集約型アプリケーション向けのハイパフォーマンスストレージ

私たちはお客様にとって難しい問題を解決するのが大好きです。 長年にわたって見てきたように、AWS のイノベーションにはさまざまな形態があり、ハードウェアとソフトウェアの両方が含まれます。

顧客主導型のイノベーションにおいて私のお気に入りの例の 1 つは、2018 年半ばに初めて書いた AWS Nitro System です。その記事では、Nitro System がこれまで以上に迅速にイノベーションを実現し、さらに多くの種類のワークロードを実行するインスタンスの作成を目標にしていることをお話ししました。また、ネットワークとストレージの I/O を高速化およびオフロードする Nitro Card、ハードウェアリソースをモニタリングおよび保護する Nitro Security Chip、非常に低いオーバーヘッドでメモリと CPU の割り当てを管理する Nitro Hypervisor など、当時の基本的な構成要素についても共有しました。

今日はもう一つの構成要素についてお話ししたいと思います。

AWS Nitro SSD
何十年もの間、従来のハードドライブ (冗談めかして回転錆ということもあります) が主要なブロックストレージデバイスでした。今でも回転錆は存在しますが、ほとんどの高性能ストレージは、より現代的なソリッドステートドライブ (SSD) をベースにしています。SSD を開くと、大量のフラッシュメモリと、メモリへのアクセスを管理し、ブロックマッピング、暗号化、キャッシング、ウェアレベリングなどの上位レベルの機能をサポートするファームウェア駆動型プロセッサが見つかります。

AWS クラウドの規模と、AWS クラウドがサポートするさまざまなお客様のユースケースから、今日のアプリケーション、データベースエンジン、およびオペレーティングシステムがブロックストレージを利用する方法について、貴重な洞察を得ることができます。その結果、数世代の EC2 インスタンスを提供したおかげで、より良い成果を上げるチャンスが見つかりました。私たちの目標は、I/O 集約型のワークロード (リレーショナルデータベース、NoSQL データベース、データウェアハウス、検索エンジン、分析エンジンなど) をより速く、より予測可能なパフォーマンスで実行できるようにすることでした。

今日は AWS Nitro SSD についてお話ししたいと思います。これらのデバイスの第 1 世代は、io2 Block Express EBS ボリュームに電力を供給するために使用され、大量の IOPS、十分なスループット、最大ボリュームサイズが 64 TiB の EBS ボリュームを提供できるようにしました。今日以前に書いた Im4gn インスタンスと Is4gen インスタンスは、第 2 世代の AWS Nitro SSD を利用しています。また、本日事前に発表した I4i インスタンスを含む将来の EC2 インスタンスの多くも同様です。

AWS Nitro SSD は、クラウド規模でインストールおよび運用できるように設計されています。これは、より多くのデバイスを製造してインストールするための簡単な作業に思えますが、現実ははるかに複雑で、かなり興味深いものです。前述のように、各デバイス内部のファームウェアは、多くの下位レベルの機能を実装する役割を担っています。お客様がデバイスを限界まで押し上げる場合、観察されたパフォーマンスの不一致を診断して解決できるという期待が私たちに向けられます。独自のデバイスを構築することで、運用上のテレメトリと診断のほか、ファームウェアの更新をクラウド規模とクラウドの速度でインストールできるメカニズムを設計できます。これをさらに進めて、信頼性とデバッグ能力をさらに向上させ、一貫したパフォーマンスを提供するために、インスタンスレベルのストレージを管理する独自のコードを開発しました。

パフォーマンス面では、クラウドのワークロードに対する深い理解から、デバイスを設計して、持続的かつ継続的な負荷の下で最大限のパフォーマンスを提供できるようにしました。SSD は、高速で高密度のフラッシュメモリから構築されています。この半導体メモリの特性上、各セルの書き込み、消去、書き換えは限られた回数しか行えません。デバイスを可能な限り長持ちさせるために、ファームウェアはウェアレベリングというプロセスを担当します。詳細はわかりませんが、これには論理ブロック番号から物理セルへの何らかのマッピングが含まれており、時間の経過とともにサイクル数が均等になると思われます。このプロセスにはハウスキーピング (ガベージコレクションの一種) が関係しており、さまざまな園芸品種の SSD は、膨大な書き込みを処理する際に予測できない時間に速度が低下する (レイテンシーが急上昇する) 可能性があります。また、データベースの専門知識を活用し、非常に高度でパワーフェイルセーフなジャーナルベースのデータベースを SSD ファームウェアに組み込んでいます。

第 2 世代の AWS Nitro SSD は、レイテンシーの急上昇を回避し、実際のワークロードで優れた I/O パフォーマンスを提供するように設計されています。当社のベンチマークによれば、新しい Im4gn や Is4gen などの AWS Nitro SSD を使用するインスタンスは、I3 インスタンスに比べて 75% 低いレイテンシー変動を起こし、より安定したパフォーマンスを提供しています。

これらすべてをまとめると、Nitro SSD を構築するチームは AWS ストレージチームの一部であり、運用上の責任も負っているため、非常にタイトで急速に回転するフライホイールが動作しています。AWS のすべてのチームと同様に、毎日メトリクスを確認し、CI/CD モデルを使用して新しいファームウェアを効率的にデプロイできます。

チームに加わる
いつものことですが、これからは常に革新が進むため、AWS Nitro SSD を設計するチームには素晴らしい職位がいくつか設けられています。以下に例を示します。

Jeff;

原文はこちらです。