[AWS] EC2를 이용한 웹 배포와 도메인 연결 -3-

용용이·2023년 11월 30일
0

AWS

목록 보기
5/5

이전 포스팅에서는 EC2 인스턴스에 간단한 웹 프로젝트를 배포해 보았습니다.

이번에는 도메인에다가 EC2 인스턴스를 연결하여 도메인을 통하여 접속해 보도록 하겠습니다.

글쓴이는 포트폴리오 작성을 위해 도메인을 유료로 구입하였습니다.
Route53 통해서 도메인을 구매하였는데 보통은 가비아라는 업체를 통해서 구매를 하는 것 같습니다.
여기서 도메인을 구매하였다면 네임서버 설정을 변경하여야 하는데 해당 부분에 대해서는 따로 설명을 하지는 않겠습니다.

도메인이 준비되었다면 우선 도메인과 EC2 인스턴스를 연결하여야 합니다.
Aws 콘솔에서 Route53 대시보드에서 "호스팅 영역"을 클릭 후 "호스틱 영역 생성"을 클릭합니다.
저는 사전에 만들어 둔 호스팅 영역이 있어 생성하는 법에 대해서만 설명드리겠습니다.

도메인 이름은 내가 연결할(구매한) 도메인 명을 적어주시면 됩니다.
"호스팅 영역 생성" 버튼을 클릭하겠습니다.

새로 생성된 호스팅 영역 이름을 클릭하겠습니다.
레코드를 살펴보면 NS 유형, SOA 유형 2가지 생성되었고

"레코드 생성"을 클릭하여 새로운 레코드를 추가해 보겠습니다.
레코드 이름은 작성하지 않고 레코드 유형은 A 유형으로 선택하시면 됩니다.
"값" 박스에 EC2 인스턴스의 탄력적 IP를 입력 후
"레코드 생성"을 클릭합니다.

정상적으로 A 유형으로 등록이 되었습니다.

이제 마지막으로 포트 포워딩을 진행할 예정입니다.

포트포워딩 이란?

어느 한 포트로 들어온 요청을 다른 포트로 전달해 주는 것을 말합니다.
마치 친구네 집에 갔는데 알고 보니 그 집은 훼이크였고 그 집에 있는 비밀 통로로 들어갔더니 다른 집이 나오는 것과 비슷합니다.

그냥 프로젝트를 80번 포트로 지정하면 안 되나요?
이런 의문이 당연히 생길 수 있습니다. 결론부터 말하자면 할 수는 있지만 안 하는 편이 좋습니다.

잘 알려진 포트(Well Known Port)라는 것이 있습니다.
1번부터 1023번까지의 포트를 부르는 용어인데, root 권한으로만 포트를 컨트롤할 수 있고, 이미 많이 사용되는 만큼 우리가 함부로 사용했다가는 미쳐 예상치 못한 일들이 발생할 수 있기 때문에 건드리지 않는 편이 좋다고 합니다.

하여 EC2 인스턴스에 접속 후 다음 명령어를 입력합니다.

sudo iptables -t nat -A PREROUTING -p tcp --dport [출발 포트번호] -j REDIRECT --to-port [도착 포트번호]

저는 80번 포트로 요청이 오면 3030번 포트로 포워딩을 원하기 때문에 아래와 같이 명령어를 입력하겠습니다.

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3030

명령어를 입력 후 정상적으로 포트 포워딩이 적용되었는지 다음 명령어로 확인해 보겠습니다.

sudo iptables -t nat -L --line-numbers

"http redir ports 3030" 표시가 되면 정상적으로 포트 포워딩이 적용된 것입니다.

재부팅해도 포트포워딩 설정 유지하기

이렇게만 설정하면 포트 포워딩은 적용된 것입니다.
하지만 이렇게 설정한 포트포워딩은 재부팅 시 리셋되어
해당 설정을 재부팅 후에도 계속 유지하고 싶다면 새로운 패키지를 하나 다운로드하여야 합니다.

sudo apt update && sudo apt upgrade

apt를 이용해 다운로드할 예정이기 때문에 일단 update와 upgrade를 수행해 줍니다.

sudo apt install iptables-persistent

명령어를 입력하면 다운로드를 하던 중 계속 할 것인지 물어본다. 당연히 Y를 입력해서 계속 진행합니다.

계속 진행할 경우 위와 같은 화면들이 나타나면 되는데, IPv4와 IPv6에 대한 설정 정보를 저장할 거고 재부팅 시 자동으로 설정할 것이라는 내용입니다. 추가적으로 자동 저장은 패키지를 설치할 때만 적용되고, 이후의 수동 저장은 따로 메뉴얼을 참고하라고 합니다.
여기서도 당연히 모두 yes를 눌러 계속합니다.

이제 아래 명령어를 입력하게 되었을 때 enabled가 된다면 재부팅이 되어도 설정들이 저장될 것입니다.

sudo systemctl is-enabled netfilter-persistent.service

이제 내가 구매한 도메인을 통해서 접속해 보겠습니다.

여기까지 완료하였다면 도메인이 정상적으로 EC2 인스턴스에 연결된 것입니다.

AWS를 통해서 서버 생성부터 도메인 연결 배포까지는 처음으로 해보는 작업이라
잘못된 부분이 있을 수도 있습니다.
잘못된 부분이 있다면 댓글로 피드백 주신다면 감사하겠습니다 :)

profile
Dragon

0개의 댓글