[AWS] Eastic Load Balancer 적용과 SSL 적용하기

SJ.CHO·2024년 11월 18일
post-thumbnail

ELB(Eastic Load Balancer)

  • AWS에서 제공하는 로드 밸런싱 서비스로, 다수의 EC2 인스턴스를 사용하여 트래픽을 분산시킨다.

  • 로드밸런서의 특징

    • 요청 분산 : 각각의 EC2와 연동하여 트래픽 분산이 가능하다.
    • 단일 액세스 포인트 공개 : Route53과 연동되어 하나의 액세스포인트로 연동이 가능하다.
    • 인스턴스의 헬스체크 가능 : 인스턴스들이 동작하고있는지 검증이 가능하다.
    • HTTPS 제공 : ACM과 연동하여 HTTPS 인증을통해 보안강화가 가능하다.
    • 고가용성 제공 : AZ을 알아서 분리해 사용이 가능하다.
    • 공개트래픽과 내부트래픽 분리 : 악성유저에게 내부정보를 공개하지않고 서비스가 가능하다.

ELB 종류

  1. Application Load Balancer: OSI 모델 7계층에서 동작하며, HTTP/HTTPS 트래픽을 처리한다. 또한, 컨테이너화된 애플리케이션과 연동하여 사용할 수 있다.
  2. Network Load Balancer: OSI 모델 4계층에서 동작하며, TCP/UDP 트래픽을 처리한다. 높은 처리량을 필요로 하는 애플리케이션에 적합하다.
  3. Classic Load Balancer: OSI 모델 4~7계층에서 동작하며, HTTP/HTTPS, TCP/UDP 트래픽을 처리한다. 가장 오래된 형태의 로드 밸런서이며, 대부분의 경우 Application Load Balancer나 Network Load Balancer를 사용하는 것이 좋다.

Scalability vs Availability

  • Scalability
    • 시스템이 커지거나 작아질 수 있는 능력을 말한다.
    • 사용자 수, 데이터 양, 처리량 등이 증가할 때 시스템의 성능과 처리 능력을 유지하거나 향상시키는 것을 의미한다.
    • 확장성 있는 시스템 디자인 및 구현이 필요하다.
  • Availability
    • 시스템이 정상적으로 작동하고 사용가능상태인지를 유지하는 능력을 의미한다.
    • 시스템의 안정성을 높이고 장애대응능력을 강화하는것이 필요하다.

Load Balancer 생성 및 연결 하기

  • 위에서 소개한 로드밸런서들의 종류를 선택할 수 있다.
  • 로드밸런서의 설정은 다음과 같으며, 보안그룹과 EC2 인스턴스들의 집합인 그룹을 설정하여 로드밸런서에게 인스턴스들을 위임이 가능하다.
  • DNS 주소를 통하여 각각의 인스턴스들에게 접근하는것을 로드밸런서가 제어하고 있는것을 확인 가능하다.
  • 하지만 지금 상황에서는 로드밸런서 DNS를 사용하지않고 각각의 인스턴스의 퍼블릭 IP를통해서도 접근이 가능하다. 이를 수정해보자.

  • 보안그룹을 로드밸런서로만 인바운드가 가능하도록 지정하고, 생성된 보안그룹을 각각의 인스턴스에게 지정해주면 된다.

SSL 적용하기

  • 현재 로드밸런서는 HTTP 통신으로만 인바운드가가능하기에 보안적측면에서 레벨이 너무 낮다 이를 위해 인바운드에 HTTPS 를 적용하고 로드밸런서와 인스턴스들은 이미 외부의 진입을 막고 있기에 HTTP 를 적용해 보겠다.
  • 로드밸런서의 리너스추가 버튼을 누른다.
  • 리스너의 HTTPS 를 등록해주고, ACM(AWS 인증서발급) 혹은 외부의 인증서를 발급받아 인증서를 등록해주면 SSL적용이 완료된다.
  • ACM의 경우 DNS의 등록된 도메인을 등록하면 인증서가 발급된다.
profile
70살까지 개발하고싶은 개발자

0개의 댓글