AWS EC2 인스턴스를 외부 DNS에 연결하기 (탄력적 IP)

Explanation

저는 오드로이드라는 마이크로 원보드 컴퓨터를 구매해서 Ubuntu를 설치하고 집 인터넷 공유기로 연결해서 개인 서버로 사용하고 있었는데요.
오드로이드의 사양은 크기에 비해 정말 좋지만, 집에 인터넷이 느려서 그런지 폴시랩 블로그에 접속하면 캐시가 되지 않은 첫번째 연결은 4초 이상의 대기 시간이 생긴답니다.
요즘은 블로그에 방문자도 쪼~금~ 늘어나기도 했고, 조금 더 쾌적한 환경을 만들고자 지난 주말에 폴시랩 블로그를 AWS의 EC2로 이전하였답니다.
그리고 오늘은 그 과정으로 아마존 웹 서비스(AWS)의 EC2의 인스턴스를 외부 DNS에 연결하여 사용하는 방법에 대해 적어 보려합니다.

결과만 먼저 이야기하면 사실 글은 아주 간단하답니다. EC2의 인스턴스를 ‘탄력적 IP’에 연결하고 ‘탄력적 IP’로 받은 IP주소를 DNS에가서 A호스트로 연결하면 끝입니다.

1. 인스턴스 생성

EC2 인스턴스를 만드는 내용을 적으려고 한건 아니여서 생략.

이제 개인 서버로도 AWS를 사용하게 되었으니 AWS의 프리티어로 제공하는 서비스들 중에서 몇가지 사용법에 대해서도 앞으로 조금씩 포스팅하려 합니다.

대략 위와 같이 인스턴스가 있겠죠??

지금은 이미 ‘탄력적 IP’ 설정을 해놓아서 ‘52.79.86.65’라는 탄력적 IP가 출력되어 있는데요. 원래는 인스턴스의 IPv4 퍼블릭 IP를 따로 가지고 있습니다.
저는 그전까지는 EC2를 ELB(엘라스틱 로드 밸런싱)에 연결해서 로드 밸런서의 IP주소를 DNS에 연결해서 사용했었는데요. 그래서 당연히 그냥 로드밸런서를 사용하지 않으면 그냥 EC2의 퍼블릭 IP 값을 DNS에 연결해서 사용하면 될 줄 알았는데. 왠걸 하루종일 기다려도 연결이 되지 않더라고요.

이유를 생각해보자면 아마도 EC2 인스턴스의 퍼블릭 IP 값은 인스턴스를 재시작하면 변하는, 고정값이 아니기 때문에 안되는게 아닐까 싶어요.
그리고 탄력적 IP라는건 연결된 EC2 인스턴스가 실행되었을때 연결되어 항상 고정된 IP를 유지해주는 일을 한답니다.
그래서 DNS에 연결하려면 EC2의 인스턴스를 ‘탄력적 IP’로 연결해서 탄력적 IP를 받아야해요.

로드밸런서를 사용하면 그냥 되는건 로드밸런서 자체적으로 탄력적 IP 기능을 해주기 때문이겠죠??

로드 밸런싱도 프리티어에 포함되어 있지만, 굳이 사용하지 않은 이유는… 이번에는 프리티어 기간이 끝나도 nano로 계속 쓸까 생각하고 있어서 EC2 인스턴스 하나만으로 구성하려고 합니다. (가난한 중생이기에..)

2. 탄력적 IP 생성

EC2 왼쪽 메뉴에서 ‘네트워크 및 보안’의 ‘탄력적 IP’ 메뉴를 선택합니다.
전 이미 있지만, 없다고 가정하고 왼쪽 위에 ‘새 주소 할당’ 버튼을 누릅니다.

그리고 ‘할당’을 누른 후 할당이 완료되면 ‘닫기’를 누릅니다.

3. 탄력적 IP 연결

그러면 저 같은 경우에는 ‘15.164.53.45’ 라는 탄력적 IP가 생겼는데요. 저곳을 마우스 우클릭 한 후 ‘주소 연결’을 선택합니다.

다음 인스턴스 인풋박스에 마우스를 포커스하면 현재 실행 인스턴스를 볼 수 있는데요, 그곳에서 연결한 인스턴스를 선택해 준 후 ‘연결’ 버튼을 누릅니다.

그러면 끝!
간단하죠?

그리고 추가적으로 검색해보니까, AWS의 프리티어를 사용하는 경우? ‘탄력적 IP’를 만들고 프리티어의 EC2 인스턴스를 연결하지 않으면 과금이 발생한다고 하네요.

4. DNS에 탄력적 IP 연결

AWS에서도 ‘Route 53’이라는 DNS 서비스를 제공하는데요. 저는 개인적으로는 사용하지 않습니다. 왜냐면 AWS 프리티어에 포함되어 있지 않기 때문에, 도메인을 하나만 연결해도 매달에 무려 거금 550원이 과금되기 때문입니다.

그렇기 때문에 제가 주로 도메인을 구매하는 Hosting.kr에서 제공하는 DNS 서비스를 이용합니다. 아마 대부분 도메인을 구매하셨다면 도메인을 구매한 웹 사이트에서 DNS 서비스를 무료로 제공해주는 것 같습니다.

짜잔, 저는 이렇게 DNS를 연결하였습니다. 그럼 끝!

네임서버 및 서브 도메인 설정은 보통 길게는 적용되는데 하루까지 걸린다고 하는데, 개인적으로는 대부분 늦어도 한시간이면 적용이 되는 거 같습니다. 만약 한시간이 지났는데 안된다면..

5. 추가 (보안그룹 설정)

혹시 아까 설정했던 ‘탄력적 IP’ 메뉴 위에 있는 ‘보안 그룹’ 메뉴로 이동해서 인스턴스를 만들때 선택했던 보안 그룹을 선택한 후 아래 설정 화면에 ‘인바운드’ 란에 ‘편집’ 버튼을 눌러서 ‘HTTP’, ‘포트번호(기본 80)’, ‘소스(접근 허용 IP 설정)’를 설정 하셨는지 확인해보시면 좋을 것 같습니다.