본문 바로가기

AWS

[AWS] 마이크로 서비스 환경 구축을 위한 EC2 + Route53 + Load Balancer + ACM(SSL) 사용

반응형

 

요청 구조 및 프로세스

  1. 클라이언트 -> Route53 도메인으로 요청
  2. Reoute53 도메인에 설정된 Load Balancer로 포워딩
  3. Load Balancer의 리스너에 정의된 SSL 인증서를 통에 인증
  4. Load Balancer의 리스너에 정의된 대상 그룹에 규칙에 맞게 요청
  5. 대상(EC2)은 클라이언트 요청에 맞게 응답

 

AWS 환경 구성

 

로드 밸런싱 대상 그룹 생성

EC2콘솔에서 로드 밸런싱 탭의 대상 그룹에 Create target group 버튼 클릭

 

대상 그룹의 타입은 VPC 내의 인스턴스로 선택

 

포트는 로드밸런서가 EC2에 접근할 포트번호를 입력

VPC는 자신의 EC2가 포함되어있는 그룹을 선택한다.

 

Health check - 대상 그룹에 설정한 포트로 health check 요청을 보내 설정한 정상 응답이 특정 횟수만큼 오면 해당 그룹은 정상동작 중, 응답이 조건에 맞게 오지 않으면 정상적으로 동작하지 않는 것으로 판단한다.

Health check paht는 로드 밸런서가 그룹에 Health Check를 보낼 경로를 적는다. 

 

 

반응형

로드 밸런서가 Health check 요청을 보냈을 때 정상 동작 중으로 판단할 기준을 정의해준다.

  • port - http - 80, https - 443 포트로 요청을 보내고 다른 포트로 요청 하길 원한다면 Override를 선택
  • Healthy threashold - 정상 동작으로 판단할 health check 요청의 정상 응답 횟수
  • Unhealthy threshold -  비정상 동작으로 판단할 health check 요청의 비정상 응답 횟수
  • Timeout - 해당 시간동안 응답이 없을 시 비정상 응답으로 간주
  • Interval - health check 요청 사이의 시간(초)
  • Success codes - 정상 응답의 HTTP 코드 (200~209)

 

대상 그룹에 포함시킬 인스턴스와 라우팅할 포트 선택 후 완료 버튼 클릭

 

 

반응형

EC2 인스턴스에 Health check 포트 및 경로에 대해 응답 생성

EC2에 nginx로 서버가 구성되어있다는 가정하에 작성

server {
    listen       80;
    listen  [::]:80;

	...
    location /target-health-check{
        access_log off;
        return 200;
    }
    ...
}

nginx conf 파일 수정

/target-health-check 부분에 대상 목록 생성에서 설정한 health-check 경로로 입력해준다.

 

 

대상 그룹 Health check 상태 확인

nginx 설정을 통해 health check 요청이 정상적으로 응답되었다면 위와 같이 healthy 상태가 되어있다.

 

 

반응형

Route53 을 통해 도메인 주소 생성

 

[AWS - Route53] Route53 이란? 쉽게 도메인 등록 및 EC2연결

Route 53 AWS에서 제공하는 DNS이다. 다른 도메인 등록 기관(가비아, 후이즈 등) 에 비해 가격이 비슷하거나 저렴하고, 등록 외에 부가적인 기능 제공 및 안정성, GUI를 제공해 관리가 수월하다. Route 53

kanoos-stu.tistory.com

 

 

ACM을 통해 인증서 생성 

 

Certificate Manager 콘솔로 이동하여 좌측의 요청 버튼 클릭

 

다음 클릭

 

완전히 정규화된 도메인 이름에 자신이 생성한 Route53의 도메인 및 인증서를 적용할 도메인 입력

test.co.kr도메인을 만들었을 겨웅 www 가 붙은 도메인과 없는 도메인 모두 인증서를 적용하려면 test.co.kr, www.test.co.kr 모두 입력

요청 버튼 클릭

 

Route 53에서 레코드 생성 버튼 클릭 후 표시되는 레코드를 생성해준다.

 

로드밸런서 생성

다시 EC2 콘솔로 돌아와 로드 벨런싱 탭에 로드밸런서의 로드 밸런서 생성 클릭

 

http와 https 요청을 사용하는 Application Load Balancer 선택

 

대상 VPC를 선택하고 해당 VPC의 가용영역 및 서브넷을 선택한다.

로드밸런싱 할 두개 이상의 가용영역을 선택한다.

 

로드 밸런서에 적용할 보안 그룹을 선택

 

클라이언트로부터 로드밸런서가 받을 리스너의 요청 프로토콜, 포트 및 보안 설정

https 요청을 하기 위해 https protocol 과 443 포트를 선택하고 target group 으로 이전에 생성한 그룹을 선택한다.

보안 정책은 기본 설정을 권장하고 SSL 인증서도 이전에 생성한 인증서를 선택한다.

그리고 Create load balancer 버튼을 클릭한다.

 

Route53 도메인을 생성한 로드밸런서로 라우팅 설정

이전에 생성한 도메인의 정보화면에서 www가 붙은 도메인과 붙지않은 도메인의 레코드를 수정해준다.

라우팅 대상에서 별칭에 체크 -> Application Load Balancer에 대한 별칭 -> 로드밸런서 생성한 리전 -> 생성한 로드밸런서 선택

설정이 되었으면 저장 버튼 클릭

 

 

인증서가 적용된 도메인으로 접속 테스트

다음과 같이 amazon 인증서를 통한 https 연결이 되었다.

반응형