brunch

You can make anything
by writing

C.S.Lewis

by 강수빈 Dec 06. 2023

AWS로 간단한 사이트 구성하기

배워서 바로 쓰는 14가지 AWS 구축 패턴 | 1


AWS 공부시작!


간단한 사이트


각 서비스의 역할 및 설정 방법


EC2 | Elastic Compute Cloud

가상 서버

ubuntu를 선택한다.

퍼블릭 IP 자동 할당을 비활성화 해야 인스턴스 재시작 시 IP가 변경되지 않는다.

키 페어를 생성하고 SSH 접속은 내 IP로 설정한다.

HTTP, HTTPS 트래픽을 허용해 사이트 사용자들의 접속을 허가한다.

종료 방지를 활성화 해 조작 실수로 인한 인스턴스 삭제를 막을 수 있다.

인스턴스 생성 후, 탄력적 IP를 생성해 해당 인스턴스와 연결해야 한다.

중지(Stop)는 OS가 정지되고 이미지가 보존된다.

종료(Terminate)는 OS가 정지되고 EC2 인스턴스가 삭제된다.


Route 53

DNS 기능

도메인 등록을 눌러 도메인을 AWS에서 구매하거나 기존에 보유한 도메인을 호스팅한다.

gabia에서 구매한 도메인과 연결하기 위해서는 Route 53의 NS를 gabia 네임서버에 작성해야 한다.

이후 레코드 생성, 단순 라우팅, 단순 레코드 정의를 눌러 레코드 유형에 따른 IP를 선택하고 탄력적 IP를 붙여넣고 단순 레코드 정의를 완료한다.


VPC | Virtual Private Cloud

가상 프라이빗 클라우드

VPC 설정에서 DNS 확인 활성화, DNS 호스트 이름 활성화를 체크한다.

라우팅 테이블에서 igw-로 시작하는 라우팅이 없으면 등록해준다.


EBS | Elastic Block Store

가상 스토리지 볼륨

EC2 인스턴스 생성 시 함께 생성된다.

EC2의 저장공간이 부족할 때 EC2의 스토리지에서 볼륨을 추가할 수 있다.

볼륨을 생성하기 전 기존 EC2의 가용영역을 확인 후 일치시켜 생성한다.

생성 후에는 EC2와 연결해주고 EC2에서 해당 볼륨을 포맷한다.

루트 폴더에 데이터 폴더를 생성하고 포맷을 마친 볼륨을 해당 폴더에 마운트한다.


드디어 EC2 설정을 완료했다.

이제 간단한 사이트를 만들어보자.


간단한 사이트 만들기


아래 링크로 들어가 nvm을 설치한다.

Node.js로 3000번 포트를 listen하는 간단한 서버를 만든다.

이때 EC2의 인바운드 규칙에 3000번 포트를 허용해야 한다.

http://도메인:3000으로 접속해 성공적으로 화면이 뜨는 것을 확인하고 포트 포워딩을 한다.

원래 80번 포트를 listen하려 했으나 권한 문제가 발생해 3000번 포트를 listen하고 포트 포워딩을 했다.

npm으로 iptables를 설치한다.

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000

해당 명령어를 작성하면 80번 포트에서 들어온 요청이 3000번 포트로 포워딩 된다.

이제 3000번 포트 인바운드 규칙은 없애도 된다.

포트번호 없이 http://도메인으로 접속하면 성공적으로 화면이 뜨는 것을 볼 수 있다.


Hello World!


마치며


처음으로 내 도메인 주소를 사용해 내가 만든 서비스에 접속하는 경험을 해볼 수 있었다.

이제 겨우 AWS 맛을 본 정도지만 너무 맛있어서 중독될 거 같다.

AWS의 더 많은 서비스를 능숙히 다룰 수 있도록 계속해서 공부하겠다.

작가의 이전글 백엔드 초보자가 무조건 NestJS를 써야 하는 이유
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari