支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡


Google Cloud Datastoreの概要について

ここでは、Google Cloud Datastoreについて説明させていただきます。 クラウドサービスの発展、あるいはクラウドテクノロジーの発展は日進月歩であり我々の生活に大きな影響を与えています。 ベンダーやIT企業は積極的にクラウドテクノロジーに対して投資を行っていることでも知られ、特に大手ベンダーではその傾向が過熱していますが、その理由として考えられることがクラウドサービス市場の将来的な成長が見込めることや市場シェアを奪うことができること、大きく利益を生み出し多くのユーザーを獲得できることなどでしょう。 Google Cloud Datastoreはそういった急成長するクラウド市場におけるサービスの一つとして知られております。 クラウドに関する知識はこれからエンジニアになる方にとって必須と言えますので、様々な製品に関する知識を身につけておくといいでしょう。
Google Cloud DatastoreGoogleはGoogle Cloud Platform上で提供されているサービスの一つで、高いスケーラビリティを持つ、フルマネージドのNoSQLデータベースサービスです。 技術的な特徴としてはシャーディングとレプリケーションを自動的に処理し、アプリケーションの負荷に合わせて自動的にスケールし可用性と耐久性を兼ね備えたデータベースを提供する点となります。また、ACIDトランザクション、SQL ライクなクエリ、インデックスなどの多くの機能を備えていることがその特徴となります。 Google Cloud DatastoreGoogleは2008年にGoogle App Engineの一機能として公開されましたが、 その後2013年のGoogle I/Oにおいて、独立したサービスとして利用することが可能となりました。 また、NoSQLを利用したデータベースであることがその大きな特徴と言えます。 NoSQLはデータベースのカテゴリを指します。データベースとは様々な方法で取得したデータを格納するものであり、大きく分けてRDB(リレーショナルデータベース)とNoSQLに分類されます。 従来のデータベースはNoSQLはRDBが採用されることが多かったのですが、 近年になりテクノロジーの発展やユーザーのニーズの多様化、あるいはデータベース利用における多様化など様々な面からNoSQLが発展してきました。 RDBはSQLを利用してデータベースを操作を行う一方で NoSQLは「Not only SQL」の略で、SQL言語を使わずにデータの操作ができるという点が技術的な違いとなります。
NoSQLにはいくつかの特徴があります。 一点目が大量のデータを高速で処理することが可能となる点です。 近年ではビッグデータが非常に大きな話題となっているように、ビジネスにおいて莫大なデータを取得し、 それらを分析することはあらゆる企業にとって大きなテーマと言えるでしょう。 NoSQLではRDBとはトランザクション処理能力の違いがあるため、 データの一貫性が低い面というリスクを負う一方でデータを高速で大量に処理することが可能であるという強みがあります。 そのため、大規模データを処理する必要があるシステムや高パフォーマンスが重要視されるシステムにおいてNoSQLは非常に重要な役割を果たします。
二点目がトランザクションです。これはNoSQLの理解において重要なポイントとなりますので 抑えておくといいでしょう。 トランザクションとは、データの更新・取り消しなどを管理する処理のことを指します。 トランザクションを理解するうえで重要な考え方が、複数の処理を一つにまとめたものでその処理を分離されることはできないという考え方がベースとして存在します。 トランザクションを説明する際によく用いられるのが銀行の振込の例となりますので、ここでも紹介させていただきます。 例えばAさんがBさんの銀行口座に10000円のお金を振り込むとします。 Aさんの銀行口座から10000円のお金の引き落とし処理が成功する事とBさんの銀行口座に10000円が入金される処理が成功することで初めてトランザクション成功が成立します。 例えばAさんの銀行口座から10000円のお金の引き落としの処理が成功したにも関わらず、 何らかの理由によってBさんの銀行口座に10000円が入金される処理が成功しないままデータベースに反映されてしまうと問題となってしまいます。 上記のようなケースはトランザクション失敗として扱わますので、ロールバックが行われデータベースに反映が行われません。 このように、複数の処理を一つにまとめて効率よくデータベースを運営していくのがトランザクションの役割です。 RDBではトランザクション機能が十分であることに対して、NoSQLではその機能が弱いことがRDBとNoSQLについての違いとなります。 このあたりのデータベース機能の性質や目的の違いを理解し、適正なデータベースを選定することがユーザーにとって必要となるのでしっかり抑えておく必要があります。
三点目が高いスケーラビリティをもつことです。 これはGoogle Cloud DatastoreGoogleのメリットでもありますが、スケールアウトが比較的容易であるためシステム拡張性に優れており、ビジネスの変化に対して柔軟に対応することができるという点が大きな特徴です。 以上がGoogle Cloud Datastoreの特徴であるNoSQLの説明とさせていただきます。 さらにGoogle Cloud Datastoreについて詳しい説明をさせていただきますので、参考にしていただけましたら幸いです。

Google Cloud Datastoreの特徴と機能について

Google Cloud Datastoreの特徴と機能についてポイントを絞り紹介させていただきますので、参考にしていただけましたら幸いです。

シンプル

Google Cloud Datastoreの特徴と機能の一点目がシンプルであり、 かつ統合可能であるという点となります。 Google Cloud DatastoreのRESTfulインターフェースを使用することで、様々なデプロイ先からデータに簡単にアクセスできます。 App EngineとCompute Engineに拡張されたソリューションを構築し、統合ポイントをGoogle Cloud Datastoreに置くことができるため、 ユーザーにとってはシンプルに利用することができる点が特徴です。

スケーラビリティ

Google Cloud Datastoreの特徴と機能の二点目がスケーラビリティに優れていることです。 高いスケーラビリティはNoSQLの大きな特徴の一つと言えますが、 Google Cloud Datastoreにおいてもデータに応じてシームレスかつ自動的にスケールすることが可能です。 そのためアプリケーションのトラフィックが増えても高いパフォーマンスが維持されます。 現在のビジネスにおいては変化が著しく、サービス提供を行う企業にとっては柔軟に対応することも 企業の信頼性を高めるポイントの一つです。 Google Cloud Datastoreを導入することでそれらを実現することができるでしょう。

クエリ言語

Google Cloud Datastoreの特徴と機能の三点目がクエリ言語となります。 Google Cloud Datastoreは、複数のプロパティにまたがってデータを検索します。 データへのアクセスには、GoogleのJSON API、オープンソース クライアント、コミュニティで維持されているORM(Objectify、NDB)を使用することが可能となります。

ダッシュボード

Google Cloud Datastoreの特徴と機能の四点目がダッシュボード機能となります。 Google Cloud Datastoreでは高機能のダッシュボード機能を搭載しております。 エンティティ統計の表示、データベースのクエリ、インデックスの表示、データのバックアップと復元を行うことが可能であり、ユーザーの操作をバックアップします。

トランザクション

Google Cloud Datastoreの特徴と機能五点目がトランザクションとなります。 単一のトランザクションで複数のデータストアオペレーションを実行するACID(Atomicity Consistency Isolation Durability)の特性でデータの整合性を確保します。 ACIDは信頼性のあるトランザクションシステムの持つべき性質として不可分性(Atomicity)一貫性(Consistency)独立性(Isolation)永続性(Durability)の四つの性質に分類されるというものです。
不可分性ではトランザクションに含まれるタスクが全て実行されるか、あるいは全く実行されないことを保証する性質となります。 例えばAの口座からBの口座に対して振込がされた場合、Aの口座からの引き落とし・Bの口座への入金の両方が 成立しないと矛盾してしまいます。これは不可分性の例としてよくあげられる説明となります。
一貫性では一貫性あるいは整合性と呼ばれ、トランザクションの前後でデータの整合性が保たれ、矛盾の無い状態が継続される性質を指します。 例えば、Aの口座からBの口座に対して振込がされた場合、送金トランザクションによって口座の残高の値が負になるといったことが起きないようにしなくてはいけません。
独立性はトランザクション実行中の処理過程が外部から隠蔽され、他の処理などに影響を与えない性質となります。 Aの口座からBの口座に対して振込がされた場合、外部からは送金前と送金後のいずれかの状態しか観測できないようにします。
永続性は永続性あるいは持続性と呼ばれ、トランザクション操作の完了通知をユーザが受けた時点で結果が失われない性質を指します。

Google Cloud Datastoreの料金について

Google Cloud Datastoreでは、無料枠が存在します。 保存データは1GBストレージ、エンティティの読み込み数50,000、エンティティの書き込み数20,000、 エンティティの削除数20,000、小規模なオペレーション50,000までは一日の無料枠に該当します。 無料利用枠を超えた場合の料金においては保存データ$0.115、 エンティティの読み込み数$0.038、エンティティの書き込み数$0.115、 エンティティの削除数$0.013、小規模なオペレーションについては無料といった形で課金されます。 上記は東京地域においてのGoogle Cloud Datastoreの説明で、国や地域により料金が異なる点について理解しておく必要があります。

Google Cloud Platformについて

Google Cloud Datastoreに関連するキーワードとしてGoogle Cloud Platformを説明させていただきます。 すでに本文で説明させていただいたように、Google Cloud DatastoreはGoogle Cloud Platformのサービスの一つとなります。 多くのサービスを提供しておりますが、Google Cloud Platformについての知識を得ることでビジネスに効果的に利用することができますのでエンジニアの方は参考にしてみてください。 Google Cloud PlatformはGoogleが提供しているクラウドコンピューティングサービスとして 世界的に有名なサービスであり、かつクラウド市場でトップクラスのシェアを誇ります。 また、Google検索やYouTubeなどのエンドユーザー向けのサービスでも、同じインフラストラクチャーが利用されていることでも知られ 世界最高水準のテクノロジーを一般的なユーザーが利用することが可能です。 Google Cloud Platformでは90以上のサービスを提供しており、いくつかの分野に分類されております。 「コンピューティング」「データベース」「ストレージ」「ネットワーキング」 「ビッグデータ」「AIと機械学習」「管理ツール」「IDとセキュリティ」 「IoT」「APIプラットフォーム」「コンピューティング」において有名なサービスがGoogle App Engineとなります。 Google App EngineはウェブアプリケーションをPHP・Python・Java・Go言語を使用して開発し、 Googleのインフラストラクチャー上で実行し、バージョン管理することができるプラットフォームとなります。 クライドサービスの分類としてはPaaS(Platform as a Service)に該当します。 PaaSでは開発のためのプラットフォームを提供するサービスとなり、 開発者は、プラットフォーム上で構築したサービスを自分の顧客に提供するなどの利用方法が一般的となります。 Google App EngineはPaaSの代表的なサービスの一つとして知られております。 「データベース」において有名なサービスがこのページで紹介させていただきましたGoogle Cloud Datastoreです。 他にはGoogle Cloud SQLやGoogle Cloud BigtableやGoogle Cloud Spannerなどがデータベース分野に分類されます。 「ストレージ」においてはGoogle Cloud Storage、Google Persistent Diskなどがあります。 「ネットワーキング」はVirtual Private Cloud(VPC) Google Cloud Load Balancing 、Google Cloud Armor 、Google Cloud CDN、Google Cloud Interconnect 、Google Cloud DNS、Google Network Service Tiersなどがあります。 「ビッグデータ」はGoogle BigQueryが有名なサービスです。 Google BigQueryはビッグデータ時代のデータ分析において役立つ代表的なクラウドサービスと一つと言われておりこれからのビッグデータ時代においてクラウドエンジニアやデータベースエンジニアとして必須の知識の一つです。
Google BigQueryはいくつかの特徴があります。 一点目が高速データ処理を実行することができるという点です。 高速でデータを処理することがビッグデータ時代において非常に重要なテクノロジーの要素の一つであり、 それらはGoogleBigQueryを利用する最大のメリットと言えます。 データ分析を実行する際においての課題が、膨大なデータ収集を行い扱うデータ容量が多くなるに従って処理速度のパフォーマンスが落ちてしまうことです。 顧客に対してサービスを提供する際にデータ処理のパフォーマンスは企業の信頼に大きく営業することは 言うまでもありませんがGoogle BigQueryではこれらの課題を解決します。 TB(テラバイト)規模やそれ以上のデータ処理となると、データ分析サービスによって 処理速度に大きく結果が異なりパフォーマンスを落とすデータベースも少なくありませんが、 GoogleBigQueryにおいては、PB(ペタバイト)規模であっても高速な処理を行うことが可能となります。 GoogleBigQueryの高速処理を実現しているのは、カラム型データストアとツリーアーキテクチャといった構造と技術であり、カラム型データストアでは列単位でのデータ保存を行い、ツリーアーキテクチャでは複数処理分散を 行うことでデータの高速データ処理を技術的に実現しております。
二点目がコストパフォーマンスに優れている点となります。 Google BigQueryではデータ処理実行前にデータ量を把握することが可能です。 そんため費用の目安を算出して必要な料金を事前に把握することが可能です。 利用した分析量・ストレージ量に応じて料金が発生するため無駄なコストが不要となり、コストパフォーマンスに優れていることがGoogle BigQueryの特徴となります。
三点目がSQL操作となります。 SQLを理解しているだけで迅速なデータの取り扱いが可能となり、多くのエンジニアがデータ分析を活用することが可能です。
「AIと機械学習」ではGoogle Cloud AutoML 、Google Cloud TPU、Google Cloud machine Learning Engine 、Google Cloud Job Discovery、Google Dialogflow Enterprise、Google Cloud Natural Language 、Google Cloud Speech-to-Text、Google Cloud Text-to-Speech、Google Cloud Translation API 、Google Cloud Vision API、Google Cloud Video Intelligence 、Google Vertex AIなどのサービスが利用可能です。 「管理ツール」ではGoogle Stackdriver、 、Google Cloud Deployment Manager、Google Cloud Console 、Google Cloud Shell、Google Cloud Console Mobile App Cloud APIなどのサービスが利用可能です。 「IDとセキュリティ」では、Google Cloud Identity、Google Cloud IAM 、Google Cloud Identity-Aware Proxy、Google Cloud Data Loss Prevention API 、Google Security Key Enforcement、Google Cloud Key Management Service 、Google Cloud Resource Manager、Google Cloud Security Command Center、Google Cloud Security Scanner 、Google Access TransparencyGoogle VPC Service Controlsなどのサービスが利用可能です。 「IoT」ではGoogle Cloud IoT Core、Google Edge TPUGoogle Cloud IoT Edgeどのサービスが利用可能です。 「APIプラットフォーム」ではGoogle Maps Platform 、Google Apigee API Platform、Google API Monetization、Google Developer Portal 、Google API Analytics、Google Apigee Sense 、Google Cloud EndpointsGoogle Service Infrastructureなどのサービスが利用可能です。

まとめ

いかがでしたでしょうか?Google Cloud Datastoreについて詳しく説明させていただきましたので、 参考にしていただけましたら幸いです。