Redis
 Computer >> コンピューター >  >> プログラミング >> Redis

サーバーレスに最適なデータベース

サーバーレスは、最小限のメンテナンスと経済的コストでアプリケーションをエンドツーエンドで構築したい開発者に最適です。サーバーレス機能を使用すると、バックエンドインフラストラクチャを維持せずに独自のコードを実行できます。ただし、設計上ステートレスであるため、外部データストアが必要です。では、次の質問は、どのデータベースがサーバーレスに最適かということです。幸いなことに、データベースベンダーはサーバーレスの傾向を認識しており、サーバーレスサービスを開始するか、自社製品を適応させようとしています。この記事では、最初にデータベースをサーバーレスに最適にするものをリストします。次に、個人的にサーバーレスの優れたデータベースの候補と思われるデータベースをリストします。

データベースがサーバーレスに最適な理由

  • 使いやすさ: 次世代の開発者は、テクノロジーの学習に何日も何週間も費やしたくありません。彼らは、ドキュメントのページを読むのではなく、YouTubeのビデオを見て学びたいと思っています。したがって、サーバーレス用のデータベースはシンプルで直感的である必要があります。
  • サーバーレス価格: 価格はゼロにスケーリングする必要があります。使用しないものにお金を払う必要があるのはなぜですか。帯域幅ごとまたはリクエストごとに基づく価格設定モデルは、正確な使用量と相関しているため、サーバーレスです。個人的には、帯域幅よりも見積もりが常に簡単なので、リクエストごとの方が好きです。
  • 開発者向けの価格設定: 価格設定は、トラップのないシンプルなものにする必要があります。一部の価格設定ページは非常に複雑であるため、詳細を説明する追加の記事やブログ投稿があります。一部のベンダーは複雑な計算機を持っています。残念ながら、ほとんどのベンダーは、リスクを最小限に抑えるために複雑な価格設定を好みます。そのため、請求書を表示する前に支払う金額を予測することは困難です。
  • サーバーレス接続: サーバーレス機能は、数秒で数百から数千にまで拡張できます。データベースに持続的接続が必要な場合は、データベースの接続制限に簡単に達する可能性があります。 HTTPベースの接続は、より軽量で一般的にそのような制限がないため、このような問題はありません。
  • 低レイテンシ: サーバーレス機能では、余分な遅延が発生します。しかし、実際のコストは、不幸なユーザーがWebサイトでアイドル状態で待機していることです。
  • 移植性: 別のクラウドベンダーに移行する場合は、データレイヤーを書き直す必要がありますか。または、リモートデータベースに接続せずにラップトップでアプリケーションをテストできますか。
  • 一貫性: 一般に、一貫性とパフォーマンスの間にはトレードオフがあります。データベースは、一貫性とパフォーマンスの範囲のさまざまな場所にあります。優れたデータベースでは、一貫性の保証を明確に定義して、ユーザーが起こりうる問題とリスクを認識できるようにする必要があります。
  • スケーラビリティ: アプリケーションが高スループットを受信し始めると、データベースは維持されます。理想的には、スケーリングは自動であるか、クラウドプロバイダーによって管理されている必要があります。心配する必要はありません。
  • エッジフレンドリー: CloudflareWorkersとFastyComputeは、ユーザーに最も近いエッジでサーバーレス機能を実行できるようにする優れたテクノロジーです。これらにはRESTベースの接続が必要ですが、遅延を最小限に抑えるためにグローバルに複製されたデータベースも必要です。
  • グローバル性: アプリケーションが世界的に普及するにつれて、世界中で優れたパフォーマンスを提供するデータベースが必要になります。マルチリージョンレプリケーションは、これを可能にする重要な機能です。ただし、注意して、価格を確認してください。この機能は高額になる可能性があります。
サーバーレスに最適なデータベース?

このセクションでは、以下のデータベースを試したときの感想とメモを共有します。それらは科学的分析に基づいていませんが、実際の比較分析を行う前にアイデアを提供したいと思います。

MongoDB(アトラス)

  • 使いやすさ:MongoDBは、最も人気のあるNoSQLデータベースおよびドキュメントストアです。そのAPIは、JSONベースのデータモデルのおかげで非常にシンプルで直感的です。

  • 移植性:ほとんどすべてのクラウドプロバイダーには、MongoDB APIを備えたデータベース製品があり、オンプレミスでMongoDBを自分で実行できます。したがって、移植性の問題はありません。

  • MongoDB Atlasは最近、サーバーレスデータベースタイプを発表しました。私の個人的な印象は、サーバーレス価格設定モデルの下でホストされているMongoDBインスタンスのようなものだったということです。ここに見られるように、Node.jsSDKを含むサーバーレスデータベースでは多くの機能がサポートされていません。

  • サーバーレス接続:MongoDB Atlasは、HTTPベース(RESTなど)のAPIを提供していません。接続制限に簡単に達することができます。そのため、このhttps://docs.atlas.mongodb.com/best-practices-connecting-from-aws-lambda/

    を回避する方法について記事を公開しています。

    ** _(更新)MongoDBAtlasはHTTPベースのデータAPIを起動しました_

Cassandra(Datastax Astra)

  • Datastax Astraは、ネイティブのCassandraドライバーに加えてRESTおよびGraphQLAPIを提供します。
  • 使いやすさ:私にとって、MongoDBやRedisと比較してCassandraを学ぶのは困難でした。しかし、Datastaxチームはコンソールで良い仕事をしました、それは非常に直感的でした。しかし、それでも私は、RESTAPIのさまざまなバージョンのドキュメントで迷子になったのを覚えています。
  • 開発者向けの価格設定:DatastaxAstraの価格設定は単純なものではありません。すべてのユニットは個別に計算され(読み取り、書き込み、帯域幅)、クラウドプロバイダーや地域によっても価格が異なります。 Datastaxには、読み取り/書き込み単位(RRUおよびWRU)の独自の定義があります。

DynamoDB(AWS)

  • 使いやすさ:AWSユーザーの場合、DynamoDBの起動と操作は簡単です。ただし、MongoDBにはより簡単で直感的なクエリAPIがあると思います。
  • サーバーレス接続:DynamoDB接続はhttpベースであり、接続制限の問題はありません。
  • 移植性:最大の問題はここにあります。 DynamoDBはAWS以外では使用できません。

FaunaDB

  • 一貫性:おそらくFaunaDBは、一貫性の点でこのリストの中で最高です。グローバルレプリケーションとともに一貫性を保証します。ただし、これには追加のパフォーマンスコストがかかることに注意してください。このような強力な一貫性が本当に必要かどうかを検討してください。
  • パフォーマンス:一貫性が高いため、他の製品よりもレイテンシが高くなります。
  • 使いやすさ:正直なところ、FQLは私が習得して使用するのが最も難しいものでした。ただし、FaunaDBはGraphQL APIもサポートしているため、より簡単な場合があります。
  • サーバーレス接続:HTTPベースの接続のおかげで、FaunaDBは接続制限に問題がありません。

アップスタッシュ

  • 使いやすさ:Redisは、このリストでAPIを学ぶのにおそらく最も簡単です。 Upstashは、直感的でシンプルなインターフェースにより、クラウドでの使用を容易にします。
  • 開発者向けの価格設定:Upstashの価格設定は、リクエストごとに基づいています。また、価格の上限が設定されているため、所定の金額を超えて支払うことはありません。
  • パフォーマンス:メモリベースのストレージのおかげで、Upstashは最高のレイテンシー数値を提供します。アイデアを得るためにこれをチェックしてください。
  • 複雑なクエリ機能(結合など)が必要な場合、Redisデータ構造は実用的でない可能性があります。このような場合、より優れたSQLサポートを備えたデータベースが必要になる場合があります。

ファイヤーストア

  • 使いやすさ:Firestoreは、このカテゴリのこのリストで最高の1つです。 UIとAPIは非常に直感的です。
  • 移植性:DynamoDBと同様に、Firestoreにはベンダーロックインの問題があります。 GoogleCloudを使用している限り問題ありません。
  • パフォーマンス:以前、そのパフォーマンスについていくつかの不満を聞きました。私は個人的に、FaunaDBと一緒に他の人よりもレイテンシーが悪いことを経験しました。したがって、ここに疑問符があります。
最後の言葉

サーバーレスは開発の未来であり、サーバーレスへの移行が進んでいると思います。サーバーレスを使用すると、開発者や中小企業は非常に限られた予算でスケーラブルな製品を作成できます。データベースは、サーバーレスの原則と一貫性のあるオファリングを備えたこの移行の一部である必要があります。


  1. PC向けの12の最高のAndroid OS

    私たちの多くは Android OS に夢中になっているため、ほとんどの人が Android OS を複数のデバイス、特にラップトップやデスクトップ PC などのより強力なデバイスで使用することを望んでいます。 Google によって作成された Android オペレーティング システムは、最も頻繁に使用され、好評を博しているオペレーティング システムの 1 つです。主に、スマートフォンやタブレットなどのモバイル デバイス向けに設計されています。特にアプリの作成、ダウンロード、インストールに関しては、非常に多用途で幅広い機能を提供します。大部分の人はおそらく十分に認識しているように、PC 用の

  2. PC 向けニンテンドー DS エミュレーター ベスト 9

    任天堂がまだ素晴らしかった時代に戻りましょう。移動中の暇つぶしには携帯端末が最適でした。ニンテンドー DS は、New スーパー マリオ ブラザーズ、ゼルダの伝説、ポケモン レッドなどの素晴らしいゲームを生み出した、任天堂の人気のゲーム デバイスでした。 Nintendo DS は、これまでで最も広く使用された携帯ゲーム機の 1 つです。ニンテンドー DS ゲーム コンソールは、2004 年に作成およびデビューされ、同社で最も革新的なデュアル スクリーン デバイスでした。任天堂のコンソール ラインナップの実験として売り込まれたにもかかわらず、このハンドヘルド コンソールは約 1 億 5,400