MacrometaとDynamoDBの違いを理解する


# Macrometaとは
Macrometaは、2017年に設立されたカリフォルニア州を拠点した企業で、分散型データベースプラットフォームのGlobal Data Network (GDN)を提供しています。
GDNは世界中に展開されたデータセンターを利用したGlobal Data Meshを提供しており、データを高速に格納、取り出すことができるKey-Value Store、Document Store、GraphなどのNoSQLデータベースを扱うことができます。
また、GDN上でバーチャル待合室やプリレンダリング、Edge Side Taggingなどを提供する PhotoniQ ソリューションによって、世界中のユーザーに向けて低レイテンシーのEdgeサービスを提供します。


- [Macrometa - Global Data Network](https://www.macrometa.com/platform)
- [Macrometa - PotonIQ](https://photoniq.macrometa.com/)

MacrometaはAkamaiと2022年11月にパートナーシップを発表しており、GDNがAkamai Cloud Computing上で動作し、Akamai EdgeWorkersとの統合も行えるようになっています。

- [Expanding The Edge With Macrometa And Akamai](https://www.macrometa.com/blog/expanding-the-edge-macrometa-akamai)

![edge-compute-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/073636e9-eedc-b8bd-ed88-0d21c1a10a8f.png)


## Macrometa Global PoP

GDNは世界175のPoPで利用することができ、複数のサービスプロバイダー上に構築できますので、1つのクラウドプロバイダーの基盤にロックインされることはありません。
分散されたプラットフォームでは世界中のデバイスの90%から50ミリ秒以内のレイテンシーを実現することを目指しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/ba885b3e-95a4-7b9f-6d72-3c43a560f0be.png)


- [Pricing](https://www.macrometa.com/pricing)

- [Computing On The Edge: Screaming In The Cloud Podcast Recap](https://www.macrometa.com/blog/computing-on-the-edge-with-macrometa)


## GeoFabricsの特徴

GDNではGeoFabrics機能によりデータを格納するロケーションを明示的に設定することが可能です。
地域を選択することや特定のロケーションを個別で設定することができます。
この機能によりユースケースによって必要最低限のロケーションのみに利用コストを削減したり、GDPRの準拠に対応することができます。

- [Introducing GeoFabrics](https://www.macrometa.com/blog/introducing-geofabrics)

GeoFabricを作成するとMacrometa GDNはGlobal URLと有効化したロケーションのURLを生成します。
このGlobal URLはgeo-routing機能を提供し、リクエストが発行された場所に最も近いロケーションに自動的にルーティングされます。

<img width="560" alt="test.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/98c28167-2f16-6f27-8913-e82f318c81ff.png">

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/c2f47738-96b4-a847-20b1-5ba49854d273.png)


## Global Data Mesh

Global Data Meshは分散されたプラットフォームを活用し、世界中のどこからでも超低遅延に読み取り書き込みを行うことができます。
データがどこのロケーションに書き込まれたとしても、その他すべてのロケーションに数十〜数百msで伝搬され、同じ情報を提供できることを保証しています。
複数のロケーションでデータ同期を行う際に生じる競合(conflict)を回避するためにConflict-Free Replicated Data Types (CRDTs)を導入しています。

- [Global Data Mesh](https://www.macrometa.com/platform/global-data-mesh)
- [Motivating CRDTs](https://www.macrometa.com/blog/motivating-crdts)

![global-data-mesh.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/0a72de4d-1df5-7f28-7458-85287e5fb5b8.png)


## MacrometaとDynamoDBの主な違い

DynamoDBは、Amazon Web Services（AWS）が提供する高速でスケーラブルなNoSQLデータベースサービスです。柔軟性があり、必要に応じてデータの読み書き能力を調整できます。大規模なデータセットを扱い、高い可用性と耐久性を提供します。

- [Amazon DynamoDBとは]( https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/Introduction.html)

本比較表は以下の記事を参考にし、一部抜粋、修正しております。
- [See how Macrometa stacks up against DynamoDB](https://www.macrometa.com/dynamodb-vs-macrometa)

:::note warn
執筆時時点に確認した機能であり、最新の情報については各ドキュメントをご確認ください。
:::

|項目|DynamoDB|Macrometa|
|---|---|---|
|リリース|2012年|2018年|
|プラットフォーム|AWS|Hydbrid Cloud & On Prem|
|データベースモデル|Key-Value Store|Document Store, Key-Value Store, Graph, Streams, Event Processing|
|グローバル|DynamoDB Global Table(29 region) |Geo Fabrics(175 PoPs)|
|アクセスメソッド|RESTful HTTP API, CLI|RESTful HTTP API, CLI, Client Drivers, REST QL and Graphql, Web Socket & Popular Event Message Formats|
|コンピューティングレイヤー| No | Yes |
|JSON サポート|Yes|Yes|
|セカンダリーインデックス|Yes|Yes|
|SQL|SQL 互換の PartiQL|SQL like Query Language|
|サーバーサイドスクリプト| No |Functions, Query Workers, Stream Workers|
|AI エッジサービス|No|PhotonIQ|
|インメモリーサービス|DynamoDB Accelerator| No |

DynamoDBとMacrometaともにNoSQLを提供するサービスにはなりますが、展開するプラットフォームには大きな違いがありMacrometaはハイブリッドクラウドとオンプレミスを併用してより多くの地域をカバーすることができます。
また、コンピューティング層がMacrometaにはあることにより、データベースモデルにDocument Store, Graph, Streams, Event Processingなどが利用できとアクセスメソッドにも利用できるデータベースモデルに伴い違いがでます。
Macrometaは世界中のより多くのユーザーに向けて低レイテンシーの様々なサービスを提供するのに向いているといえます。

## Macrometa機能詳細

Macrometaの機能に関してのリンクをまとめました。

**データストア**

- [Document Store](https://www.macrometa.com/docs/collections/documents/#document-handle) : ドキュメントとしてデータを保存
- [Key-Value Store](https://www.macrometa.com/docs/collections/keyvalue/) : データをキーと値のペアで保存
- [Graphs](https://www.macrometa.com/docs/graphs/) : 関連性やつながりをグラフ構造で保存
- [Redis Mode Collection (Beta)](https://www.macrometa.com/docs/collections/redis-mode/) : Redis API 互換
- [Dynamo Table](https://www.macrometa.com/docs/collections/dynamo/create-dynamo-table) : DynamoDB 互換

**検索エンジン**

- [Fulltext Search](https://www.macrometa.com/docs/search-views/fulltext-search/) : 全文検索エンジン
- [Semantic Search Views](https://www.macrometa.com/docs/search-views/semantic-search/) : ベクトル検索

**Real Time Query & Event Processing**

- [Stream Workers](https://www.macrometa.com/docs/cep/) : GDN上でイベント駆動型ワークフローを実現
- [Query Workers](https://www.macrometa.com/docs/queryworkers/) : GDN上でSQLクエリを実行

**Serverless Computing**

- [Akamai in Macrometa](https://www.macrometa.com/docs/akamai) : Akamai EdgeWorkersとGDNの連携

**AI Edge Services**

- [PhotonIQ](https://www.macrometa.com/docs/photoniq/) : GDN上で動作するAI機能を生かしたサービス群

# まとめ

Macrometaを利用することで世界中のユーザーに向けて低レイテンシーのサービスを構築しやすくなります。
また、プラットフォームは特定のクラウドプロバイダーに縛られることなく、ロックインのリスクを下げることも可能です。
AkamaiのCDNやEdgeWorkersと連携することで、さらに柔軟性のあるアプリケーションの構築も行うことができます。

Akamai はCDN、セキュリティ、クラウドサービスを通じ、オンラインライフの力となり守っています。本稿でご紹介したような課題やご相談があれば、お気軽にお問い合わせください
- [Akamai 営業担当者へのお問い合わせ](https://www.akamai.com/ja/why-akamai/contact-us/contact-sales)

# 関連記事

アカマイ・テクノロジーズ合同会社はQiitaでAkamai Cloud Computing Services関連など開発者向けの記事を掲載しております。

https://qiita.com/xenbase/items/52e2956a64cedc772bd9