본문 바로가기

AWS

EC2 설정하기 (2)

앞서 인스턴스 생성 후 필요한 프로젝트를 세팅했다. 하지만 http 주소로 프론트와 통신할수는 없기에 https 도메인 설정을 해주어야한다.

AWS Route 53에서 메인도메인 설정을 해주어야하지만 기존에 회사에서 쓰던 메인도메인이 존재하기때문에 이부분은 생략하겠다.

 

  • 로드밸런서 생성
  • 타겟그룹 생성
  • EC2 인스턴스 포트포워딩
  • 서브도메인 지정

순서에 상관없이 진행해도 https 설정에는 무리는 없다.

 

먼저 [EC2 - 로드밸런싱 - 대상그룹]에서  타겟그룹을 생성해준다.

모두 기본설정으로 진행하였고 TargetGroupName만 구분할 수 있도록 설정한다.

 

생성이 완료되었다면 [EC2 - 로드밸런싱 - 로드밸런서]로 들어가 Application Load Balancer를 생성한다.

로드밸런스 이름을 입력

네트워크맵핑의 경우 생성된 인스턴스와 같은 곳을 맵핑해주었다. 처음에는 이 부분을 잘 몰라서 모두 체크해주었는데 사용하는데는 다른 문제가 없었다.

포트는 80, 443을 열어주고 조금전에 생성한 타겟그룹을 지정해준다.

 

로드밸런스가 완성되었다면 타겟그룹과 EC2인스턴스를 연결시켜준다.

 

팬딩 이후에 연결상태가 unhealty로 나온다면 해당서버 루트경로에 이상이없는지 확인해봐야한다. 지금은 포트포워딩이 설정되있지않아 나오는것이 당연하다. 웹페이지의 경우 index.html이 루트경로에 제대로 라우팅이 되지않았다거나 서버의 경우 루트 경로에 대한 로직이 따로 없다면 해당 오류를 볼 수도 있다. 혹은 잠깐 그렇게 나오는 경우도 있으니 나중에 도메인 주소에 접속했을때 이상이없다면 크게 신경쓸 필요는 없다.

 

// ec2에 올라간 node 서버가 4000번으로 연결되있으므로 포트포워딩도 같이 맞춰준다.

async function bootstrap() {
	const app = await NestFactory.create(AppModule);
	await app.listen(4000);
}
bootstrap();

ec2 서버에 접속해서 프로젝트에 맞는 포트번호를 연결해준다.

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

포트포워딩이 잘되었는지 확인하려면 아래 명령어를 입력해준다.

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

설정된 도메인주소에 접속이 잘된다면 제대로 설정된것이다.

이후에 필요에따라 로드밸런서에 ngix 혹은 여러대의 가상서버를 설정해두면된다.

'AWS' 카테고리의 다른 글

AWS Linux Timezone & Crontab  (0) 2022.05.23
EC2 설정하기 (1)  (0) 2022.05.20