- ELB 기본 구성 세팅하기
- 리젼 확인 > EC2 > 로드 밸런서 > 로드 밸런서 생성
- Application Load Balacer 선택
- Application Load Balancer : HTTP, HTTPS 에 대한 특성을 활용하여 로드 밸런싱을 함
- 기본 구성 설정
- 체계
- 인터넷 경계 : 외부 클라이언트에서 접근 가능하며, 로드 밸런서의 IP 주소나 DNS 이름을 통해 공개적으로 접근가능
- 내부 : 특정 네트워크에서만 접근 가능하며, VPC와 private IP 등을 사용할 때 주로 사용한다.
- 체계
- 네트워크 매핑 > 가용 영역 전체 선택 후 다음
- 리전 내부의 세부적 영역을 나눈 것을 의미한다.
- ELB 를 세팅할 때, 일반적으로 가용 영역을 전체 선택한다.
- 리젼 확인 > EC2 > 로드 밸런서 > 로드 밸런서 생성
- 보안 그룹 설정하기
- EC2 > 보안 그룹 > 보안 그룹 생성하기
- 기존 보안 그룹 (default) 삭제 > 위에서 생성한 보안 그룹 선택
- EC2 > 보안 그룹 > 보안 그룹 생성하기
- 리스너 및 라우팅 그리고 헬스 체크 설정
- 리스너 및 라우팅이란?
- ELB 로 들어온 요청을 어떤 EC2 인스턴스에 전달할 지 설정하는 부분을 의미함.
- 대상 그룹 : ELB 로 들어온 요청을 보내는 그룹을 의미한다.
- 대상 그룹 생성 및 설정하기
- 대상 그룹 생성하기 - 기본 구성
- ELB 가 트래픽을 받아서 대상 그룹에게 어떤 방식으로 전달을 할지 설정하는 부분
- EC2 인스턴스의 HTTP 를 활용하여 80번 포트로 전달한다.
- 대상 그룹 생성하기 - 상태 검사
- ELB로 들어온 요청을 대상 그룹의 여러 EC2인스턴스로 전달하는 역할을 함.
- 특정 EC2인스턴스 내의 서버가 예상치 못한 에러로 고장났을 때, 고장난서버에 트래픽을 전달하는 것이 비효율적.
- 이런 상황을 방지하기 위해 ELB 는 주기적으로 대상 그룹의 인스턴스에 요청을 보냄.
- 200번대 응답이 잘 들어오면 정상적으로 작동되고 있다고 판단하여 트래픽을 전송.
- 200번대 응답이 돌아오지 않으면 고장났다고 판단하여 트래픽을 전송하지 않음.
- 대상 그룹의 EC2 인스턴스에 백엔드 서버가 있는데, 해당 서버에 주기적으로 /health 경로로 요청을 보내 인스턴스 작동 여부를 체크하도록 설정한다.
- 백엔드 서버에서 헬스체크용 API 를 생성해야 한다.
- 대상 그룹 생성하기 - 대상 등록 페이지
- 백엔드 설정한 HTTP (80번 포트) 로 지정
- 아래에 보류 중인 것으로 포함 선택하여 대상그룹에 인스턴스를 추가
- 대상 그룹 생성 선택
- 리스너 및 라우팅에서 대상 그룹에 위에서 생성한 대상 그룹 추가
- ELB 의 HTTP 프로토콜을 사용하여 80번 포트로 들어온 요청은 전부 rusharp-server-target-group 의 인스턴스로 분배하여 트래픽을 보냄.
- 대상 그룹 생성하기 - 기본 구성
- 리스너 및 라우팅이란?
- 로드 밸런서 생성 확인
- EC2 > 로드 밸런서 에서 로드 밸런서 추가 확인
- 프로비저닝 중 : 생성 중.
- EC2 > 로드 밸런서 에서 로드 밸런서 추가 확인
- Health check API 생성하기
- 기존 인스턴스 > 연결 > 연결
- app.js 수정
app.get('/health' , (req,res) =>{ res.status(200).send("Success Health Check"); })
- pm2 reload
- health api 확인
- IP 주소 / health 입력하면 API를 확인할 수 있다.
- 기존 인스턴스 > 연결 > 연결
- 로드 밸런서 주소를 통해 서버 접속하기
- EC2 > 로드 밸런서 > 로드 밸런서 선택하여 DNS 이름 확인.
- IP 없이 도메인 주소를 가지고 접속할 수 있다.
- IP 없이 도메인 주소를 가지고 접속할 수 있다.
- EC2 > 로드 밸런서 > 로드 밸런서 선택하여 DNS 이름 확인.
'AWS' 카테고리의 다른 글
HTTPS 적용을 위한 인증서 발급받고 HTTPS 설정하기 (0) | 2025.04.26 |
---|---|
ELB 에 도메인 연결하기 (0) | 2025.04.23 |
ELB란? / TLS, SSL 과 HTTPS (0) | 2025.04.17 |
Route53에서 도메인 구매하기 (0) | 2025.04.16 |
탄력적 ip 상태에서 EC2 종료하기 (0) | 2025.04.14 |