외부에서 MongoDB 서버에 접근하기

공인 IP 설정과 ACG 구성을 이용해 네이버 클라우드 플랫폼 MongoDB에 접근하는 방법을 설명합니다.

공인 IP 설정

생성된 서버에 외부에서 접근하기 위해서는 공인 IP 설정이 필요합니다.

① 메뉴에서 Public IP를 클릭합니다.

② 공인 IP 신청을 클릭합니다.

③ 적용 서버 선택 드랍 다운에서 생성된 서버를 선택합니다.

  • Replica Set Cluster의 경우 Primary 서버와 Secondary 공인 IP를 할당 받아야 합니다.

  • Shard Cluster의 경우 Mongos 서버에 공인 IP를 할당 받아야 합니다.

④ [확인]을 클릭합니다.

⑤ 적용 서버 이름을 확인하고 [확인]을 클릭합니다.

⑥ 수분 후 IP 주소가 할당됩니다.

ACG 확인

① 서버를 선택합니다.

② ACG 오른쪽 팝업 메뉴를 클릭합니다. 현재 mongo-acg 룰이 적용되어 있습니다.

③ 좌측 ACG 메뉴를 통해서도 확인이 가능합니다.

④ 적용된 룰을 확장합니다.

⑤ 적용된 서버를 확인합니다.

⑥ 규칙보기를 클릭해 해당 ACG의 상세 설정을 확인합니다. 연결하고자 하는 MongoDB의 Port가 허용 포트로 등록되어 있어야 합니다.

⑦ ACG 룰 변경이 필요하면, ACG 설정 버튼을 클릭합니다.

⑧ 개인 PC 혹은 웹서버가 DB에 접속할 수 있도록 ACG 설정을 입력합니다.

  • 프로토콜 : 허용할 프로토콜을 선택합니다.
  • 접근소스 : 접근을 시도하는 곳의 IP나 대역을 기입합니다. 예를 들면 단일 IP의 경우 10.64.51.205만 입력하고, 10.64.51.XXX 대역에서 모든 접근이 필요할 경우 10.64.51.0/24를 입력합니다. 내부 Private IP가 NAT 방식을 통해 외부로 나갈 경우는 Public IP를 입력해야 합니다. 모든 대역을 오픈할 경우 0.0.0.0/0을 입력합니다. 가능하면 개인 PC, 웹서버에서만 접근이 가능하도록 단일 IP로 설정하길 권장합니다.

  • 허용포트(서비스) : 포트를 개별로 오픈할 경우 필요한 포트 번호를 허용 포트(서비스)에 입력 후 추가 버튼을 누릅니다. 필요한 포트가 여러 개일 경우 행을 추가해 입력합니다. 모든 포트를 오픈할 경우 1-65535를 입력합니다. 단, 이 경우 서버는 보안에 취약하게 됩니다. 예제에서는 1-65535를 입력 했습니다.

⑨ 추가 아이콘을 클릭합니다.

⑩ [생성]을 클릭합니다.

DB 연결

① node.js를 통해 MongoDB에 접속하는 예입니다.

설정한 공인 IP를 통하여 접속할 수 있습니다.

  • Connection String과 사용할 DB명은 아래와 같이 입력합니다.

    • Single Node : mongodb://[계정명:계정비밀번호]@[공인IP:PORT]/[DB명]

    • Mongos(Sharded Cluster) : mongodb://[계정명:계정비밀번호]@[공인IP:PORT,공인IP:PORT(IP:PORT는 멤버 개수만큼 등록)]/[DB명]

    • Replica Set : mongodb://[계정명:계정비밀번호]@[공인IP:PORT,공인IP:PORT(IP:PORT는 멤버 개수만큼 등록)]/[DB명]?replicaSet=[replicaSet명]

      ``` // Replica Set Connection String // mongoose.connect('mongodb://username:password@106.10.32.232:27017,106.10.32.233,106.10.32.234:27017/testdb?replicaSet=test01' // ,{ useNewUrlParser: true } )

 // Mongos(Sharded Cluster) Connection String
 // mongoose.connect('mongodb://username:password@106.10.32.232:27017,106.10.32.233,106.10.32.234:27017/testdb'
 // ,{ useNewUrlParser: true } )

 // Single Node Connection String
 mongoose.connect('mongodb://username:password@106.10.32.232:27017/testdb'
   ,{ useNewUrlParser: true } )

 var db = mongoose.connection;

 db.on('error', function(err){
     console.log("MongoDB Connection Fail", err);
 });

 db.once('open', function(){
     console.log("MongoDB Connection Success");
 });    
 ```

""에 대한 건이 검색되었습니다.

    ""에 대한 검색 결과가 없습니다.

    처리중...