菊池修治(193)5この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。こんにちは、菊池です。新機能であるConfigサーバのレプリカセット構成を試します。3.2はじめに作業の前提条件と手順のサマリです。手順サマリ公式のドキュメントに記載の手順に従って進めます。マニュアルには、サービスを停止して行う手順と、Ver.3.2.4以降でサポートされたオンラインで実施する手順が記載されています。Set今回の環境はVer.3.2.10なので、オンラインで可能な手順で実施していきます。要は、既存のConfigサーバを1台と新規のConfigサーバ3台でレプリカセットを作り、mongosをそちらに向けた後に既存のConfigサーバを削除する流れになります。注意事項レプリカセットに追加するConfig3/4/5は、必ず新規で構築しましょう。既存のConfig1/2をレプリカセットに追加しようとするとmongosが落ちました。mongosのログを常に確認し、異常がないか見ながら作業をしてください。Balancer停止まずは事前作業として、シャーディング時にデータチャンクを移動させる働きを持つBalancerを停止します。mongosにログイン(今回の構成ではPrimaryノードで起動)し、sh.getBalancerState()でBalancerの状態確認、sh.stopBalancer()で停止します。Config0をレプリカセットに変更Config0にログインし、1台のみのレプリカセットに変更します。rs.initiateでレプリカセットの初期化をします。}configsvr>Config0の設定ファイル/etc/mongod.confを修正し、一度再起動します。]これで再度ログインすると、プロンプトが変化し1台のみのレプリカセットになっています。次に、各サーバにConfigサーバを追加していきます。既存のConfigサーバが稼働するインスタンス上に追加でサーバを起動するようにします。以下のような設定ファイルを/etc/mongod0.confとして作成しました。csReplSetまた、既存の起動スクリプト/etc/init.d/mongodをコピーし、/etc/init.d/mongod0を作成しておきます。/etc/init.d/mongod0読み込む設定ファイルのみ/etc/mongod0.confに変更しておきましょう。$CONFIGFILE"mongod0を起動します。]これを3台全てのConfigサーバで実施し、Config3/4/5とします。再度、Config0に戻り、起動したConfig3/4/5をレプリカセットのメンバーとして追加します。0としておくことで、Primaryの選出には参加せず、昇格もしないメンバーとなります。1}csReplSet:PRIMARY>追加した全てのメンバーが"SECONDARY"となっていればデータの同期も完了です。追加したConfigサーバは全てWiredTigerストレージエンジンでデータを保持しています。レプリカセットの設定を変更し、全てのメンバーのPriorityとvotesを1とします。Config0を切り離し最初にレプリカセットのメンバーとなったConfig0を切り離します。Config0でrs.stepDownによりPrimaryから降格させます。scccの記述を削除し、再起動します。"REMOVED"となり、新たに別のConfigサーバがPrimaryに選出されています。mongosの接続先変更mongosの接続先をレプリカセットに変更します。/etc/mongos.confのconfigDB:を、新たに作成したレプリカセットの接続先に書き換えます。]これでレプリカセットへの接続ができました。あったConfigサーバを停止します。Config0をレプリカセットから完全に削除します。}csReplSet:PRIMARY>これで新規に追加した3台のみのレプリカセットになりました。1}csReplSet:PRIMARY>あとは個別に起動しているmongodを停止していけばOKです。最後に、停止していたBalancerを再開させます。以上で全ての手順が完了です。まとめVer.3.2からサポートされたConfigサーバのレプリカセットへの移行を試しました。WiredTigerへの移行も含め、公式のドキュメントにしっかりと移行の手順が記載されていますので、その通りに実施していけば問題ありません。AWSの提供するCloudFormationテンプレートで構築したMongoDBクラスタを、最新バージョン・構成へ移行する手順を何回かに分けて紹介してきました。今後も、MongoDBの新しいバージョンや新機能の追加があれば紹介していきたいと思います。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。和樹25こんにちは植木和樹@上越オフィスです。Terminalの機能確定版がリリースされたので試してみました。CAFEの他、NTTデータとセブンイレブンの取り組みや、サインポスト、Zippinなどの各社と流通・小売業との連携を業界マップに作成してみました。川原征大4形態素解析の入門中で、ブログの内容の分析を試しています。作業効率化をしたという話。夏目祐樹395こんにちは、CX事業本部の夏目です。MacのタッチバーのタッチIDが非常に便利なのですが、Terminalでsudoを叩かないと行けないときに使えたらなぁと思ったので、情報を共有します。臼田佳祐295ワークフロー自動化OSSのn8nをAWS環境で建てて検証してみました。非常に期待できるサービスです。Fargateの勉強をしています。使ってみたい方は参考にしてください。洋介255SnowflakeがAWSの東京リージョン上で稼働するようになりました。データを日本に置けます。芳賀健233こんにちは!猫様の忠実なるしもべ、芳賀健です。Tokyoで開催されました。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。