Part 2. DB 외부 접속 및 도메인 적용
AWS EC2 생성 및 NPM 설치는 이전 포스팅을 확인!
1-1. MySQL 외부 접근 허용하기
MySQL 외부 접근을 허용하기 위해 mysqld.cnf 파일의 bind-address를 0.0.0.0으로 설정한다.
아니면 해당 줄을 주석 처리해도 된다.
MySQL 포트 접근을 열어주기 위해 EC2 인바운드 규칙에 3306 포트를 추가한다.
1-2. DataGrip 설치 및 DB 연결
JETBRAINS 사이트에서 제공하는 DB 개발 툴인 DataGrip을 다운로드 받아 설치한다. JetBrains에서 인텔리제이, 파이참 등 IDE를 참 잘 만드는 것 같다,,
DataGrip 설치가 완료되면 실행하여 새 프로젝트를 만든 뒤 MySQL을 연결한다.
왼쪽 상단 탭에 위치한 Database Explorer에서 + 버튼을 누른 뒤, Data Source > MySQL을 선택하면 된다.
DB 연결을 위해 아래와 같이 요구되는 값들을 입력해주어야 한다.
HOST : AWS에서 만든 서버의 공인 IP 주소
User : MySQL 사용자 이름
Password : MySQL 사용자 비밀번호
값을 입력하고 아래의 Test Connection을 눌렀을 때 Succeeded가 뜨면 정상적으로 연결이 된다는 것이다!
만일, 실패한다면 3306 포트를 인바운드 규칙에 추가해 주었는지, 비밀번호를 잘 입력했는지, mysqld.cnf 파일의 bind-address를 바꾸어주었는지 다시 확인해보자!
AWS EC2를 생성하고부터 공인 IP를 입력할 때마다 주소를 복사해오는 것이 얼마나 귀찮은 일인지 다들 공감할 것이다,,
주소를 외운다면 좋겠지만 ip 주소를 억지로 외운다는 것이 쉽지 않기 때문에 도메인 네임을 부여하도록 하자.
도메인 구조의 예시) www.google.com
- 최상위 도메인 = .com > 도메인의 목적, 종류, 국가를 나타냄
- 차상위 도메인 = www => 호스트 또는 서브 도메인
- 도메인 이름 = google => 사용자가 기억하기 쉬운 서비스명
도메인을 등록하는 사이트는 아마존웹서비스, GoDaddy, 메가존 등 다양하지만 테스트 서버용 도메인을 신청하는 것이기 때문에 저렴한 가격의 도메인이 있는 가비아에서 진행하도록 하겠다.
우선, 가비아 홈페이지에 접속하여 본인이 원하는 도메인 이름을 검색한다.
검색 결과로 여러 추천 도메인이 표시되는데 가격이 가장 저렴한 .shop의 최상위 도메인을 선택하겠다.
원하는 도메인을 선택하면 신청 정보 입력 화면으로 이동되는데 여기서 등록 비용을 꼭 1년으로 설정해주어야 한다!!
.shop 도메인이 500원이어서 신청하러 들어왔는데 결제 예상 금액이 10만원이 넘게 잡혀있다면 등록 비용이 아마 3년으로 설정되어 있어서 그럴 것이다. 당황하지 말고 등록 비용을 1년으로 낮추어 주자.
도메인 결제를 진행하면 결제 확인 후, 몇분 정도 기다려야 도메인이 등록된다. 우선, 도메인 네임 서비스를 설정하기 위해 마이페이지에 있는 DNS 관리툴 버튼을 클릭한다.
이제 우리의 AWS EC2 공인 IP 주소에 도메인 네임을 붙이는 과정을 진행한다.
등록된 도메인에 아래 사진과 같이 레코드를 추가한다.
타입 : A
호스트 : www와 @
값/위치 : 서버 공인 IP 주소
TTL : 3600 => DNS 값이 전송됐을 경우, 결괏값이 캐시에 저장되는 시간이다. 다시 말해서 TTL은 네트워크에서 데이터가 유효한 시간으로, 설정한 시간 동안 데이터를 캐싱한다고 생각하자.
TTL이 낮으면 변경 사항 전파 속도가 올라가지만 서버 부하도 올라갈 것이다!
레코드 추가까지 완료하였다면 도메인 설정이 끝이 난다 👏👏
이제 크롬 URL 창에 발급받은 도메인 주소를 입력하여 접속해보자!
오류 없이 잘 연결되었다~ 이제 테스트를 할 때마다 공인 IP 주소를 찾으러 AWS를 헤집지 않아도 된다 😭
만일, 접속이 되지 않는다면 5~10분 정도 기다려주자!
이렇게 AWS EC2를 생성하여 NPM 설치 및 외부 접속, 도메인 적용 과정을 진행하였다.
클라우드 서비스는 네이버에서 지원하는 NCP만 써보았기 때문에 AWS 사용이 어려울까봐 걱정했는데 한글 설명이 잘 되어 있고, 방식도 크게(?) 다르지는 않아서 사용하는데 큰 무리는 없었다.