[AWS] EC2에 Nginx 배포 및 ALB 연결

mDev_97·2023년 10월 24일

AWS

목록 보기
5/5
post-thumbnail

◉ 실습 주제

이번 실습은 AWS EC2에 Nginx라는 Web Server를 배포하고,
EC2에 접속하기 위해서 Application LoadBalancer를 연결할 수 있도록 합니다.

EC2 인스턴스 생성

우선 먼저 AWS Console에서 EC2 대시보드로 들어가 EC2 인스턴스를 생성해줍니다.

[인스턴스 시작] 버튼 클릭

EC2 인스턴스의 이름은 aws-ec2 로 주고, AMI는 Ubuntu 22.04로 지정해줍니다.

인스턴스 유형은 프리티어로 이용가능한 t2.micro 로 지정해주고
키 페어 같은 경우는 없으신 분들은 새롭게 생성을 해주시고 지정을 해주시면 됩니다.

저 같은 경우에는 생성했던 키 페어가 있기 때문에 기존 키 페어를 사용해주겠습니다.

네트워크 설정에서는 HTTP와 HTTPS를 통해서도 접근할 수 있도록 HTTP와 HTTPS 트래픽 허용을 체크해줍니다.

  • 인터넷에서 HTTPS 트래픽 허용 체크
  • 인터넷에서 HTTP 트래픽 허용 체크

위의 과정을 통해서 EC2 인스턴스를 생성해줍니다.

아래에서와 같이 EC2 인스턴스의 보안 그룹은 launch-wizard-3 으로 지정되어 있습니다.
-> 이 보안 그룹은 LoadBalancer를 생성할 때 사용되니 꼭 확인하고 기억해주세요!!

시간이 지나면 인스턴스 상태가 실행 중으로 변경 된다면, LoadBalancer를 생성해주러 갑니다.



Application LoadBalancer 생성

EC2 인스턴스를 생성해주었으니 이제 EC2에 접속하기 위한
Application LoadBalancer를 생성하여 EC2에 연결해주도록 하겠습니다.

EC2 인스턴스 화면에서 좌측 메뉴에 [로드 밸런싱] -> [로드밸런서] 선택

[로드 밸런서 생성] 클릭

Application LoadBalancer 아래에 있는 [생성] 버튼 클릭

저는 로드밸런서의 이름을 aws-ec2-lb로 주었습니다.

VPC는 디폴트로 지정되어있는 것을 그대로 사용해주고
매핑 정보는 ap-northeast-2a와 ap-northeast-2c를 선택해줍니다.
매핑 정보에서 서브넷은 AWS에서 자동으로 지정해주는 것을 사용하였습니다.

다음으로는 보안 그룹을 지정해주어야 합니다.
기본적으로 지정되어 있는 default라는 보안 그룹이 있습니다.
거기에 위에서 EC2를 생성하고 확인했던 EC2의 보안 그룹인 launch-wazard-3 보안 그룹을 지정해줍니다.

저 같은 경우에는 EC2의 보안 그룹이 launch-wazard-3이기 때문에 이것으로 지정해준 것이지
이 게시글을 따라서 진행하시는 분들은 본인은 EC2 인스턴스의 보안 그룹을 넣어주시면 됩니다.

이제는 리스너 및 라우팅을 지정해주어야 합니다.
이 때, 대상 그룹은 반드시 지정이 되어야 하기 때문에 [대상 그룹 생성] 버튼을 클릭하여
먼저 새로운 대상 그룹을 생성해줍니다.

[대상 그룹 생성] 버튼을 클릭하면 새 창이 뜨면서 아래와 같은 화면이 나옵니다.

저는 대상 그룹의 이름을 aws-ec2-group으로 지정 해주었습니다.

나머지 설정들은 따로 지정해주지 않고 다음으로 넘어갑니다.

이제 로드 밸런서가 트래픽을 라우팅하기 위한 대상(인스턴스)를 지정해주어야 합니다.
우리는 앞에서 생성하였던 EC2 인스턴스를 선택하여 [아래에 보류 중인 것으로 포함] 버튼을 눌러주겠습니다.

선택한 인스턴스가 아래의 대상으로 넘어갔다면 [대상 그룹 생성] 버튼 클릭

그럼 다음과 같이 대상 그룹이 생성됩니다.

그럼 다시 로드밸런서 생성화면으로 돌아와서 위에서 생성한 대상 그룹을 지정해줍니다.

생성한 대상 그룹이 안나오시는 분들은 우측의 새로고침 버튼을 누르시면 됩니다.

[로드 밸런서 생성] 버튼 클릭

시간이 지나면 로드밸런서가 프로비저닝 중에서 활성 상태로 변경됩니다.



EC2에 Nginx 설치

이제 EC2 인스턴스와 Application LoadBalancer가 생성했으니
EC2 인스턴스에 Nginx라는 Web Server를 배포 해주도록 하겠습니다.

Nginx를 설치하기 위해서 EC2 인스턴스에 접속해서 아래의 명령어를 통해 Nginx를 설치해줍니다.

Nginx 설치 Command

sudo apt-get update
sudo apt-get upgrade

sudo apt-get install nginx

위의 명령어를 통해서 Nginx가 설치되어 정상적으로 동작하는지 확인하기 위해서
아래의 명령어를 통해서 아래의 결과를 받아냅니다.

curl 127.0.0.1

위에서와 같이 EC2 인스턴스에 Nginx Web 서버가 잘 배포되었다면
로드밸런서를 통해서 EC2에 접근할 수 있는지 로드밸런서의 DNS를 통해서 접근해보도록 하겠습니다.



로드밸런서로 EC2 접근

로드밸런서 DNS를 통해서 EC2에 접근하기 위해서는 로드밸런서의 DNS를 알아야합니다.

DNS를 보기 위해서 로드밸런서로 들어와주면 DNS 이름이라고 있습니다.

마지막으로 위에서 찾은 DNS 이름으로 브라우저를 통해서 접근하면
아래와 같은 화면으로 EC2에 잘 접근하는 것을 볼 수 있습니다.

profile
안녕하세요. 백엔드, 클라우드, 인프라에 관심과 열정이 있는 김문성입니다. 😊

0개의 댓글