「データベースのコストが高すぎる?AWSとは違う選択肢を知りたい」
・「AWSの料金が高いと感じているけど、他にどんなクラウドサービスがあるか知りたい」
・「データベースに関する費用が抑えられるサービスはあるの?」
という疑問をお持ちではありませんか?
そこでこの記事ではそんなデータベースのコストに関するお悩みを、
Alibaba Cloudが提供するデータベースサービス「Tablestore」を通じて解決します。
具体的には、Tablestoreが持つ高い可用性やスケーラビリティ、高速なデータアクセスに加え、コストパフォーマンスに優れる点についてご紹介します。
10分くらいで読めますし、データベースのコスト削減に悩んでいる方にとっては劇的に改善される可能性が高いので、まずはご一読を!
Tablestoreとは?
Alibaba Cloudが提供するデータベースサービスTablestoreは、大量の構造化データを高速に読み書きできるNoSQLデータベースです。Tablestoreは、業界標準のAPIとプロトコルをサポートしており、スキーマレスで柔軟なデータモデルを備えています。99.99% の高可用性と99.999999999% データ信頼性を備えています。
Tablestoreのメリット
Tablestoreの主なメリットは、高い信頼性、柔軟性、および高速なデータアクセスです。また、Tablestoreはコストパフォーマンスにも優れており、競合する他のデータベースサービスよりも低価格で提供されています。サードパーティ製のプロダクトと連携して、ビッグデータ分析などの分析が容易です。
Tablestoreのコストパフォーマンス比較
Tablestoreは、クラウドネイティブアプリケーションの開発者が、安全かつ高速に大量の構造化データを格納、検索、クエリできるように設計されています。Tablestoreは、AWSのDynamoDBやAzureのCosmos DBと競合するサービスです。データストレージや転送量、IOスループットなどによって料金が決まります。
AWSなどのサービスとは機能や料金体系に差異がありますが、Tablestoreの場合、ストレージのコストが非常に低いため、コストパフォーマンス比較で優位性があります。例えば、Tablestoreは、月間1 GBあたり0.00012 米ドルの料金でストレージを提供しています。一方、AWSのDynamoDBは、プランによって変わりますが、月間1 GBあたり0.10〜0.25米ドルで提供しています。
コストパフォーマンスを比較する際の注意すべき点としては、別途ストレージの料金以外に、読み取りや書き込みのスループットに対しても、追加の料金がかかることです。ただし、Tablestoreは、競合するサービスと比較して、料金体系が非常にシンプルであるため、コストを簡単に把握しやすいです。
Tablestoreの可用性
Tablestoreは99.9%以上の可用性を保証しており、地理的冗長性を持った複数のデータセンターにデータが保存されるため、システム障害や災害に対する耐性も高くなっています。
Tablestoreの可用性を高めるために、以下のような機能が提供されています。
1.自動フェイルオーバー
Tablestoreは、自動フェイルオーバー機能を備えています。これにより、データセンターの障害が発生した場合でも、システムは自動的に別のデータセンターに切り替えられ、サービスの継続性が確保されます。
2.デュアルコピー
Tablestoreは、データを複数のデータセンターに保存し、データの冗長性を高めるデュアルコピー機能を提供しています。これにより、1つのデータセンターがダウンした場合でも、他のデータセンターからデータにアクセスできます。
3.一貫性モデル
Tablestoreは、CAP定理に基づいた一貫性モデルを採用しています。これにより、システムの一貫性を維持しながら、高い可用性を実現しています。
以上のように、Tablestoreは高い可用性を備えたサービスであり、自動フェイルオーバー機能やデュアルコピー機能、一貫性モデルなどの機能により、システムの障害に対する耐性を高めています。企業のシステム運用において、高い可用性が求められる場合には、Tablestoreは優れた選択肢となります。
Tablestoreのセキュリティ機能
Tablestoreは、ネットワークセキュリティを強化するため、VPC(Virtual Private Cloud)という仮想的なプライベートネットワークを使用することができます。これにより、インターネットからの攻撃を防ぎ、データの保護を強化することができます。その他にもECSイントラネットなどのさまざまなネットワークをサポートしています。
Tablestoreのスケーラビリティ
Tablestoreは、高いスケーラビリティを備えたクラウドベースのデータストレージサービスです。大きな特徴として、テーブルに格納されるデータ量は無制限になっています。テーブルサイズが大きくなっても、自動的に記憶領域の割り当てのためにパーティショニングを変更します。
Tablestoreの利用シーン
Tablestoreは、以下のようなシナリオで特に有用です。
- 大量の構造化データを格納する必要がある場合
- データに高い可用性が必要な場合
- スケーラブルなデータベースサービスが必要な場合
Tablestoreの利用方法
Tablestoreは、SDKを通じて簡単に利用できます。Tablestoreが提供するSDKには、Java、Python、Node.js、.NET、PHP、Goなどがあり、それぞれの開発者に合わせた言語で利用できます。
Tablestoreは「ストレージ」>「基本ストレージサービス」の中にあります。
選択すると、次の画面になります。
「今すぐ有効化」を押すと、価格に関する画面に移ります。画面に従って進めます。
しばらく待ってから、コンソールのTablestoreの画面を開くと次のようになります。
画面を下に進めると、インスタンスの作成ができます。
システムに合わせてここから作成してください。
インスタンスの作成
次にインスタンスの作成をします。
作成が成功するとリストに表示されます。
ちなみに、右にある「リリース」を押すとインスタンスが削除されてしまうので、気をつけてください。(実はテストで作成したインスタンスを削除しようとして、削除がなくてサポートに問い合わせました笑)
テーブルの作成
作成したインスタンス名をクリックします。
画面下部にあるテーブルの作成をします。
任意のテーブル名、プライマリキーを設定してOKします。
作成したらテーブルリストに表示されます。
テーブル名をクリックします。
定義済みの列を追加するを押してデータを追加します。
するとリストに表示されます。
データの投入と照会
テーブルへのデータの投入をします。
テーブルを選択した画面で、データのクエリを選択します。
この画面に遷移したら、挿入を選択します。
このようなポップアップが表示されますので、赤枠で囲まれた部分に任意の文字列、数値を入力します。
3つ入力しました。
プライマリキーを変更して、挿入をし直すと、新しく入力したものしか表示されないのでおかしいと思ったのですが、検索の機能で自動的にプライマリキーが最新のものしか表示されない仕様になっているようです。
照会に入ります。
データ入力直後は次のように「行検索」になっています。そして、赤枠部分のプライマリキーも最新で追加したプライマリキーが自動入力されています。
もちろん、探したいプライマリキーを入力すれば、そのクエリが表示されます。
また、範囲選択を選ぶと次のようになります。
ここではプライマリキーの範囲で表示を絞り込む事ができます。
ちなみにこのようなクエリを作成して、、、
開始が2、終了が4とすると、、、
2と3だけ表示されます。
開始を3、終了をtとすると、、、
ここまでに絞られます。
CLIでのデータ照会
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fwriter.rakitalblog.com%2Fwp-content%2Fuploads%2F2023%2F03%2Fimage-1024x496.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=7a96b45809feba5101f437813932e8f2)
テーブルは名簿を意識したものを使用します。
Tablestore CLIというものを使えば、CLIでもデータを確認することが出来ます。
Start the Tablestore CLI and configure access information
※日本語ページはありません。
Tablestore CLIは以下からダウンロードできます。
ご使用のOSに合わせてダウンロードしてください。
ダウンロード場所はルートディレクトリにしてください。WindowsであればCドライブの直下です。
Download the Tablestore CLI
私はWindows 11を使っているので、Windowsベースで進めます。
Tablestore CLIを解凍すると次のようになるので、ts.exeを実行します。
セキュリティに弾かれることがあるので、
詳細情報を押して、実行します。
実行ができると、コンソールが開きます。
アクセス情報を設定します。なお、AccessKey ID、AccessKey シークレットの取得についてはOSSの記事を参照してください。また、権限はAliyunOTSFullAccessを付与してください。
リンク
config --endpoint https://myinstance.cn-hangzhou.ots.aliyuncs.com --instance myinstance --id NTSVLeBHzgX2iZfcaXXPJ**** --key 7NR2DiotscDbauohSq9kSHX8BDp99bjs7eNpCR7o****
それぞれのオプションには次の要素を入れていきます。
--endpoint | インスタンスアクセスURL |
--instance | インスタンス名 |
--id | AccessKey ID |
--key | AccessKey シークレット |
インスタンスアクセスURLはTablestoreの「インスタンスの管理」に表示されています。
このようになればOKです。
次にlistコマンドでテーブル名を確認します。
次に操作するテーブルを選択するためuseコマンドを実行します。
テーブルを選択した後は、scanコマンドでデータが照会できます。
※見やすいようにテーブルのデータは作り直しました。
Tablestoreの利用事例
Tablestoreの利用事例としては、センチュリーマートが挙げられます。WeChatで200万人以上のフォロワーを抱える同社ではオンラインショップのプロモーションのために、多くのサーバーを抱えていました。ただし、ピークにはサービスに影響が出てしまっており、運営に課題がありました。
そこで同社はサーバーをFunction Computeにして、Tablestoreをデプロイしました。これによって自社でサーバーを管理する必要がなくなった上、アップグレードコストは100%削減されました。いまではコードを書いて、アップロードするだけで従来の業務と近いことができるようになっています。
まとめ
Tablestoreは、高い可用性、スケーラビリティ、高速なデータアクセス、およびコストパフォーマンスに優れているため、多くのビジネスにとって魅力的なオプションとなっています。Tablestoreを検討する場合は、自社のシステムで使用するSDKを選んで、利用してください。