DocumentDB #1 DocumentDB – EC2에 연결하기

Explanation

요즘 포스팅도 안 하고 개인 프로젝트도 안 하고 눈누난나 지내고 있었는데,
근래 회사 동생들이 블로그 얘기도 많이 하고 해서, 마지못해 작성하는…
아주아주 오랜만의 포스팅!

오늘은 AWS의 DocumentDB를 EC2에 연결해서 외부에서 접속하는 방법에 대해 적어보려 합니다.
사실 이미 AWS에 잘 작성되어 있습니다..

* AWS DocumentDB – EC2 연결:
https://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/connect-ec2.html
* Studio 3T 연결:
https://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/studio3t.html

AWS의 글과 너무 똑같은 내용이라 별 의미가 없을 것 같지만, (아마도) 다른 내용으로 이어서 포스팅을 작성하게 될 것 같아서 우선 가볍게 1편으로 작성해보려 합니다.

0. 시작하기 전에

크게 진행 순서는
1. EC2 보안그룹 만들기
2. EC2 만들기
3. DocumentDB 보안그룹 만들기
4. DocumentDB 만들기
5. EC2 – DocumentDB 연결하기
6. Studio 3T로 연결하기

그런데 여기에서, 저는 이미 EC2를 사용하고 있어서 EC2를 따로 만들지 않고 EC2의 보안그룹도 그냥 그대로 사용할 예정입니다.

그리고 따로 언급하지 않았는데, 아래 내용은 모두 기본 VPC를 동일하게 사용하고 있습니다.

1. EC2 보안그룹 만들기

AWS 에서 EC2 서비스로 이동해서 보안그룹 -> 보안그룹 생성을 누릅니다.
그리고 이름과 설명을 입력한 후 인바운드를 설정해 줍니다.

이건 지금 제가 사용하고 있는 EC2의 보안그룹인데요. 옛날에 무지성으로 만들어서 보안그룹 이름도 디폴트 이름이고 http, https, ssh에 모든 ip를 허용해두었네요.
현재 블로그로 사용하고 있는 EC2라서 http, https 는 모두 열어두더라도 ssh는 제가 사용하는 ip로 제한해두는 편이 좋겠네요.

일단, 이번에 새로 보안그룹을 만드셨다면.
ssh로 자신의 ip를 통해 접근할 수 있도록 인바운드 규칙에 추가해주세요.
(이따가 ssh로 EC2에 접속해서 DocumentDB에 액세스 할 예정이에요.)

2. EC2 만들기

저는 기존의 사용하고 있던 EC2를 사용하고,
EC2를 만드는 방법은 이번 포스팅 논지에 좀 벗어나는 것 같아서 생략할게요.
(저는 Ubuntu 18.04.2 LTS 버전을 사용하고 있습니다.)

3. DocumentDB 보안그룹 만들기

1번과 동일하게 보안그룹 생성 버턴을 누릅니다.

보안그룹의 이름과 설명을 적어주고, 인바운드 규칙에 ‘사용자 지정 TCP’ 그리포 포트번호는 ‘27017’ 그리고 소스는 아까 1번에서 만들었던 EC2의 보안그룹을 설정한 후에 생성해줍니다.

약간의 설명을 더하자면, DocumentDB는 Amazon VPC 내에서 배포되어 EC2나 또는 동일한 VPC에 배포된 AWS의 서비스를 통해서만 직접 액세스 할 수 있습니다.
그래서 보안그룹에 동일한 VPC에 있는 EC2에 인바운드를 추가해서 외부에서 EC2를 통해서 DocumentDB에 액세스 합니다.

4. DocumentDB 만들기

Amazon DocumentDB 서비스로 이동해서 클러스트에서 생성 버튼을 누릅니다.

이름과 인스턴스 클래스, 개수 그리고 마스터 이름과 비밀번호를 입력합니다.

저는 포스팅을 하고 바로 지울거라 가장 저렴한 인스턴스 클래스와 개수는 1개로 하였습니다.

그리고 아래의 ‘고급 설정 표시’를 활성화 한 후 3번에서 만들었던 보안그룹을 설정해 줍니다.

리전 클러스터는 금방 만들어지는데 인스턴스는 만들어지는데 조금 시간이 걸려요 (한.. 3분?)

5. EC2 – DocumentDB 연결하기

이제 EC2에 가서 DocumentDB에 접속해볼까요? 우선 ssh로 EC2에 접속합니다.

여기 부분은 AWS 가이드 문서와 완전 동일합니다.
저는 ubuntu 18.04 버전을 사용하고 있습니다.

1. 패키지 관리 시스템에서 사용할 퍼블릭 키를 가져옵니다.

2. Ubuntu 버전에 맞는 명령을 사용하여 MongoDB의 목록 파일 /etc/apt/sources.list.d/mongodb-org-3.6.list를 생성합니다.

3. 다음 명령을 사용하여 로컬 패키지 데이터베이스를 다시 로드합니다.

4. MongoDB 셸을 설치합니다.

설치가 끝나면 DocumentDB의 클러스트 탭으로 이동해서 생성한 클러스터를 선택합니다.

이제 저 페이지에 ‘연결’에 보이는 것처럼 EC2의 ssh에 입력해주시면 되는데요.
우선 현재 인증기관 인증서가 없으니까 우선 인증서를 다운로드 해줍니다.

EC2에 ssh로 접속한 상태로 아래 명령어를 통해 Ubuntu에 인증서를 다운로드해 주는 거에요.

설치 후 ls 명령어를 입력해보시면 rds-combined-ca-bundle.pem 파일이 추가된 걸 확인 하실 수 있습니다.

그리고 아래에 적힌(‘mongo –ssl …’) 명령어를 입력해주시면 접속이 된답니다.

짜잔

6. Studio 3T로 연결하기

처음에는 Robo 3T 로 시도했는데, MacOS Big Sur v11.4 기준으로 접속이 안되더라고요.
Robo 3T랑 Studio 3T가 같은 회사 제품이던데.. 설마..
이거 막 오라클에서 오라클DB 에서는 되고 MySQL에서는 안되게 만들고 그런 전략인가??

그리고 Studio 3T로 글을 작성하려고 봤는데.. 이건, AWS 가이드의 Studio 3T의 내용과 너무 똑같네요.

(사실 앞선 내용들도…)

이건 정말로 그냥 AWS 가이드 글 보면서 따라하시면 뚝딱 될 거 같아요!

* 스튜디오 3T에서 Amazon DocumentDB 클러스터에 연결
https://docs.aws.amazon.com/ko_kr/documentdb/latest/developerguide/studio3t.html

이번 포스팅은.. 너무 간단한 내용이라 조금 민망한 감이 없지 않지만, 오랜만에 포스팅이라는 점에 의미를 두고 다음엔 조금 더 유익한 포스팅을 할 수 있기를…

Leave a Reply

  1. […] Select Box – CSS 효과주기 […]

  2. 김지현

    셀렉트 박스 펼침이 됐을떄 검정테두리가 두껍게 생기는데…그걸 제어하는 방법은 없을까요??

    1px로 흐리게 하고 싶다면 어떻게 해야하나요…펼칩목록에…

    • 안녕하세요, 제가 확인이 늦었네요.
      말씀하신 부분이 정확하게 어떤 부분인지 잘 모르겠네요..
      셀렉트 박스가 펼쳐졌을때에는 기본적으로 스타일이 들어가지 않는 것으로 알고 있습니다.
      해당 상황을 확인해야 정확하게 알 수 있을것 같습니다 ~

  3. 1029

    감사합니다 이 글은 꼭 지우지 말아주세요…

    • 댓글 남겨주셔서 감사합니다 :)

  4. kelly

    이거…한화면에 셀렉트가 많을때는 어떻게 사용하면될까요^^;;

    • 안녕하세요,
      지금은 간단한 이해를 위해 id를 선택자를 주었는데요, html과 css모두 class로 바꾸고 스크립트 부분을
      var select = $(“.color”);
      이런식으로 바꾸시면 될거 같습니다 :D

  5. 라떼9

    다른 글들은 봐도 이해안됬었는데, 이 글은 너무나 쉽게 이해가 쏙 되네요ㅠㅠ
    select 박스때문에 헤매고 있었는데 고맙습니다!! ^^

    • 이 글이 도움이 되었다고 하시니 저도 너무 기분이 좋아요ㅎ
      이렇게 댓글까지 남겨주셔서 제가 더 감사해요 ^^

  6. 젤조

    select option 디자인적용도 가능할까요? option의 padding이나, 마우스오버될때 효과를 넣고 싶은데 css만으로 가능한지 질문드립니다.
    select option{height:33px;font-size:14px;line-height:33px;color:#777;padding:10px;background-color:#f6f6f6;} 이렇게 적용시켰더니 font-size, color, background-color는 적용이 되는데 height,padding,line-height 속성은 적용이 안되네요.

    • 안녕하세요? 기본적으로 select option 에는 스타일 적용이 안된다고 생각하는게 좋을거 같아요. 브라우저나 os에 따라서 적용에도 차이가 있으니까요,
      보통은 스타일을 꼭 주어야한다면 다른 요소(li, div…)로 드롭다운 메뉴를 만들어서 셀렉트 기능을 대신해서 사용하는게 좋을꺼 같아요 :D

  7. yhoomor

    잘 활용하여 사용하겠습니다.
    정말 유용한 내용이었어요.
    감사드려요 ^^

    • 도움이 되었다니 다행이에요 :D
      이 댓글 때문인지 오늘 하루가 좋았던거 같아요, 감사합니다 ~

  8. 안녕하세요.. ie8에서 하니 깨지는 현상이 발생하네요 ㅠㅠ

    • 안녕하세요? 확인해보니 실수로 select태그에 css속성 ‘filter: alpha(opacity=0);’ 을 주지 않았네요. 죄송합니다…
      지금은 수정하였습니다. 다시 한번 확인해보시고 안되시면 다시 댓글 남겨주세요.
      댓글 남겨주셔서 감사합니다! :D

  9. 김한솔

    Cheolguso님 답변감사합니다. selectbox모양으로 태그를 이용하여 비슷하게 만드는 것 외에는 아직 안되는것이군요.. ㅜㅜ

    • 더 도움이 되어 드리지 못해 아쉬움이 남네요…
      김한솔님, 새해 복 많이 받으시고 하시는 일 좋은 일만 가득하시길 바랄게요 ~

  10. 김한솔

    안녕하세요^^ 덕분에 겨우 selectbox를 수정했습니다. 정말감사합니다.
    그런데 혹시 option 같은경우도 수정할수 있을까요??

    • 안녕하세요? 첫번째 댓글이네요. 이렇게 댓글 남겨주셔서 감사합니다 :D
      우선. option 요소에는 css 속성이 적용되지 않는 것으로 알고 있습니다. 하고자 한다면 select & option 태그를 사용하지 않고 다른 태그(div, ul, li..)를 사용하여 비슷하게 만들 수 있겠지만 모바일 디바이스에서 select 기능을 사용하지 못하게 되니 UX적으로도, 스크린리더기를 통한 접근성에도 좋지 않은 방법이 되리라 생각이 듭니다.
      차후에 더 나은 select box 스타일링 방법을 찾게되면 다시 포스팅 하도록 하겠습니다.