Help us understand the problem. What is going on with this article?

AWS上のMongoDBをAtlasにLiveMigrationする

AWS EC2インスタンス上にインストールされているSelf ManagedなMongoDB ClusterをAtlasに移行する際の覚書

2019/10/07 追記

関連記事: NLBでTLS終端を行いAtlasのLiveMigrationを行う も書きました。

基本的には公式ドキュメントに網羅されているが

Enter the hostname and port of the primary member of the source cluster into the provided text box. For example, mongoPrimary.example.net:27017.

とある。

Live Migration Server自体は、Atlas上に作成するClusterとは別物であるため、vpc peeringを行うことはできないので、PrimaryサーバがLive Migration Serverからインターネット経由で見える必要がある。

今回移行対象のDBサーバーはPrivate subnetに配置されているため、Elastic IPは存在しない。
そこで以下のように、Network Load Balancerを経由することでLive Migrationを実行する。

Untitled Diagram.png

PrimaryDBインスタンスが稼働しているサブネットのAZ内のpublic subnet内にNLBを作成し、
NLBのリスナーおよびターゲットとして、private subnetのDBインスタンスの27017ポートを指定する。

※ 今回のLBは負荷分散ではなく、LiveMigrationのための疎通が目的であり、かつPrimaryインスタンスに接続する必要があるため、LBの配置されるAZは1つのみ指定し、ターゲットも1つのインスタンスのみ指定する。
※ LiveMigration実施中にフェイルオーバーが発生した場合は未検証。

また、PrimaryDBが稼働しているEC2インスタンスに以下を許可するキュリティグループを一時的にアタッチする

  • AtlasのLiveMigration画面で指定されたCIDRからの27017ポートへのInbound通信
  • Public SubnetのCIDRから27017ポートへのInbound通信 (これがないとLBのヘルスチェックに成功しない)
  • 接続確認用のオフィスのIPなどから27017ポートへのInbound通信

LBのヘルスチェックが通れば

mongo "mongodb://<LBのDNS name>"

で接続することができるようになる。

Atlasのコンソールでも<LBのDNS name>:27017を指定することで無事Live Migrationが開始する。

関連:
パブリック向けロードバランサーをプライベート IP アドレスを持つ EC2 インスタンスへ接続する方法を教えてください。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away