[AWS] Elastic load balancing + Route 53

hugingstar·2026년 3월 30일

AWS

목록 보기
8/18
post-thumbnail

Route 53

  • 이번 글에서는 Route 53 대시보드에 대해서 정리한다

  • DNS 등록 방법을 정리한다.

  • Cafe24에서 도메인 550원 짜리 하나 사서 진행한다.

  • 호스팅 영역에 들어간다.

  • 카페24에서 네임서버 변경을 누른다.

  • 다른 네임서버 보면, 비어있는데 이것을 넣으면 된다.

  • 호스팅 영역을 생성하면, 네임서버에 넣을 값을 줄 것이다. 퍼블릭 호스팅 영역선택한다.

  • 별칭 없이 했는데 옆에보면 값/트래픽~ 부분에 것을 카피해서 넣으면 된다.

  • 이런식으로 ns-~ 번호를 복붙하고, 뒤에 붙은 .을 없앤다.

  • 등록되는데 시간이 걸리니까. 그 틈을 타서 ELB를 만들어준다.

ELB (Elastic load balancing)

  • ELB(Elastic Load Balancer) : EC2 Service에서 확인 가능하다.
  • 종류
    • CLB(Classic Load balancing) : 단순한 TCP/TLS(SSL) 및 HTTP/HTTPS 트래픽 분산에 사용
    • NLB(Network Load Balancer) : Layer4 기반(TCP, TLS, UDP,...) HTTP는 해당 X
    • ALB(Application Load Balancer) : Layer7 기반 (HTTP/HTTPS)

관리 대장

  • (1) VPC

    • yslee-VPC
      • 10.17.0.0/16
  • (2) Subnet

    • PUB-2A
      • 10.17.0.0/24
    • PRI-WEB-2A
      • 10.17.10.0/24
    • PUB-2C
      • 10.17.1.0/24
    • PRI-WEB-2C
      • 10.17.11.0/24
  • (3) Routing table

    • RT-PUB
      • PUB-2A, PUB-2C
    • RT-PRI
      • PRI-WEB-2A, PRI-WEB-2C
  • (4) Security group

    • LB-SG (22, 80, 443)
    • WEB-SG (22, 80, 443)
    • BASTION (22)
  • (5) EC2 Instance

    • NGINX-2A-00 : PRI-WEB-2A
    • NGINX-2A-01 : PRI-WEB-2A
    • NGINX-2C-00 : PRI-WEB-2C
    • BASTION-00 : PUB-2A
  • (6) IGW

    • IGW-2A
  • (7) NAT Gateway

    • NGW-2A

빌드 과정

  • 처음 시작할 때는 모두 꺼져 있다. VPC 설정 부터 한다.

(1) VPC

  • 네트워크 주소를 올바르게 입력하고 생성한다.
  • CIDR IPv4 수동 입력으로 해놓고 작성한다.

  • VPC를 생성 완료했다.

(2) Subnet

  • VPC를 Subnet에 적용한다.

  • PUB-2A (10.17.0.0/24)

  • PRI-WEB-2A(10.17.10.0/24)

  • PUB-2C(10.17.1.0/24)

  • PRI-WEB-2C(10.17.11.0/24)

  • 서브넷 생성 완료되었다.

(3) Routing table

  • Public/Private 각각 묶어주는 것이다.

  • PUBLIC 용 라우팅 테이블 부터 생성한다.

  • PUB 부분 서브넷 연결 편집을 적용한다.

  • PRIVATE 용 라우팅 테이블을 생성한다.

  • PRI 부분 서브넷을 적용한다.

(4) Internet gateway

  • 인터넷 게이트웨이를 생성한다.

  • IGW가 VPC에 연결되어 있어야 한다.

  • 위에서 VPC에 IGW가 연결되어 있어야 라우팅 테이블 PUB 부분에 디폴트 설정할 수 있다.
  • PUB 부분을 먼저 설정해준다.

  • PRI 부분에는 NAT 게이트웨이를 설정해준다. (Fail상태로 되버리면 그냥 하나 다시 생성하는 게 맘 편하다.)

(5) NAT gateway

  • NGW-2A를 생성한다. (Fail 뜨면 다시 만들어준다.)
  • 영역별 선택, 서브넷 PUB-2A를 선택, 탄력적 IP 적용

(6) Security group

  • 보안에 보안 그룹을 설정해준다.
  • LB-SG 인바운드 규칙에 22, 80, 443 을 선택한다. 0.0.0.0/0을 선택해서 생성한다.

  • WEB-SG 인바운드 규칙에 22, 80, 443을 선택한다. 0.0.0.0/0을 선택한다.

  • BASTION을 위한 보안 그룹 생성, 인바운드 규칙에 22를 선택한다.

(7) EC2 Instance

  • EC2에서 Instance를 설정하고 시작한다.

NGINX-2A-00 인스턴스 시작

  • NGINX-2A-00을 띄우기 위해서, Amazon linux를 선택하였다.

  • 키페어 선택하고, t3.micro로 선택한다.

  • VPC 부분을 보면 서브넷을 PRI-WEB-2A로 선택한다.

  • 보안 그룹은 기존 보안 그룹 선택으로 하고, WEB-SG 만들어 놧던거 선택한다. 그리고 인스턴스를 시작한다.

NGINX-2A-01 인스턴스 시작

  • NGINX-2A-01을 띄우기 위해서, Amazon linux를 선택하였다.

NGINX-2C-00 인스턴스 시작

  • NGINX-2C-00을 띄우기 위해서, Amazon linux를 선택하였다.

BASTION-00 인스턴스 시작

  • 차이점은 PublicIP를 할당 시켜줘서 외부 유입 가능하도록 만들어줘야 한다.

  • 서브넷은 PUB-2A를 선택한다.

  • 보안 그룹은 BASTION 만들어 놓은거 선택한다.

점검

  • 현재까지 인스턴스 4개 만들었으면 OK

BASTION으로 접속

  • 외부에서 PUBLIC IP를 받은 BASTION으로 접속해서 작업해본다.
  • BASTION 인스턴스 보면 Public IP 생성되어 있다.

  • Moba에서 Private key 입력하고 접속해본다.
    (IGW, NGW가 잘 설정되어 있는지를 위에서 확인하고 내려와야 한다.)
  • 유저 이름 : ec2-user

  • 접속이 완료되었다.

  • Private key가 있어야 뭐라도 할 수 있으니까 scp로 넣어준다. Public IP를 사용해서 넣는다.
scp -i yslee-02.pem yslee-02.pem ec2-user@3.

  • 이제 BASTION에서 다른 NGINX-2A-00, NGINX-2A-01, NGINX-2C-00 세 가지로 보낸다.
  • 아래의 IP 상황을 고려해서 scp로 보낸다.

BASTION
Private 10.17.0.97
Public 52.63.219.171

NGINX-2A-00
Private 10.17.10.43
Public -

NGINX-2A-01
Private 10.17.10.208
Public -

NGINX-2C-00
Private 10.17.11.250
Public -

# 권한 변경 400
sudo chmod 400 yslee-02.pem

NGINX-2A-00 접속

# NGINX-2A-00 ssh 테스트
ssh -i yslee-02.pem yslee-02.pem  ec2-user@10.17.10.43

# NGINX-2A-00에 nginx 설치
sudo dnf install -y nginx

# nginx.conf 파일 상태 확인
vi /etc/nginx/nginx.conf

  • 41번째 줄 보면 root 경로를 확인할 수 있다.

  • 'sudo vi /usr/share/nginx/html/index.html'로 들어가서, 안에 있는 내용 지우고 내용을 작성한다.
# 편집 시작
sudo vi /usr/share/nginx/html/index.html

# 작성한 내용
NGINX-2A-00

  • nginx를 sudo systemctl로 시작해서 페이지를 확인해본다.
# nginx 시작
sudo systemctl start nginx

# 내용 확인
curl localhost

  • Ctrl + D를 사용해서 BASTION으로 귀환한다.

NGINX-2A-01 접속

  • 위에서 한 것 동일한 방법으로 설정해본다.
# NGINX-2A-01 ssh 테스트
ssh -i yslee-02.pem yslee-02.pem  ec2-user@10.17.10.208

NGINX-2C-00 접속

  • 위에서 한 것 동일한 방법으로 설정해본다.
# NGINX-2C-00 ssh 테스트
ssh -i yslee-02.pem yslee-02.pem  ec2-user@10.17.11.250

  • 작업 마무리하고, BASTION으로 돌아온다.
  • BASTION에서 curl으로 들어가지는지 확인한다.

  • 모두 다 잘 작동되고 있다.

Load Balancing

  • 웹 서버까지 잘 띄웠으면, 이제 로드밸런싱을 해봐야한다.
  • EC2에 Load balancing이 있다.

  • 로드 밸런서를 생성해본다.

  • 어떤 유형으로 할 것인지 선택한다.
  • 나는 아래에 있는 Classic을 선택해서 설정한다.

  • 기본 구성에서 인터넷 경계 설정

  • 네트워크 매핑에서 VPC와 가용영역을 선택한다.

  • 보안 그룹에서 LB-SG를 설정한다.

  • 포트 부분은 설정 된대로 놔두고 패스

  • 인스턴스 설정 : BASTION 제외하고 추가한다.

  • 체크된 상태로 놓고 로드밸런서 생성한다.

  • 생성된 로드 밸런서 확인

  • DNS 부분에 로드밸런서 적용해서 웹이 떠 있는 것이 보인다.

  • 복사해서 접속해본다. 3개 만든 서버 돌아가면서 잘 접속된다.

  • 핸드폰으로도 들어가진다.

  • 다 했으면 로드 밸런서를 지운다.

Network load Balancer

  • 네트워크 로드 밸런서를 해본다.

  • 그러기 전에 로드 밸런서 중에서 대상 그룹을 먼저 설정한다.
  • TCP로 바꾸고 나머지는 기본값으로 놔둔다. VPC를 적용해준다.

  • 대상 등록 칸에서는 BASTION 빼고 설정한다.

  • yslee-NLB라는 네트워크 로드 밸런서를 만들고, 네트워크 매핑에는 VPC를 설정한다.

  • 두번째로 가용 영역 및 서브넷에서 PUB-2A, PUB-2C를 선택한다.

  • 보안 그룹 LB-SG를 설정한다. (대상 그룹 안뜨면 NLB-TG 가서 등록된 대상을 확인한다.)

  • 리스터 및 라우터에 NLB-TG를 설정한다.

  • 프로비저닝 중이라고 뜬다. 한참 기다리고 나면, 초록색으로 바뀐다.

  • DNS 부분 복사해서 들어가본다. (지금 상태는 번갈아가면서 나오지가 않고 있다.)

  • 번갈아가면서 나오게 바꾸기 위해서 로드 밸런서를 지우고 다시해본다. 대상 그룹도 삭제한다.

Application load Balancer

  • 첫번째에 있는 Application load balancer를 들어간다.

  • 이름과 VPC를 작성한다.

  • LB-SG를 선택한다.

  • 리스너 및 라우팅 부분 만들 때, 대상 그룹을 생성을 눌러서 만든다.

  • 대상 그룹을 생성해준다.

  • NGINX-2A-00, NGINX-2A-01, NGINX-2C-00을 3가지를 대상으로 등록해준다.

  • ALB-TG가 새롭게 생겼고 그것을 선택해준다. 생성하면 프로비저닝 시작한다. 시간이 꽤나 걸린다.

  • 활성 상태가 되면 DNS로 들어가본다.

  • NGINX-2A-00, NGINX-2A-01, NGINX-2C-00 세가지가 계속 바뀌면서 들어가진다.

DNS 주소 연결하기

  • 카페 24에서 산 DNS 주소를 연결하는 방법
set type=ns
yslee.store

  • Route 53에서도 추가로 설정해준다
  • 호스팅 영역 으로 들어간다. > 레코드를 생성한다.
  • 레코드 이름에 www을 작성한다. > www.yslee.store로 접속하고 싶은 것이다.

  • 별칭을 활성화한다.
  • Application/Classic load balancing을 선택한다.
  • 리전 보니까 서울 아니고, 시드니로 되어 있다. 처음에 잘 확인해서 하자.
  • Application load balancer 만들때 나온 것을 추가한다.

  • 도메인 레코드를 생성한 것을 확인한다. 시간이 좀 걸릴 수 있다.
set type=a
www.yslee.store

  • www.yslee.store로 접속해본다. 로드 밸런서가 잘 적용되었다.

업로드중..

0개의 댓글