AWS のベスト プラクティス

このセクションでは、ベスト プラクティスを要約し、AWS クラウドで OPDK を使用するための推奨事項を示します。

Cassandra は、ほぼすべてのポリシーのバックエンドおよびデータストアとして使用され、Apigee Edge ランタイム環境の重要な部分です。このドキュメントでは、AWS 環境向けに Casssandra を最適化する方法について説明します。

ストレージと I/O の要件

ほとんどの Cassandra I/O は順次ですが、ランダム I/O が必要な場合もあります。たとえば、読み取りオペレーション中にソート済み文字列テーブルを読み取る場合です。SSD は、ランダム読み取りオペレーションに対して非常に低レイテンシのレスポンス時間を提供し、コンパクション オペレーションに対して十分なシーケンシャル書き込みパフォーマンスを提供するため、Cassandra に推奨されるストレージ メカニズムです。レプリケーションも考慮されます。

AWS EC2 の多くのインスタンスには、EC2 インスタンスがホストされているハードウェアにハードドライブが物理的に接続されているローカル ストレージが付属しています。本番環境で Cassandra を実行する場合は、SSD とインスタンス ストアの両方を活用することをおすすめします。複数の SSD を備えたインスタンス タイプを使用する場合は、RAID0 を使用してスループットとストレージ容量を増やすことができます。

ネットワークの要件

Cassandra は Gossip プロトコルを使用して、ネットワーク トポロジに関する情報を他のノードと交換します。Gossip の使用と Cassandra の分散性(読み書き操作のために複数のノードと通信する)により、多くのデータがネットワークを通じて転送されます。Apigee でインスタンス タイプを使用する際、ネットワーク帯域幅は最低でも 1 Gbps、本番環境のシステムでは 1 Gbps を超える帯域幅を用意することをおすすめします。

CIDR が /16 の VPC を使用します。AWS のサブネットは複数の AZ にまたがることができないため、Apigee では次のことをおすすめします。

  • アベイラビリティ ゾーン(AZ)ごとに 1 つのサブネットを作成する
  • Apigee のインストールに 3 つのプライベート サブネットを使用し、各 AZ に 1 つの Cassandra ノードを配置します。3 つのサブネットには、Cassandra クラスタの水平拡張に対応できる十分な CIDR ブロックが必要です。
  • Cassandra がソフトウェアのダウンロードとセキュリティ アップデートのためにインターネットと通信できるように、専用の NAT を使用して 3 つのパブリック サブネットを構成します。

従来のマスター / スレーブ アーキテクチャとは異なり、Cassandra はマスターレス アーキテクチャを採用しています。すべてのノードが同じ役割を果たすため、単一障害点はありません。高可用性を実現するために、Cassandra ノードを複数の AZ に分散することを検討してください。AZ 間でノードを分散することで、障害が発生した場合でも可用性と稼働時間を維持できます。

インスタンス ファミリーの選択

Cassandra の CPU 要件を確認する際は、挿入負荷の高いワークロードが IO バウンドになる前に Cassandra で CPU バウンドになることに注意してください。つまり、すべての書き込みオペレーションが commit ログに送られますが、Cassandra は書き込み効率が高いため、CPU が制限要因になります。Cassandra は同時実行性が高く、使用可能な CPU コアをすべて使用します。

Apigee では、CPU とメモリのバランスが取れたインスタンス ファミリーを使用することをおすすめします。具体的には、AWS リージョンで利用可能な場合は C5 ファミリー インスタンスを使用し、フォールバック オプションとして C3 を使用することをおすすめします。場合によっては、4xlarge が両方のファミリーで最適なインスタンスであり、最高の費用対効果を実現します。

Apigee では、Cassandra インスタンスにデフォルトのテナンシーを使用することもおすすめします。AZ あたり 1 つ以上のインスタンスにスケーリングする場合、テナンシーを専用に設定すると、すべての Cassandra インスタンスが同じ基盤となるハードウェアに配置される可能性が高くなります。ハードウェア障害が発生すると その AZ のインスタンスがすべて失われます

最適化案の概要

次の表に、Apigee Edge for Private Cloud で AWS を使用する場合の Apigee の推奨事項をまとめます。

インスタンス ファミリー C5d(推奨)または C3
インスタンス タイプ C(x).4xlarge
インスタンスストア RAID0 を使用した SSD(ローカル ストレージ)
テナンシー タイプ デフォルト
ノードの配置 AZ ごとに 1 つの Cassandra ノード
VPC とサブネット AZ ごとに 1 つのサブネット、リージョンごとに 1 つの VPC

詳細については、Amazon インスタンス タイプをご覧ください。