카테고리 없음

EC2 인스턴스에서 MongoDB 복제본 세트 구성 가이드

idea9329 2024. 10. 9. 17:18
반응형

EC2 인스턴스 여러 대를 사용해 MongoDB 복제본(replica set)을 구성하려는 경우, 다음 단계에 따라 진행할 수 있습니다. MongoDB 복제본 구성은 고가용성, 데이터 복원력, 자동 장애 조치를 제공하므로 매우 유용한 설정입니다.

1. 사전 준비

  • EC2 인스턴스 준비: MongoDB를 설치할 최소 3대 이상의 EC2 인스턴스가 필요합니다. 각각의 EC2 인스턴스는 별도의 IP 주소를 가져야 하며, 같은 VPC 또는 네트워크 상에서 통신할 수 있어야 합니다.
  • 포트 열기: MongoDB 기본 포트 27017이 모든 인스턴스에서 열려 있어야 합니다. 보안 그룹을 통해 각 인스턴스가 이 포트로 서로 통신할 수 있도록 설정합니다.

2. EC2 인스턴스에 MongoDB 설치

각 EC2 인스턴스에서 MongoDB를 설치합니다. Amazon Linux 2의 경우 다음 명령어를 사용해 MongoDB를 설치할 수 있습니다.

sudo yum update -y
sudo tee /etc/yum.repos.d/mongodb-org-6.0.repo <<EOF
[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/amazon/2/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
EOF

sudo yum install -y mongodb-org
  • 위 명령어는 MongoDB 6.0을 설치합니다. 설치 후 MongoDB 데몬을 실행합니다.
    sudo systemctl start mongod
    sudo systemctl enable mongod

3. MongoDB 설정 파일 수정

각 EC2 인스턴스에서 mongod.conf 파일을 수정하여 복제본 설정을 합니다. bindIp, replication  net 설정을 변경해야 합니다.

sudo vi /etc/mongod.conf

다음과 같은 내용으로 수정합니다.

net:
  bindIp: 0.0.0.0  # 모든 IP에서 연결을 허용하도록 설정

replication:
  replSetName: "rs0"  # 복제본 세트 이름을 설정

설정이 완료되면 MongoDB 데몬을 다시 시작합니다.

sudo systemctl restart mongod

4. 복제본 초기화

한 대의 EC2 인스턴스에 접속하여 MongoDB 셸을 실행하고 복제본 세트를 초기화합니다. 여기서는 프라이머리 노드를 초기화합니다.

mongo

MongoDB 셸에 들어가서 아래와 같이 복제본을 설정합니다. 이때 각 인스턴스의 private IP 주소를 사용합니다.

rs.initiate({
  _id: "rs0",  // 복제본 세트 이름
  members: [
    { _id: 0, host: "IP_ADDRESS_1:27017" },  // 첫 번째 프라이머리 노드
    { _id: 1, host: "IP_ADDRESS_2:27017" },  // 두 번째 세컨더리 노드
    { _id: 2, host: "IP_ADDRESS_3:27017" }   // 세 번째 세컨더리 노드
  ]
})
  • 여기서 IP_ADDRESS_1, IP_ADDRESS_2, IP_ADDRESS_3는 각 EC2 인스턴스의 IP 주소입니다.

5. 복제본 상태 확인

설정이 성공적으로 완료되면 복제본의 상태를 확인합니다.

rs.status()

정상적으로 구성되었는지 확인하고, 각 노드가 PRIMARY SECONDARY로 설정되었는지 확인합니다.

6. 복제본 세트의 연결 테스트

애플리케이션 또는 클라이언트에서 복제본 세트에 연결하려면 다음과 같은 URI를 사용합니다.

mongodb://IP_ADDRESS_1:27017,IP_ADDRESS_2:27017,IP_ADDRESS_3:27017/?replicaSet=rs0
  • 복제본 세트를 사용할 경우 애플리케이션이 자동으로 장애 조치를 처리하고, PRIMARY 노드가 변경되더라도 중단 없이 연결을 유지합니다.

7. 몽고디비 복제본 설정 후 주요 관리

  • 자동 장애 조치: PRIMARY 노드가 다운되면 SECONDARY 노드 중 하나가 자동으로 PRIMARY로 승격됩니다.
  • 데이터 동기화: 모든 SECONDARY 노드는 PRIMARY 노드의 데이터를 지속적으로 동기화합니다.
  • 장애 복구: PRIMARY 노드가 복구되면 자동으로 SECONDARY로 전환됩니다.
  • 백업 및 복구: 복제본 세트는 기본적으로 고가용성 및 데이터 복구를 제공합니다. 그러나 정기적인 백업을 고려하는 것도 중요합니다.

이 단계들을 따라 EC2 인스턴스에서 MongoDB 복제본 세트를 성공적으로 구성할 수 있습니다. 추가적인 설정이나 관리가 필요하면 언제든 질문하세요!

반응형