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

クラウドでのMongoDBの自動化と管理

    データベース管理は、従来、複雑で時間がかかりました。セキュリティ、複雑なネットワーキング、バックアップの計画と実装、および監視という頭痛の種を伴う展開は、頭痛の種でした。データベースクラスターのスケールアウトは、主要な作業です。また、24時間年中無休の可用性と迅速なディザスタリカバリが期待される世界では、単一のデータベースクラスタを管理することもフルタイムの仕事になる可能性があります。

    SomeninesのClusterControlは、上記に対応するデータベースの導入および管理システムであり、オンプレミスまたはクラウドのどちらでも、高度なバックアップおよび監視機能を含む、冗長で安全なデータベースクラスタまたはノードの迅速な導入を促進します。とりわけNagios、PagerDuty、Zabbixをサポートするプラグインにより、ClusterControlは既存のインフラストラクチャおよびツールとうまく統合され、データベースサーバーを自信を持って管理するのに役立ちます。

    MongoDBは、今日の世界をリードするNoSQLデータベースサーバーです。公式のMongoDBまたはPerconaServerfor MongoDBのいずれかをデプロイおよび管理できるClusterControlを使用して、MongoDB Enterprise機能を組み込んだPerconaの競合製品を使用して、3つのデータノードを備えたMongoDBレプリカセットのデプロイについて説明し、いくつかの機能を確認します。 ClusterControlアプリケーションの。

    特にAmazonWebServicesを使用して、MongoDBに関連するClusterControlのいくつかの主要な機能を実行します。アマゾンウェブサービス(またはAWS)は、世界最大のInfrastructure as a Serviceクラウドプロバイダーであり、世界中で数百万人のユーザーをホストしています。S3を使用した実質的に無制限のオブジェクトストレージやEC2を使用した高度にスケーラブルな仮想マシンインフラストラクチャから、すべてのユースケースに対応する多くのサービスで構成されています。 Redshiftやマシンラーニングを使用したエンタープライズデータベースウェアハウジングに至るまで。

    このブログを読んだら、アマゾンウェブサービスホワイトペーパーのDIYクラウドデータベースも読むことをお勧めします。このホワイトペーパーでは、AWSクラウドのデータベースサーバーの構成とパフォーマンスに関する考慮事項について詳しく説明しています。さらに、MongoDB固有の詳細がより詳細に記載されたホワイトペーパーであるMongoDBDBAになりました。

    まず、4つのAWSインスタンスをデプロイする必要があります。本番プラットフォームの場合、インスタンスタイプは、前に説明したガイドラインに基づいて慎重に選択する必要がありますが、この目的では、2つの仮想CPUと4GBのRAMを備えたインスタンスで十分です。これらのノードの1つはClusterControlをホストし、他のノードは3つのデータベースノードを展開するために使用されます。

    データベースノードのセキュリティグループを作成し、ポート27017でインバウンドトラフィックを許可することから始めます。アウトバウンドトラフィックを制限する必要はありませんが、必要に応じて、ポート1024〜65535でアウトバウンドトラフィックを許可して、データベースサーバーからのアウトバウンド通信を容易にします。 。

    次に、ClusterControlノードのセキュリティグループを作成します。ポート22、および80でのインバウンドトラフィックを許可します。このセキュリティグループIDをデータベースノードのセキュリティグループに追加し、無制限のTCP通信を許可します。これにより、外部クライアントからデータベースノードへのsshアクセスを許可せずに、2つのセキュリティグループ間の通信が容易になります。

    インスタンスをそれぞれのセキュリティグループに起動し、インスタンスごとにsshキーを持つKeyPairを選択します。このタスクでは、すべてのインスタンスに同じKeyPairを使用します。 KeyPairのsshキーを紛失した場合は、新しいKeyPairを作成する必要があります。インスタンスを起動するときは、デフォルトのAmazon Linuxイメージを選択せず​​、代わりに、ここにリストされているサポートされているオペレーティングシステムに基づいてAMIを選択してください。 AWSリージョンEU-CENTRAL-1を使用しているため、この目的のために、CentOS7.3イメージであるコミュニティAMIami-fa2df395を使用します。

    AWSコマンドラインツールがインストールされている場合は、 aws ec2describe-instancesを使用してください 前に説明したコマンドを使用して、インスタンスが実行されていることを確認します。そうでない場合は、AWSウェブコンソールでインスタンスを表示します。確認したら、ssh経由でClusterControlインスタンスにログインします。

    KeyPairの作成時にダウンロードした公開鍵ファイルをClusterControlインスタンスにコピーします。 scpを使用できます この目的のためのコマンド。今のところ、centosユーザーのホームディレクトリであるデフォルトの/ home/centosディレクトリに残しておきましょう。私は私のs9s.pemと呼んでいます。 wgetツールをインストールする必要があります。次のコマンドを使用してインストールします。

    $ sudo yum -y install wget

    ClusterControlをインストールするには、次のコマンドを実行します。

    $ wget http://www.severalnines.com/downloads/cmon/install-cc
    $ chmod +x install-cc
    $ ./install-cc # as root or sudo user

    インストールでは、いくつかの最初の質問について説明します。その後、オペレーティングシステムのパッケージマネージャーを使用して依存関係を取得してインストールするのに数分かかります。

    インストールが完了したら、Webブラウザでhttp://を指定します。 describe-instances を使用して、インスタンスの外部向けアドレスを見つけることができます。 コマンド、またはAWSウェブコンソール経由。

    ログインに成功すると、次の画面が表示され、MongoDBレプリカセットのデプロイを続行できます。

    図1:ClusterControlへようこそ!

    ご覧のとおり、ClusterControlは既存のデータベースクラスターをインポートすることもできるため、既存のインフラストラクチャを新しい展開と同じくらい簡単に管理できます。

    ここでは、データベースクラスターのデプロイをクリックします。 。次の画面に、ClusterControlがサポートするデータベースサーバーとクラスタータイプの選択が表示されます。 MongoDB ReplicaSetというラベルの付いたタブをクリックします 。ここで関係する値はSSHユーザーです。 、SSHキーパス 、およびクラスター名 。ポートはすでに22であり、デフォルトのsshポートであり、使用しているAMIはSudoパスワードを必要としません。 。

    図2:MongoDBレプリカセットのデプロイ

    CentOS7AMIのsshユーザーはcentos 、SSHキーパスは /home/centos/s9s.pem 、または独自のキーファイル名に応じた適切なパス。 MongoDB-RS0を使用しましょう クラスター名として。デフォルトのオプションを受け入れて、[続行]をクリックします 。

    図3:デプロイメントの構成

    ここでは、MongoDB公式ビルドとPerconaビルドのどちらかを選択できます。どちらかを選択し、MongoDBを安全に構成するための管理者ユーザーとパスワードを指定します。 これらの詳細を提供しない限り、ClusterControlでは続行できません。 提供したクレデンシャルをメモします。後で使用する場合は、デプロイされたMongoDBデータベースにログインするためにクレデンシャルが必要になります。次に、レプリカセット名を選択するか、デフォルトを受け入れます。ベンダーリポジトリを使用しますが、必要に応じて、独自のリポジトリまたはサードパーティのリポジトリを使用するようにClusterControlを構成できることに注意してください。

    データベースノードを一度に1つずつ追加します。外部IPアドレスの使用を選択できますが、一般的に推奨されるホスト名を指定すると、ClusterControlはホスト内のすべてのネットワークインターフェイスを記録し、展開するインターフェイスを選択できるようになります。 3つのデータベースノードを追加したら、[デプロイ]をクリックします 。 ClusterControlは、MongoDBレプリカセットをデプロイします。 完全なジョブの詳細をクリックします クラスターの構成を実行するときに観察します。ジョブが完了したら、[データベースクラスター]画面に移動してクラスターを確認します。

    図4:自動回復

    よく見ると、自動回復がクラスターレベルとノードレベルの両方で有効になっていることがわかります。障害が発生した場合、ClusterControlは、問題のあるクラスターまたは個々のノードの回復を試みます。各ノードの横にある緑色のチェックマークは、クラスターのヘルスステータスも一目で確認できます。

    図5:バックアップのスケジュール

    ここで取り上げる最後の機能はバックアップです。 ClusterControlは、完全なクラスター整合性のあるバックアップ、または単に標準の mongodumpを可能にするバックアップ機能を提供します。 必要に応じてバックアップします。また、選択したスケジュールに対して定期的に実行するスケジュールバックアップを作成する機能も提供します。バックアップの保持も処理され、限られた期間だけバックアップを保持するオプションがあり、ストレージの問題を回避できます。

    このブログでは、MongoDBでのClusterControlの使用の概要を簡単に説明しようとしましたが、ClusterControlでサポートされている機能は他にもたくさんあります。非表示および/または遅延スレーブ、アービター、およびその他の機能を備えたシャードクラスターの展開がすべて利用可能です。詳細については、当社のWebサイトを参照してください。ここでは、ウェビナー、ホワイトペーパー、チュートリアル、トレーニングを検索し、ClusterControlを無料で試すことができます。


    1. RealmとSwiftUIを使用して1週間でチャートトッピングアプリを作成する方法

    2. ブラウザで実行されているJavaScriptからRedisサーバーに直接接続できますか?

    3. mongoシェルを使用してmongodbに大きなレコードを挿入します

    4. チャットシステムを実装するためにRedisリストをどのように使用できますか?