Servicesクラウドみなさん、こんにちは!フリューでモバイルサイト開発を行っている鷲見といいます。現在あるソーシャルプラットフォーム上のアプリケーションを構築するプロジェクトでの、クラウド環境の導入の進行状況をそのまま記事にしています。Servicesを利用することを決定しました。Servicesの導入までを記事にしていきたいと思います。ServicesはAWSと省略表記させていただきます。今回のテーマはデータベースです。前回の見積編でもAWSでは異なるデータベースサービスの2種類の見積を行いました。AWSが準備しているデータベースサービス以外にも、EC2にデータベースをインストールして利用することも当然可能です。今回構築するシステムでデータベースに求められる要件とAWS上で考えられるデータベースの特徴を突き合わせ、採用するデータベース構成を決定したいと思います。今回のサービスには以下のような要件があります。今回のシステムはあるソーシャルプラットフォーム上にアプリケーションを構築するというものです。今回のシステムは通常のソーシャルアプリケーション同様、ユーザに関するデータはソーシャルプラットフォーム側が持っておりAPIでアクセスします。このような特徴があるため、ユーザに関する情報はアプリケーション側では持ちません。アプリケーションに関するマスタ情報と課金の履歴などの履歴情報がメインのデータとなります。データの更新・削除はほとんどなく、履歴への挿入がある程度で、参照がメインのデータです。複数の表への更新はほとんどなく複雑なトランザクションはありません。データベースミドルウェアに関して弊社の今までの経験から、一番得意で経験が多いのはOracleです。次点はMySQLですが経験は少なく、PostgreSQLの経験はほとんどありません。SQLデータベースは技術検証に触ったりはしていますが、実サービスでは利用していません。運用に関してサービスの停止は売上の減少に直結するので、出来る限りデータベースが停止する状況を作りたくありません。このような理由から冗長構成を組んで可用性を高めたいと考えています。AWSの経験が初めてなので、出来る限り運用に手間がかからないようにしたいと思います。開発期間に関してサービスの開発期間が1ヶ月と短いため、調査などに時間をかけることが出来ません。出来るだけ簡単に設定・運用が出来ることが望ましいです。データベース構成AWS上でデータベースを構築する際に考えられる構成としては以下のものが上げられます。Service(RDS)を利用するhttp://aws.amazon.com/jp/rds/RDSとはAWS上で展開されているリレーショナルデータベースサービスです。オープンソースのリレーショナルデータベースとしてよく知られているMySQLを複雑な設定をほとんど行うことなく、すぐに利用することができます。ZoneにMySQLを配置することで、サービスの可用性を高めることも可能です。11gにも対応していますが、データベース選定を行った4月の時点ではMySQLのみの対応でした。SimpleDBを利用するhttp://aws.amazon.com/jp/simpledb/SimpleDBとはAWS上で展開されている非リレーショナル型のデータストアサービスです。Store)型のデータベースをイメージすると分かりやすいかと思います。特徴としては高い可用性と運用の容易さが上げられます。負荷が高くなったような場合にもAWS側で自動的にスケールアウト・スケールアップを行ってくれます。Zoneに分散して保存されるので、データがなくなってしまうといったリスクも少なく、可用性も高くなっています。データの操作はHTTPやSOAPを介して行います。SQL文によく似たSELECTを発行することも可能です。トランザクションには対応していません。メリット可用性が高いAWS側で管理するサービスなので運用のコストがほとんど掛からないスケールアウト・スケールアップを自動で行ってくれる価格が非常に安いデメリットトランザクションに対応していないRDBでは当たり前のJOINを行うことができないデータサイズなどの制約が多いAWS側でほぼ全ての管理が行われるので細かな設定・管理は行うことはできないEC2上にRDBをインストールEC2はAmazonのデータベース上に使いたい時に使いたい分だけサーバを構築できるようなサービスです。このEC2で構築したサーバ上にRDBを自分でインストール・設定を行って利用します。Serverなど自分の好きなRDBMSを選択してインストールすることができます。自分で好きなように詳細な設定を行うことも可能です。SQLデータベースを自分でインストール・設定を行って利用します。Cassandra・CouchDB・MongoDB・Redisなど何でも自分の好きなソフトを選択してインストールすることができます。自分で好きなように詳細な設定を行うことも可能です。今回のサービスの重要な要件の一つに『設定・運用が簡単』というのがあります。EC2上にゼロからDBサーバを構築し、可用性の高い構成にするというのは、複雑な設定とテストが必要で結構コストがかかりそうです。SQLデータベースとなると、なおさらコストがかかってしまいそうです。SQLデータベースをインストールするという選択肢は無くなりました。今回のサービスのデータの特徴として『複雑なトランザクションが必要ない』という点があります。SimpleDBはこの特徴にマッチするので、RDSとSimpleDBの2択となります。RDSとSimpleDBでより設定・運用が簡単なのはSimpleDBです。コストがSimpleDBの方がかなり安いというのは前回の記事で紹介させていただいた通りです。SimpleDBのデメリットとして『AWS側でほぼ全ての管理が行われるので細かな設定・管理は行うことはできない』が挙げられますが、巨大なサービスを運営しているAWSの設定・管理は信用して任せてよい気がします。こちらで管理を行うよりよっぽど効率的な設定・管理を行ってくれるのではないかと思います。SimpleDB』を採用したいと思います。KVSを比較検討しました。SimpleDB』を採用しました。データベースも決定したので次回はAWSを利用したサービス全体のインフラ構成について検討していきたいと思います。