sql >> データベース >  >> NoSQL >> MongoDB

MongoDB Atlasの概要:パート1

    クラウドコンピューティングアプローチは、データ処理システムの実行に関連するいくつかの課題に対処します。データ主導の企業は、クラウドサービスによる急速なビジネス変革を推進しており、多くの企業は、クラウドサービスを、以前の従来のインフラストラクチャモデルよりも自動化、信頼性、およびオンデマンドスケーリングの大幅な強化と見なしています。 Software-as-a-Service(SaaS)パラダイムのオンデマンドの性質は、組織が必要なときに必要なものを購入できることを意味します。もちろん、費用対効果の面は非常に重要ですが、それだけではありません。

    システムアーキテクチャの設計では、それぞれに適切なレベルのパフォーマンスで、適切な数のユーザーに適合するシステムを常に探しています。パフォーマンスの問題やボトルネックを回避したいと考えています。これらの問題が発生した場合は、変化する需要に適応するシステムが必要です。

    私たちは物事をより速くしたいとも思っています。アジャイル開発プロセスはますます人気が高まっています。主な理由は、初期のビジネス価値の提供を加速し、(継続的な計画とフィードバックのプロセスを通じて)ROIを最大化できることです。

    最後に、複雑さを軽減したいと考えています。 MongoDBの重要な機能は、組み込みの冗長性です。 2つ以上のデータノードがある場合、それらはレプリカセットまたはmongodbシャードとして構成できます。適切な自動化が実施されていないと、複数のチーム(ネットワーク、ストレージ、OSなど)にとって繰り返し発生するタスクになる可能性があります。クラウドの自動化は、組織内のさまざまなグループ間の依存関係を減らすのに役立ちます。たとえば、新しいデータベースシステムを作成するときに、ネットワークチームを関与させる必要がない場合があります。

    クラウドの自動化は、時間とお金を節約するだけでなく、困難な市場で組織の競争力を高めます。

    このブログでは、これらすべての問題に対処しようとするMongoDBのソリューションであるAtlasを見ていきます。

    MongoDBアトラス入門

    MongoDB Atlasを開始するには、https://cloud.mongodb.comにアクセスしてください。登録フォームでは、電子メール、会社、国、携帯電話番号などの最低限の情報を提供する必要があります。

    MongoDB Atlasは、インフラストラクチャのプロビジョニングとセットアップで優れた機能を果たします。プロセス全体で、さまざまな展開オプションを案内する動的なWebインターフェイスが使用されます。簡単で直感的で、専門知識は必要ありません。

    最初のログイン後、最初のクラスターを構築するように求められます3つの最も重要な雲の1つ。 Atlasは、Amazon AWS、Google Cloud、およびMicrosoftAzureと連携します。選択に基づいて、優先するデータセンターの場所を選択できます。可用性を高めるために、マルチリージョン、ワークロード分離を設定するか、さまざまなレプリケーションオプションを設定できます。各Atlasプロジェクトは最大25のクラスターをサポートしますが、サポートと連絡を取った後は、さらに多くのクラスターをホストできるようになります。

    サーバーの適切なサイズを選択し、IOとストレージ容量。この記事では、無料版を使用します。プロトタイピング、初期開発、または学習のために、MongoDBAtlasを無料で開始できます。クレジットカードは必要ないので、隠れたコストを気にする必要はありません。 M0サンドボックスと呼ばれる無料版は以下に限定されています:

    • 512MBのストレージ
    • vCPU共有
    • RAM共有
    • 最大接続数100
    • プロジェクトごとに1つのM0クラスターの制限があります。

    専用クラスターの場合、MongoDB Atlasは、使用量に基づいて1時間ごとに請求されます。レートは、いくつかの要因、最も重要なのは、使用するサーバーのサイズと数によって異なります。価格は0.08/hr(M10、2GB RAM、10GBストレージ、1vCPU)から始まり、768GB RAM、4096 GBストレージ、96vCPUを備えたM700は$ 33.26/hrからです。もちろん、バックアップのコストなど、他のコスト要因を含める必要があります。

    MongoDBの計算によると、AWSはM40の3ノードレプリカセットであり、付属の80GBの標準ブロックストレージを使用して24時間年中無休で1か月間実行すると、約947ドルの費用がかかります。

    基本的なセットアップはレプリケーションで機能します。シャーディングが必要な場合は、M30インスタンスタイプが最小です(8GB RAM、40GBストレージ、2vCPU、価格は$ 0.54 / hrから)。

    MongoDB AtlasNetworkAccessの初期設定

    クラスターの作成後に行う必要のある最初のステップの1つは、IPホワイトリストを有効にすることです。どこからでもアクセスできるようにするには、ホワイトリストエントリを0.0.0.0/0に設定できますが、お勧めしません。 IPアドレスがわからない場合は、AtlasがIPアドレスを特定するのに役立ちます。

    接続をより安全に保つために、ネットワークピアリング接続を設定することもできます。この機能は、M0、M2、およびM5クラスターでは使用できません。ネットワークピアリングにより、MongoDBVPCとクラウドプロバイダー間の接続が可能になります。ピアVPCネットワークにより、さまざまなVOC tiがプライベートスペースで通信できるようになり、トラフィックはパブリックインターネットを通過しません。

    新しいクラスターでの作業を開始するには、初期ユーザーを作成します。 [データベースアクセス]タブで実行します。 MongoDBは、ソルトチャレンジレスポンス認証メカニズムを使用します。これは、SHA-256、ユーザーの名前、パスワード、認証データベースに対するユーザーの資格情報に基づくセキュリティメカニズムです。

    既存のMongoDBクラスターのMongoDBアトラスへの移行 既存のオンプレミスクラスターをMongoAtlasに移行する可能性もあります。これは、LiveMigrationServiceと呼ばれる専用サービスを介して行われます。 Atlas Live Migrationプロセスは、MongoDBで制御されるアプリケーションサーバーを介してデータをストリーミングします。

    ライブマイグレーションは、MongoDBAtlasのクラスターをソースデータベースと同期させることで機能します。このプロセスの間、アプリケーションはソースデータベースからの読み取りと書き込みを続行できます。プロセスは今後の変更を監視するため、すべてが複製され、移行はオンラインで実行できます。アプリケーションの接続設定をいつ変更するかを決定し、カットオーバーを実行します。プロセスを実行しにくいAtlasは、ホワイトリストIPアクセス、SSL構成、CAなどをチェックする検証オプションを提供します。

    ここで重要なのはサービスが無料であるということです。

    オンライン移行が必要ない場合は、mongoimportを使用することもできます。最小バージョン3.2.7でmongoシェルを使用し、常にSSLを使用します。ここからテストデータを取得できます。

    ​mongoimport --host TestCluster-shard-0/testcluster-shard-*****.azure.mongodb.net:27017,testcluster-shard-****.azure.mongodb.net:27017,testcluster-shard-******.azure.mongodb.net:27017 --ssl --username admin --authenticationDatabase admin  --type JSON --file city_inspections.json
    
    2019-08-15T21:53:09.921+0200 WARNING: ignoring unsupported URI parameter 'replicaset'
    
    2019-08-15T21:53:09.922+0200 no collection specified
    
    2019-08-15T21:53:09.922+0200 using filename 'city_inspections' as collection
    
    Enter password:
    
    
    
    2019-08-15T21:53:14.288+0200 connected to: mongodb://testcluster-shard-*****.azure.mongodb.net:27017,testcluster-shard-*****.azure.mongodb.net:27017,testcluster-shard-*****.azure.mongodb.net:27017/?replicaSet=TestCluster-shard-0
    
    2019-08-15T21:53:17.289+0200 [........................] test.city_inspections 589KB/23.2MB (2.5%)
    
    2019-08-15T21:53:20.290+0200 [#.......................] test.city_inspections 1.43MB/23.2MB (6.2%)
    
    2019-08-15T21:53:23.292+0200 [##......................] test.city_inspections 2.01MB/23.2MB (8.6%)
    
    ...
    
    2019-08-15T21:55:09.140+0200 [########################] test.city_inspections 23.2MB/23.2MB (100.0%)
    
    2019-08-15T21:55:09.140+0200 81047 document(s) imported successfully. 0 document(s) failed to import.

    データを確認するには、mongoshellでログインします。

    mongo "mongodb+srv://testcluster-*****.azure.mongodb.net/test" --username admin
    
    MongoDB shell version v4.2.0
    
    Enter password:
    
    connecting to: mongodb://testcluster-shard-00-00-*****.azure.mongodb.net:27017,testcluster-shard-00-02-*****.azure.mongodb.net:27017,testcluster-shard-00-01-*****.azure.mongodb.net:27017/test?authSource=admin&compressors=disabled&gssapiServiceName=mongodb&replicaSet=TestCluster-shard-0&ssl=true
    
    2019-08-15T22:15:58.068+0200 I  NETWORK [js] Starting new replica set monitor for TestCluster-shard-0/testcluster-shard-00-00-*****.azure.mongodb.net:27017,testcluster-shard-00-02-*****.azure.mongodb.net:27017,testcluster-shard-00-01-*****.azure.mongodb.net:27017
    
    2019-08-15T22:15:58.069+0200 I  CONNPOOL [ReplicaSetMonitor-TaskExecutor] Connecting to testcluster-shard-00-01-*****.azure.mongodb.net:27017
    
    2019-08-15T22:15:58.070+0200 I  CONNPOOL [ReplicaSetMonitor-TaskExecutor] Connecting to testcluster-shard-00-00-*****.azure.mongodb.net:27017
    
    2019-08-15T22:15:58.070+0200 I  CONNPOOL [ReplicaSetMonitor-TaskExecutor] Connecting to testcluster-shard-00-02-*****.azure.mongodb.net:27017
    
    2019-08-15T22:15:58.801+0200 I  NETWORK [ReplicaSetMonitor-TaskExecutor] Confirmed replica set for TestCluster-shard-0 is TestCluster-shard-0/testcluster-shard-00-00-*****.azure.mongodb.net:27017,testcluster-shard-00-01-*****.azure.mongodb.net:27017,testcluster-shard-00-02-*****.azure.mongodb.net:27017
    
    Implicit session: session { "id" : UUID("6a5d1ee6-064b-4ba8-881a-71aa4aef4983") }
    
    MongoDB server version: 4.0.12
    
    WARNING: shell and server versions do not match
    
    MongoDB Enterprise TestCluster-shard-0:PRIMARY> show collections;
    
    city_inspections
    
    MongoDB Enterprise TestCluster-shard-0:PRIMARY> db.city_inspections.find();
    
    { "_id" : ObjectId("56d61033a378eccde8a83557"), "id" : "10284-2015-ENFO", "certificate_number" : 9287088, "business_name" : "VYACHESLAV KANDZHANOV", "date" : "Feb 25 2015", "result" : "No Violation Issued", "sector" : "Misc Non-Food Retail - 817", "address" : { "city" : "NEW YORK", "zip" : 10030, "street" : "FREDRCK D BLVD", "number" : 2655 } }
    
    { "_id" : ObjectId("56d61033a378eccde8a83559"), "id" : "10302-2015-ENFO", "certificate_number" : 9287089, "business_name" : "NYC CANDY STORE SHOP CORP", "date" : "Feb 25 2015", "result" : "No Violation Issued", "sector" : "Cigarette Retail Dealer - 127", "address" : { "city" : "NEW YORK", "zip" : 10030, "street" : "FREDRCK D BLVD", "number" : 2653 } }
    
    ...
    
    { "_id" : ObjectId("56d61033a378eccde8a8355e"), "id" : "10391-2015-ENFO", "certificate_number" : 3019415, "business_name" : "WILFREDO DELIVERY SERVICE INC", "date" : "Feb 26 2015", "result" : "Fail", "sector" : "Fuel Oil Dealer - 814", "address" : { "city" : "WADING RIVER", "zip" : 11792, "street" : "WADING RIVER MANOR RD", "number" : 1607 } }
    
    Type "it" for more
    
    MongoDB Enterprise TestCluster-shard-0:PRIMARY>
    結論

    パート1は以上です。次の記事では、監視、バックアップ、日常の管理、およびデータレイクを構築するためのMongoDBの新しいサービスについて説明します。しばらくお待ちください!


    1. MongoDBスキーマ計画のヒント

    2. 大文字と小文字を区別しない方法でMongodbを並べ替える

    3. WindowsホストからドッキングされたRedisにアクセスする

    4. MongoDBにはネイティブRESTインターフェースがありますか?