終劇 CPU 100%

ビールは食べ物

AWS のサービスを知る #2

f:id:higaKtoT:20140729183647j:plain

 「AWS のサービスを知る #1 」に続き、今回はデータベースとネットワーキングのサービスを調べたいと思います。

データベース

 データベースとそれをサポートするミドルウェア類のサービスぽいですね。具体的に見ていきましょう。

 

アマゾン ウェブ サービスは、フルマネージド型リレーショナル NoSQL データベースサービスと、フルマネージドサービスとしてのインメモリキャッシュ、フルマネージドのペタバイト規模のデータウェアハウスサービスを提供しています。また、Amazon EC2 および Amazon EBS のクラウドで独自のデータベースを操作することもできます。 http://aws.amazon.com/jp/products/

AWS の製品とサービスというページのデータベースサービスの説明文ですが、正直なにを言っているのかさっぱりわかりません。まず、「フルマネージド型」って言葉が意味不明です。

フルマネージド型とは

直訳すれば、”すべて管理された型”という言う意味になる。データベースサービス以外の管理はすべて AWS が行うという事だと思う。具体的には、電源の供給からハードウェアの管理、ミドルウェアの管理などがそれにあたると思う。利用者はデータベースの接続情報の提供をうけてすぐにデータベースを利用できる状態の事だと思われる。

NoSQLとは

この NoSQL も分からないので調べてみた。一見、SQL を使用しないデータベースなのかなと思うが、そういうわけじゃないみたい。

NoSQL(一般に”Not only SQL”と解釈される)とは、リレーショナルデータベース管理システム (RDBMS) 以外のデータベース管理システムを指すおおまかな分類語である。リレーショナルデータベースをやみくもに使用してきた長い歴史を打破し、それ以外のデータベースの利用・発展を促進させようとする運動の標語としての意味合いを持つ。関係モデルではないデータストアの特徴として、固定されたスキーマに縛られないこと、関係モデルの結合操作を利用しないこと(場合によっては単にそのような機能が欠落しているだけ)、水平スケーラビリティが確保しやすい事が多いこと、トランザクションを利用できないものが多いことなどが挙げられる。学術的な世界では、この種のデータベースのことを構造型ストレージ (英: structured storage) と呼ぶことが多い http://ja.wikipedia.org/wiki/NoSQL

RDBMS 以外のデータベースってあるんだね。それ知らなかった。

インメモリキャッシュとは

たぶん、I/O の早いメモリにデータベースを展開してくれるサービスだと思う。調べてみたらインメモリデータベースというのを見かけたが、それとは違うと思う。インメモリデータベースはディスク上にデータベースを展開するのではなく、すべてのコンポーネントをメモリ上に展開するデータベースの事らしい。

ZDNet Japan に以下記述があった。データベースをスケールアウトするよりは、データ I/O をメモリにキャッシュする拡張をした方が運用の手間が省けるよねっていう。

もちろんRDBMSでもスケールアウトできるような技術が導入されているが、処理ノードを追加する度に、例えばデータベースの分割作業が必要となることから運用負荷が高いとされている。

 だったら、メモリにキャッシュするインメモリキャッシュでパフォーマンスを上げましょうという動きも出てきている。メモリにアクセスするので、高速なアクセスができるからだ。 http://japan.zdnet.com/business-application/analysis/35019420/

なので、I/O を高速にしてくれるサービスなんだろうと思う。

データウェアハウスサービス

このワードもよく見聞きするが分からなかったが調べたら単純だった。以下、「e-Word」より引用。

時系列に蓄積された大量の業務データの中から、各項目間の関連性を分析するシステム。
http://e-words.jp/w/E38387E383BCE382BFE382A6E382A7E382A2E3838FE382A6E382B9.html

春に行われた IT Week Japan で AWS の社長がスシローのビックデータ解析の事例を紹介していたがこのサービスを使ったかもしれない。

とまぁ、分からない言葉をざっと調べてみました。以下からサービスの内容を調べていきたいと思います。

Amazon DynamoDB

DynamoDB は、拡張性の高いフルマネージド型の NoSQL データベースサービスです。シームレスなスループットとストレージのスケーリング、自動の 3 種類のレプリケーションによって、時間がかかるデータベース管理タスクから解放され、アプリケーションとビジネスに集中できます。

DynamoDB は NoSQL (RDBMSじゃない) データベースサービスのようです。NoSQL が未経験なので具体的にシステムをどう実装していくのかは不明。NoSQL の詳細については別の機会でやるとして、DynamoDB の特徴だけをサラっとまとめたいと思います。

  • 管理が楽

サービス開始してすぐにテーブル作成できるようです。データベース容量の設計やらは不要です。

  • オートスケール

データベース容量は自動で増えます。

  • はやい

SSD を使用しているようです。あらかじめスループットしきい値を決めておき、しきい値を超えた場合、自動でスケールアップする設定にしておけば速度は維持されますね。データベースが大規模になっても数ミリ秒でデータにアクセスできるようです。

  • 冗長性

データは自動で複数の AZ にコピーされるそうです。データセンター規模の障害にも耐えうる冗長性が担保されています。

Amazon RDS

Amazon RDS(Relational Database Service)を利用すると、クラウドでの MySQLOracleSQL Server、または PostgreSQL データベースの設定、操作、スケーリングが簡単になります。これにより、費用対効果が高く、サイズ変更が容易なデータベース容量が得られるとともに、時間のかかるデータベース管理タスクが処理されます。

はい、これはもう、おなじみ使い慣れた RDS ソフトウェアのサービスですね。具体的には、MySQLOracleMicrosoft SQL ServerPostgreSQL になります。目立った特徴は、データベースソフトウェアのパッチ当が自動で行われる事と、高パフォーマンスを提供するプロビジョンド IOPS ストレージを選択できる事ですね。

  • 管理のしやすさ

  • その他

アプリケーションの要件にあわせて API もしくはウェブコンソールから容易にスケーリングできたり、ファイアーウォールを用いてアクセスコントロールができたり、自動バックアップ、DB スナップショット、ホストの自動交換、マルチ AZ 配置など従来のクラウドサービスの操作性を利便性を当たり前に備えており使いやすくなってます。

Amazon Redshift

Amazon Redshift はフルマネージド型で簡単に拡大縮小できるペタバイト規模のデータウェアハウスサービスです。

前述したデータウェアハウスサービスです。データウェアハウスサービスにうとい筆者でしたが、 AWS のサービス紹介動画を見るのが分かりやすいと思います。

Amazon Redshift (ペタバイト級の データウェアハウス サービス) | アマゾン ウェブ サービス(AWS 日本語)

Amazon ElastiCache

Amazon ElastiCache は、クラウドでのメモリ内キャッシュのデプロイ、運用、および縮小/拡張を容易にするウェブサービスです。

ディスクベースのデータベースのデータ I/O を高速 I/O のメモリ上に展開するサービスです。ElastiCache を利用する事でアプリケーションのパフォーマンスが向上されます。

ネットワーキング と CDN

アマゾン ウェブ サービスは幅広いネットワーキングサービスを提供しており、論理的に分離されたネットワークを作成して定義し、AWS クラウドに対するプライベートネットワーク接続を確立し、高い可用性でスケーラブルな DNS サービスを使用して、低レイテンシーで高速なデータ転送のコンテンツ配信ウェブサービスをエンドユーザーに提供できます。

上記は AWS のサービス一覧にある「ネットワーキングと CDN 」からの引用です。ネットワークの作成、DNSサービス、VPNサービスなどのサービスを提供しているという事ですね。ただ、分からない単語がありましたので調べてみました。

CDN とは、

コンテンツデリバリーネットワークの略だそうです。 CloudFront の事を指しているようです。

レイテンシーとは

端末がデータ転送を要求してその結果が届くまでの遅延時間の事だそうです。低レイテンシーとは遅延時間が低いという事ですね。

Amazon VPC

VPC」は Virtual Private Cloud の略です。VPN だけのサービスの事かと思ってましたが、AWS で利用するネットワーク機能全般の事らしいですね。 VPN サービスは業界標準で暗号化された IPsec ハードウェア VPN でローカル、あるいは契約のデータセンターとを接続するそうです。

まあ、サッと読んだ感じでは普通のネットワークサービスの様です。ただ、料金は気を付けたい部分があります。
料金説明ページには

Amazon Virtual Private Cloud の使用には、通常の Amazon EC2 の使用料以外には、追加料金はかかりません。

とあります。EC2 で使用する分は無料ですが、「VPN 接続 1 時間当たり 0.048 USD(東京リージョンへの接続)」と記載されてますので、VPN を使用すると1時間あたり 5 円の料金なので気にしなくていい額ですが。

Amazon Route 53

Amazon Route 53 は、可用性と拡張性に優れたドメインネームシステム(DNSウェブサービスです。

まんまです。DNSサービスですね。ちょっと変わってるのはドメインの購入もできるところでしょうか。それくらいかなぁ。

Amazon CloudFront

Amazon CloudFront はコンテンツ配信ネットワークです。これは他のアマゾン ウェブ サービスを統合し、開発者や事業主に、長期契約の必要なく、短い待ち時間と高速なデータ転送速度でエンドユーザーにコンテンツを配信する簡単な方法を提供します。

んー、おそらくリバースプロキシのようなものを想像していますが。どうなんでしょう。

静的コンテンツのコピーを閲覧者の近くにキャッシュし、オブジェクトをダウンロードする際のレイテンシーを低減

たとえば、東京リージョンにある Web サーバのコンテンツをヨーロッパに配信しようとすると、ヨーロッパの CloudFront がコンテンツをキャッシュしてレイテンシーを低減するという事だと思います。

動的、静的、ストリーミング、およびインタラクティブなコンテンツを含む、ウェブサイト全体を配信できます。

静的コンテンツ以外も配信できるんですね。ほほう!

POST、PUT などの HTTP メソッドをサポート

ダウンロードだけではなく、アップロードも高速化されるそうです。

実際に配信されたコンテンツの量に応じてお支払いいただくだけです。

課金は配信したコンテンツの量に応じるようですね。

AWS Direct Connect

AWS Direct Connect は、AWS クラウドサービスを利用するのにインターネットを使用する代わりの方法を提供するネットワークサービスです。

VPN 接続ではなく専用線接続のサービスですね。