본문으로 바로가기

AWS EC2 Load Balancer 공부

category Linux/AWS 2022. 2. 7. 11:23

https 로 접근하고 싶어서 찾아보면서 정리해봅니다.

 

1. AWS 도메인 등록하기

저는 테스트용으로 사용할 도메인으로 hosting.kr 에서 이벤트가로 판매중인 xyz 도메인을 구매하였고,

예치금 1000원을 가상계좌로 이체하여서 990원을 결제하여 사용하였습니다.

 

AWS Route 53 등록

AWS Route 53은 DNS(도메인 네임 서비스)를 담당합니다.

Route 53에서 호스팅 영역을 선택 후 호스팅 영역 생성을 클릭합니다.

 

도메인이름에 도메인을 넣어주고 생성을 클릭합니다.

 

다음 과 같이 생성을 확인할 수 있습니다.

생성을 확인 한 후 레코드 생성을 클릭하여 A레코드를 추가해보겠습니다. (레코드 설명은 접은글)

더보기

A 레코드

 - 정규화된 도메인 이름/호스트명을 IPv4에 연결

 - 가장 기본이 되는 레코드

 - 실제 IP주소에 도메인을 연결

 

CNAME 레코드

 - 자원에 대한 접근을 단순화 하기 위해 호스트의 별명을 지원

 

MX 레코드

 - 메일 교환 레코드, 메일을 수신할 서버를 지정

 

TXT 레코드

 - 호스트에 대한 텍스트 정보

 - 도메인 소유권 인증

 

 

레코드 이름에 www를 넣어주었고 값에는 퍼블릭 IPv4 주소를 넣어주었습니다.

실제로 사용하실 때는 퍼블릭IPv4 주소가 아니라 탄력적 IP를 발급받아서 사용해야한다고 합니다.

저는 간단히 테스트만 할 것이므로 퍼블릭아이피를 사용하겠습니다. (탄력적 IP 발급은 접은글)

더보기

EC2 -> 네크워크 및 보안 -> 탄력적 IP 으로 가셔서 탄력적 IP 주소 할당을 클릭해줍니다.

 

다음과 같이 화면이 나오는데 네트워크 경계 그룹은 변경할 것이 없어서 default 상태로 생성하였습니다.

 

다음과 같이 생성이 되었으면 아이피를 클릭하여 들어갑니다.

 

우측 상단의 탄력적 IP 주소 연결을 클릭합니다.

 

인스턴스 목록에서 원하는 인스턴스를 선택하여 연결 후 연결을 누릅니다.

 

그럼 다음과 같이 완료된 모습을 볼 수 있습니다.

 

 

A 레코드를 등록하고 난 뒤, 레코드 유형 NS에 있는 네임서버들을 Hosting.kr에 넣어주도록 하겠습니다.

 

나의 도메인으로 들어가서 네임서버 변경을 수정해줍니다.

 

네임서버를 변경하려면 본인인증이 필요했습니다. 그 전까지는 내용 수정이 불가능했습니다.

다음과 같이 기존 hosting.kr의 기본 네임서버를 지우고 아마존에서 발급받은 네임서버들로 변경해주었습니다.

 

 

 

2. 로드밸런서 설정

로드밸런서는 EC2 왼쪽 메뉴 거의 마지막에 있었다.

로드 밸런서 생성 클릭!

 

로드 밸런서 타입 설정

로드밸런서는 총 4가지 종류가 있고, 클래식 로드밸런서는 2022년 8월 15일에 종료한다고 적혀있었습니다.

영어로 나와서 이해가 안가는 부분이 있어서 번역기의 힘을 빌렸습니다.

저는 https를 사용할 것이기 때문에 첫 번째 있는 Application Load Balancer로 만들겠습니다.

 

로드밸런서 이름은 test-load-balancer로 만들었고,

스키마는 내부망이 아니기 때문에 기본, IP address Type 또한 IPv4를 사용할 예정이라 기본으로 설정하였습니다.

 

네트워크 맵핑 부분의 Mappings 부분은 설명에 추 후에 제거할 순 없지만 추가 할 수있다고 적혀있어서 추가하지 않으려 했습니다..

하지만 매핑 서브넷은 2개이상 반드시 선택되어야 하다고 메시지가 떠서 상단 2개(2a, 2b)를 선택해주었습니다.

 

 

Security groups는 이 전글에서 만들었던 wordpress에 적용하려하기 때문에 wordpress에 설정하였습니다.

기본은 보안그룹의 기본인 default 입니다.

 

리스너와 라우팅 설정에서는 타켓그룹이 없어서 하단의 Create target group을 클릭하여 만들어 주었다.

 

기본 구성의 대상 타입은 인스턴스를 설정했다.

 

타켓 그룹의 이름은 test-target으로 작성하였고 나머지는 프로토콜, 포트, VPC, HTTP1 은 기본값을 사용하였습니다.

 

 

상태 확인 탭에서는 아직은 어떻게 진행될지 모르기 때문에 기본으로 진행했습니다.

태그는 옵션이라 사용하지 않고 다음으로 넘어갔습니다.

 

로드밸런서 요청대상은 현재 하나뿐인 인스턴스 wordpress를 선택했습니다. Include as pending below 를 클릭해주세요

Include as pending below 전

대상 검토는 아직 무엇을 설정해야할지 감이 안잡혀서 그대로 냅두고 다음을 클릭하여 완료하였습니다.

Include as pending below 후

 

다시 로드밸런서로 돌아와서

 

위와 같이 Forward to를 설정해주고 https를 추가해주었습니다.

 

보안 리스너 설정의 보안정책은 default인 2016-08로 설정하였습니다.

(SSL은 보안에 취약할수 있다고해서 인증서를 선택할때 TLS가 적혀있는것을 선택하는 것을 추천드리지만, TLS도 취약점이 있다고 하여 1.3버전을 추천하던데 아마존에선 없어서 기본으로 설정했습니다.)

기본 SSL 인증서는 도메인이 없어서 필요없을 줄 알았으나..

필수 항목이여서 Request new ACM certificate를 클릭하여 새로 만들러 갔다.

 

다음과 같이 '이 인증서에 다른 이름 추가'를 클릭하여 2가지의 도메인을 추가해주었습니다.

*.19-97.xyz를 입력하는 이유는 www와 같은 형태의 요청도 받을 수 있다고 한다.

 

생성을 하면 다음과 같은 화면이 보입니다.

 

 

Route 53에서 레코드 생성을 눌러서 기본으로 생성하고 20초 정도 지나고 새로고침을 하니 발급이 되어있었습니다.

(그래서 해당 작업이 필수인건가 헷갈리네요..)

 

인증서가 발급이 되었다면 다시 로드밸런서로 돌아와서 해당 SSL 인증서를 선택해줍니다.

그 후 로드밸런서를 생성해줍니다.

 

로드 밸런서가 생성되고나면 Route 53으로 다시 들어가서 로드밸런서와 연결해줍니다.

기존에 퍼블릭주소를 넣어놨던 레코드를 수정해줍니다.

1. 별칭 클릭

2. Application/Classic Load Balancer에 대한 별칭

3. 지역 선택

4. 생성한 로드밸런서 선택

 

그 후 접속해보니 503에러가 떠서 로드밸런싱을 확인해보니

443은 테스트 해보고 삭제함..

저는 대상글훕에 targets에 아무것도 없었던 것을 확인해서 다음과 같이 추가를 해주었고, healthy로 변경된 후 다시 접속해보니

정상적으로 접속이 되었다.

 

https로도 접속이 가능했으나 CSS가 깨져서 확인해보니

워드프레스에 설정된 주소가 ip로 설정되어 있어서

관리자 사이트 -> 설정 -> 일반

테스트 한다고 test 폴더를 만들었다가 경로가 저렇게 되버림..

다음과 같이 주소를 설정해주니 정상적으로 접속이 되었습니다.

 

마지막으로 www로 들어오는 주소도 되도록 다음과 같이 추가를 해주었습니다.

 

반응형