DevOps30일차 - elb, cloud front, route53

문한성·2023년 4월 18일
0

부트캠프

목록 보기
55/123
post-thumbnail

도메인 연결과 CDN 및 HTTPS 적용

1. Certificate Manager를 통한 도메인 인증서 발급

  • 구매한 도메인을 기준으로 인증서를 발급 받습니다.
    • 인증서는 프론트엔드 Cloudfront 사용 리전인 us-east-1과 백엔드 Load Balancer 사용리전인 ap-northeast-2에서 발급 받아야 합니다.
    • 발급 시, DNS 검증 가이드로 레퍼런스를 참고하세요.
    • 이후에 DNS 공급자로 Route53을 이용합니다. Route53에 레코드 생성과정을 반드시 거쳐야합니다.
  • 인증까지 최소 30분의 시간이 소요될 수 있습니다.

도메인 구매

Route53의 도메인 -> 등록된 도메인 -> 도메인 등록 으로 들어가서 도메인을 구매한다.
도메인 이름과 S3버킷의 이름을 맞춰줘야함으로 S3버킷도 도메인이름으로 생성해줘야한다!!
맞추지 않았을 때 에러가 발생한다

등록 연락처를 등록한다. 여기서 적은 이메일로 인증이 날아가므로 주의해서 적는다.

Route53의 호스팅 영역 -> 호스팅 영역 생성 으로 들어가서 호스팅 영역을 생성한다.

도메인을 구매하면 이메일로 다음과 같은 메일이 오는데 링크를 타고들어가서 인증을 하면된다.

Certificate Manager -> 인증서 요청에서 인증서를 요청 할 수 있다.
cloud front는 리전 위치를 버지니아 북부에서 인증서를 받아야하기에 버지니아 북부와 서울 리전에 하나씩 인증서를 받아와야한다.

도메인 이름에 *.도메인이름 을 추가한이름은 와일드카드(Wildcard) 인증서이다.
와일드카드(Wildcard) 인증서란, 도메인(FQDN) 의 하위 서브 도메인 호스트에 대해서 SSL 적용을 무제한 적용할수 있는 인증서 입니다. 레퍼런스

해당 요청을 하면 인증을 기다리는시간이 30분정도 걸릴 수 있으므로 기다려서 인증을 받는다.
발급이 완료되면 다음과같이 인증서 나열에 나타난다.

인증서 ID를 클릭해서 들어간다. Route 53에서 레코드를 생성해준다.

백엔드 HTTPS 적용

  • 애플리케이션 로드밸런서(Application Load Balancer)를 생성합니다.
  • ALB의 리스너, 가용영역, 인증서를 설정합니다.
  • 대상 그룹(target group)을 등록합니다.
  • 로드밸런서 DNS 주소로 접속해, 테스트를 진행합니다.

EC2 -> 로드 밸런싱 -> 로드밸런서 -> create load blancer로 들어가서 Application Load Balancer를 Create한다.

로드밸런서 이름을 설정해준다.

VPC와 가용역역(az)를 선택해준다.

보안 그룹을 선택해준다.

리스너 및 라우팅설정을 HTTP 80포트와 HTTPS 443포트를 열어준다.
만약 target group이 없다면 target group을 만들어준다.

Create target group
로드밸런서에서 라우팅할 그룹에 대한 설정이므로 HTTP 80포트로 설정해준다.

Health check를 할 프로토콜과 path를 지정해준다.
밑의 Advanced health check settings를 이용해서 Health check의 빈도와 횟수 상태코드를 설정 할 수 있다.

인스턴스를 선택한후 Include as pending below를 한다.

다시 로드 밸런싱 생성 창으로 돌아와서 밑의 Default SSL/TLS certificate에서 인증받은 인증서를 선택한후 로드밸런서를 생성한다.

3. 프론트엔드 CDN 및 HTTPS 적용

  • Origin Domain을 설정해야 합니다.
  • Viewer protocol policy는 Redirect HTTP to HTTPS로 지정해야 합니다.
  • Certificate Manager에서 발급받은 인증서를 사용해야 합니다.
  • Default root object 부분에 index.html을 작성해야 합니다.
  • 대체도메인과 인증 받은 도메인의 이름이 같아야 합니다.
  • 생성된 배포의 Distribution domain name으로 접속이 되는지 확인합니다.

Cloud Front -> 배포 -> 배포 생성으로 들어간다.

  • 원본 도메인에 S3를 선택해준다.
  • 선택 후에 나오는 웹 사이트 엔드 포인트 사용을 클릭한다.

뷰어 프로토콜 정책에서 Redirect HTTP to HTTPS로 설정해준다.
HTTP로 들어와도 HTTPS로 redirect를 해주는 기능이다.

함수 연결은 넘어가고 설정에서 SSL인증서를 등록해주고 배포 생성을 한다.

배포한 CloudFront를 클릭해서 들어가서 설정을 편집한다.

대체 도메인 이름을 적어준다 나는 www.도메인으로 적었다 로드밸런서는 api.도메인으로 사용하여 두개의 레코드 이름을 다르게 하기위함이지 반드시 www로 적어야하는것은 아니다.

4. Route53 레코드 등록

Route53 -> 호스팅 영역 -> 호스팅 영역 이름을 클릭해서 들어간후 레코드 생성을 한다.
로드 밸런서를 먼저 route53에 등록하기 때문에 레코드 이름을 api로 하고 별칭을 킨 후에
Apllication/Classic Load Balancer과 서울 리전을 선택하고 위에서 만든 로드밸런서를 선택해준 후에 레코드 생성을 한다.

그다음 Cloud Front를 등록 해준다.

profile
기록하고 공유하려고 노력하는 DevOps 엔지니어

0개의 댓글