rights reserved. 本セッションについて White paperをベースに各章、項⽬の紹介・解説をします。 CassandraやAWSの各サービス⾃体の解説はあくまでも 簡単に、AWS環境で重要となるポイントについて紹介・解 説を⾏いますので、Cassandraのベースとなる知識につい てはある程度理解しており、AWS環境でのクラスタ構築を ⾏う⽅などが対象となります。
rights reserved. 「Apache Cassandra on AWS」について Migration into AWS Analytics on Cassandra with Amazon EMR Optimizing Data Transfer Costs Benchmarking Cassandra Using the Cassandra Quick Start Deployment
rights reserved. NoSQL on AWS AWS上ではフルマネージドサービスでデータストアを利⽤することも出来、 要件に合わせてOSSプロダクトを⾃分で構築・運⽤する事も可能です。 ここでは代表的な例としてフルマネージドサービスではNoSQLデータストア としてDynamoDB、オブジェクトストレージとしてS3がどのような特徴を持 ち、⾼可⽤性とスケーラビリティを提供出来ることを説明。
rights reserved. CPU Requirements CassandraはCPUバインドな処理が⾮常に多い事と、そのアーキテクチャから 多くのCPUコアがあるマシンは有効に利⽤出来る。 AWS環境で書き込みが多い場合は最低でもvCPUが4個以上あるインスタンス を選択する事をここでは推奨。但しあくまでも初めの選定の⽬安で、必ずワー クロードテストをして最終決定を。
rights reserved. Planning Cassandra Clusters on AWS 実際にAWS上でクラスタを設計する上で重要となる要素として • Planning Regions and Availability Zones • Planning an Amazon Virtual Private Cloud • Planning Elastic Network Interfaces • Planning High-Performance Storage Options • Planning Instance Types Based on Storage Needs という項⽬毎にどのような注意点が必要か
rights reserved. Planning Regions and Availability Zones この項⽬ではまずリージョン、AZについて説明。 http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/using-regions-availability- zones.html
rights reserved. Planning Regions and Availability Zones この構成をベースにCassandraでは Ec2Snitch Ec2MultiRegionSnitch の2つのSnitchが⽤意されている。こ れを使うと起動したノードがどこに いるかを判定し⾃動的にDCやrackな どを設定してくれる。 引⽤: https://docs.datastax.com/en/cassandra/latest/cas sandra/architecture/archSnitchEC2MultiRegion.htm l
rights reserved. Planning Regions and Availability Zones これらを元によりグローバルに利⽤する想定であったり、⾼可⽤性などを求め るならマルチリージョン構成のCassandraを検討する。単⼀リージョンで⽤途 が問題無ければ単⼀リージョン構成での設計をする。 マルチリージョンになった場合はkeyspaceの設定でどのDCにどれだけのレプ リカを持つかを設定し、クエリを投げる際にEACH_QUORUMや LOCAL_QUORUMなどでレイテンシとデータの堅牢性をコントロールする事 が重要。
rights reserved. Planning Instance Types Based on Storage Needs ある負荷シナリオにもとづきどのようにサイジングするかを解説。単純に IOPSやスループットでは無く、Cassandraでどのようなデータを扱いどのく らいのオペレーションが発⽣するかでどのように計算をするのかというのが解 説されているので、⾮常にサイジングに役⽴つ解説となっている。
rights reserved. Deploying Cassandra on AWS 前章で説明した各要素をもとに、実際にCassandraクラスタを構築するに辺り 実践的な構築パターンを記述している。 • Setting Up High Availability • Automating This Setup • Setting Up for Security • Monitoring by Using Amazon CloudWatch • Using Multi-Region Clusters • Performing Backups • Building Custom AMIs 各項⽬でAWSサービスを利⽤する事でどのように実現するかを解説。
rights reserved. Automating This Setup Auto Scalingを利⽤することでノード障害からの⾃動復旧するなどの⽅法を解 説。 特にseedノードとそれ以外のノードでAuto Scaling groupを分けて、それぞ れで異なる処理を⾏わせたりする⼿法や、opscenterなどの様にMaster-Slave 的な関係のノードの場合にElastic IP addressを利⽤することでアクセス⾯で の可⽤性向上の⼿法などを解説している。
rights reserved. Setting Up for Security セキュリティを意識した設定につい て。 • KMS • EBS encryption • Securely Connect to Linux Instances Running in a Private Amazon VPC(blog) • Security Groupでのネットワーク 許可例 などを利⽤することで、どのように セキュアなCassandraクラスタ構築 を実現するか。
rights reserved. Optimizing Data Transfer Costs Cassandraクラスタを構築した後に発⽣するNWコストをどのように最適化す るか AWSでは条件に応じてNW転送量に課⾦が発⽣するため、例として無駄な public IPベースでの設定を⾏わない、可能な限りデータを持っているノード と通信する事でstorage proxyのレイヤで発⽣する通信を削減する、また Netflixが公開しているAstyanaxを利⽤する事で、更に最短経路をクライアン トが取るようになる⼿法などを紹介。 また、Cassandra側の圧縮機能有効化やread repairの設定なども紹介してい る。これらの⼿法を使う事でコストの最適化と合わせてレイテンシの削減にも 寄与する。
rights reserved. 最後に 詳細を紹介しきれていない各種AWS サービスの機能については AWS Black Belt Online Seminarと いうオンラインセミナーの資料を公 開しています。是⾮こちらを⾒て頂 ければ助かります! 「AWS Black Belt VPC」というよう に検索して頂けばslideshareのプレ ゼン資料にすぐアクセス可能です。