반응형
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 복제본 세트를 성공적으로 구성할 수 있습니다. 추가적인 설정이나 관리가 필요하면 언제든 질문하세요!
반응형