Route53 과 ELB

WAS·2025년 5월 12일
0

AWS

목록 보기
2/4

✅ Route 53

  • DNS 을 발급하고 관리해주는 서비스
    💡 DNS (Domain Name System) -> 문자를 IP주소로 변환해주는 시스템(서버)
  • Route53 말고도, 가비아 후이즈 등에서도 도메인을 구매할 수 있다

도메인이 없던 시절에는 특정 컴퓨터와 통신하기 위해서 IP 주소(ex. 12.134.122.11) 를 사용했다
하지만 IP주소는 많은 숫자들로 이루어져 있어서 일일이 외우기 불편했고, 사람들이 기억하기 쉬운 문자로 컴퓨터의 주소를 나타낼 수 없을까라는 고민을 통해 DNS 가 만들어졌다

!! 컴퓨터는 숫자를 처리하기 쉽기 때문에 IP 주소를 문자로 구성하기에는 어려움

IP 주소는 HTTPS를 적용할 수 없기 때문에, 특정 서비스를 운영할 때 DNS는 필수적으로 사용해야 한다

✅ 도메인을 연결하는 방법

  1. 우선 EC2 를 생성하고 연결하여 서버 실행하기
  2. AWS 사이트에서 ROUTE 53 검색해서 도메인 구매
  3. 무료로 도메인 구매하려면 내도메인한국 에서 무료로 구매해서 EC2 IP 등록

✅ ELB (Elastic Load Balancer)

  • 트래픽(부하)를 적절하게 분배해주는 장치
  • 여러 EC2 인스턴스 한테 골로루 나눠서 요청을 보내줌
  • HttpsELB 에 적용

ELB 를 사용하기전에는 사용자들이 EC2 의 IP 주소 또는 도메인 주소에 직접 요청을 보내는 구조였다
하지만 ELB를 도입하면 EC2에 직접적으로 요청을 보내지 않고, ELB 를 향해 요청을 보내는 구조가 된다

ELB의 부가 기능인 SSL/TLS(HTTPS) 개념 정리

✅ SSL/TLS

  • HTTP를 HTTPS로 바꿔주는 인증서

✅ HTTPS 적용시키는 이유

  • 보안적인 이유
    -> 데이터를 서버와 주고 받을 때 암호화를 시켜서 통신을 함
    -> 암호화를 하지 않으면 누군가 중간에서 데이터를 가로채서 해킹할 수도 있다

ELB 세팅 방법

  1. 왼쪽창의 로드 밸런서 들어가서 -> 로드 밸런서 생성 클릭 -> 로드밸런서 유형 선택
  2. 기본구성에서 로드밸런서이름, 체계는 인터넷 경계, 로드밸런서 IP 주소유형은 IPv4 선택
  3. 네트워크 매핑에서는 가용영역만 모두 체크한다
  4. 보안그룹생성에서는 우선 새창에서 EC2 -> 보안그룹 -> 보안그룹 생성을 들어간다
  5. 보안그룹이름, 설명, 인바운드 규칙(유형: HTTP, 소스: Anywhere-Ipv4) 만들기
  6. 인바운드 규칙(유형: HTTPS, 소스: Anywhere-Ipv4) 만들기
  7. 아웃바인드는 그냥 넘어가고 보안그룹 생성 누르기
  8. 다시 보안 그룹 선택부분으로 넘어가서 방금만든 보안그룹 선택
  9. 리스너 및 라우팅 부분 => ELB로 넘어온 요청을 어떤 EC2 인스턴스 로 전달할지 설정하는 부분으로
    대상그룹(Tarket) 그룹 생성을 먼저 해줌 -> 새창이 뜨는데 거기서 대상 유형선택 : 인스턴스 선택
    -> 대상그룹이름 적기 -> 프로토콜 : 포트 : HTTP : 80 -> IP 주소 유형 : IPv4 -> VPC는 그대로 -> 프로토콜 버전 : HTTP1

10 : 상태검사
✅ 상태검사란? : 특정 EC2 인스턴스에 있는 서버가 에러가 있는지 대상 그룹에 속해있는 각각의 EC2 인스턴스에 요청을 보내는것 (ELB 입장에서는 고장난 서버한테 요청(트래픽) 전달하는게 비효율적임)

그 요청에 대한 200번 대의 응답이 날라오지 않는다면 서버가 고장났다고 판단하고
그 EC2 인스턴스한테는 요청(트래픽)을 보내지 않음

그래서 상태검사를 하는 이유는 효율적인 요청(트래픽) 의 분배가 가능하기 때문이다

상태검사프로토콜 : HTTP , 상태검사 경로 : /health 로 설정하고 다음 클릭

  1. 만들어놓은 인스턴스 선택 -> 아래에 보류 중인 것으로 포함 선택 -> 대상그룹 선택 클릭
  2. 다시 9번의 리스너 및 라우팅 부분을 가서 만든 것 선택
  3. 로드 밸런서 생성 클릭
  4. Health Check API 생성해주기

✅ ELB에 도메인 연결하기
1. ROUTE 53 들어가기 -> 호스팅영역 -> 구매한 도메인 선택 -> 레코드 생성 ->
레코드이름 설정 : api로 적기 + 레코드 유형 : A-IPv4 주소 및 일부 AWS 리소스로 트래픽 라우팅 선택
-> 별칭 체크 -> 엔드포인트 : Application/Classic Load Balancer에 대한 요청 선택 -> 리전 : 서울 선택
-> 로드 밸런서 : 만든것 선택 -> 레코드 생성

✅ Https 적용을 위해 인증서 발급하기
1. Certificate Manager 검색해서 클릭 -> 인증서 요청 클릭 -> 퍼블리 인증서 요청 클릭 후 다음
-> 위에서 ELB에 도메인 연결한 정규화된 도메인의 이름을 넣기 -> 검증방법 : DNS 검증 - 권장
-> 키 알고리즘 : RSA 2048 선택 후 요청 -> 시간이 지난 후 새로고침 하기 (검증 대기해야함= 확인절차)
-> 생성된 것 들어가서 ROUTE 53에서 레코드 생성 클릭 -> 선택 후 레코드 생성 클릭
-> DNS 레코드 생성됨 -> 조금 기다리면 검증 시켜줌

✅ ELB에 HTTPS 설정하기
1. EC2 검색 후 클릭 -> 왼쪽에 내려서 로드밸런서 클릭 -> 생성한 로드밸런서 클릭 -> 리스너 및 규칙에서 리스너 추가 클릭 -> 리스너 구성부분에 기존 HTTP를 -> HTTPS로 바꿔주기
-> 대상그룹에는 만들었던 대상그룹 선택 -> 인증서부분에 만든 인증서로 바꿔주기 -> 추가 클릭

이렇게 하면 HTTPS 로 접속이 된다 하지만 HTTP로 접속해도 주의 문구가 나오면서 접속이된다
그래서 HTTP로 접속하면 자동으로 HTTPS로 자동으로 전환되게 만들어주는 설정을 추가하겠다

✅ HTTP로 접속하면 자동으로 HTTPS로 자동으로 전환 설정
기존의 리스너 및 규칙의 HTTP 를 삭제 -> 리스너추가 클릭 -> 프로토콜은 그대로 HTTP로 나두고
라우팅 액션을 URL로 리다이렉션으로 선택 -> 프로토콜 HTTPS 부분의 포트를 443으로 바꾸기
-> 추가

결론은 일반 IP주소에 HTTPS 를 적용시키려면 도메인부터 구매해서 붙인다음
EBL 도 추가줘야한다

✅ 비용이 안나가려면?
만든 로드밸런서 (ELB) 를 삭제하기
인스턴스 를 삭제하기
탄력적 IP 삭제하기

HTTPS 를 적용하기 위해서 ELB 말고도 Nginx , Cerbot 도 있다
하지만 현업에서는 ELB 를 많이 사용한다 -> 설정하기 쉽고 HTTPS 인증서 만료 기간 갱신도 자동해줌

그러면 Nginx (엔진엑스) 는 왜사용할까? -> HTTPS 를 적용하는데 비용이 들지 않음
Nginx 는 cmd 창에서 설치


profile
우측 상단 햇님모양 클릭하셔서 무조건 야간모드로 봐주세요!!

0개의 댓글