AWS のベスト プラクティス

このセクションでは、ベスト プラクティスの概要と、AWS クラウドで OPDK を使用する際の推奨事項について説明します。

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

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

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

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

ネットワークの要件

Cassandra は、Gossip プロトコルを使用して、ネットワーク トポロジに関する情報を他のノードと交換します。Gossip が使用されていることと、Cassandra の分散的な性質(読み取りと書き込みのオペレーションのために複数のノードと通信することを含む)により、ネットワーク経由で大量のデータ転送が発生します。ネットワーク帯域幅が 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 要件を確認すると、Cassandra で挿入負荷の高いワークロードは、IO バウンドになる前に CPU バウンドになることに注意してください。つまり、すべての書き込みオペレーションは commit ログに送信されますが、Cassandra は非常に効率的であり、CPU が制限要因になります。Cassandra は同時実行性に優れ、可能な限り多くの CPU コアを使用します。

CPU とメモリのバランスが取れたインスタンス ファミリーを使用することをおすすめします。具体的には、AWS リージョンで利用可能な場合は C5 ファミリー インスタンスを使用し、フォールバック オプションとして C3 を使用することをおすすめします。両方のファミリーで、4xlarge が最良のコスト パフォーマンスを提供する最適なインスタンスもあります。

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

推奨事項の概要

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

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

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