Amazon AWS ELB와 EC2 인스턴스 연결

nawnoes·2021년 2월 15일
0

AWS ELB와 EC2 인스턴스 연결

1. ELB, Elastic Load Balancing

로드밸런서는 여러 가용영역에서 오는 어플리케이션의 트래픽을 EC2 인스턴스로 분산시켜주는 서비스를 말합니다. ELB의 장점으로는 큰 어려움없이 고 가용성을 가진 서비스를 구축할수 있는 장점.

로드밸런싱 알고리즘응로는 라운드로빈 방식을 사용하며, 헬스체크를 통해 인스턴스가 응답이 없는 경우 트래픽 분배에서 제외시켜줍니다.

(1) ELB 생성

EC2 콘솔에 들어온 후 로드밸런서를 선택합니다.Load Balancer 생성 클릭

(2) Application Load Balancer 선택

(3) 기본구성

  • Load Balancer와의 통신은 https를 사용할 예정으로, https로 변경해줍니다.
  • 가용영역에서는 VPC와 로드밸런서가 활성화 될 서브넷 영역을 지정해줍니다.

(4) 보안구성

현재 발급받은 https 인증서가 없기 때문에 AWS에서 인증서를 요청합니다. AWS에는 ACM(Amazon Certificate Manager)이라는 서비스로 인증서를 프로비저닝 하고 저장합니다.

따라서 ACM을 이용해 새 인증서를 발급 받도록합니다.

ACM에서 인증서 받기

ACM을 통해 인증서를 받기 전에 몇가지 준비물이 필요 합니다

준비물
  • 유효한 도메인 주소
  • Route53에 DNS 서버를 등록
    ACM으로부터 새 인증서 요청 클릭
1단계) 도메인 이름 추가

2단계) 검증 방법 선택

DNS 검증으로 검증 방법을 선택합니다.

3단계) 검토 및 요청

4단계) 검증

등록할 도메인 이름을 클릭하면 아래와 같이 화면이 나오게 됩니다. 도메인의 DNS 구성에 CNAME을 추가하기 위해 Route 53 레코드 생성 버튼을 클릭합니다.

레코드 생성이 완료되면 아래와 같이 화면이 나옵니다. 그러면 계속 버튼을 통해 진행합니다.

5단계) 발급완료

발급이 완료되는데 시간이 조금 걸릴 수도 있습니다. 발급이 완료되면 아까 진행하던 다시 로드밸런싱 생성화면으로 이동합니다.

(5) 다시 보안 설정 구성

인증서가 다시 생성된것을 확인 할 수 있습니다

(6) 보안 그룹 구성

신규로 보안 그룹을 구성한 후 다음으로 이동.

(7) 라우팅 구성

라우팅 구성에서는 로드밸런서를 연결하기 위한 대상 그룹을 입력합니다. Application Load Balancer와 EC2 인스턴스 간에 네트워크 통신을 설정 합니다.

저의 경우 80포트로 받아서 도커에서 서버가 사용하는 포트로 연결할 예정입니다. 따라서 개인의 설정에 맞게 구성을 진행합니다.

(8) 대상 등록

로드밸런서를 연결할 대상 그룹을 등록합니다. 기존엥 EC2 인스턴스를 1개 실행시켜 두어 연결시킵니다.

(9) 검토 후 생성

등록한 내용을 확인 하고 생성을 완료 합니다. 그러면 로드밸런서 생성이 완료되게 됩니다.

2. ELB에 외부 도메인 연동하기

EC2 인스턴스 인바운드 규칙 수정

위에 로드밸런서를 생성하면서 새로운 보안 그룹을 생성하였고, 인스턴스에 로드밸런서를 통해서만 접속할 수 있도록하기 위해 보안그룹에서 인바운드 규칙을 수정합니다.

Route53에 외부 도메인 연결

Route53 -> 호스팅영역 -> 기존에 발급받은 도메인 선택 -> '레코드 생성'으로 레코드 연결

  • 레코드 유형 CNAME 선택
  • 앞서 생성한 ELB의 DNS 이름 을 입력
  • 레코드 생성 완료

확인

위에서 등록한 레코드 이름으로 접속 가능한지 확인. https로 인증서까지 만들었으므로 https://[도메인명].com/[api]명으로 확인

마치며

위 과정을 통해 AWS의 로드밸런서와 EC2를 연결하는 과정을 진행해보았습니다. 위 과정을 통해 인증서 처리와 여러가지 부분에서 클라우드가 편리한 것을 느낄 수 있었습니다. 작은 기업이나 개인의 경우 클라우드를 통해 시간을 절약할 수 있을것 같습니다.

0개의 댓글