항해14기 본과정/항해14기 개발일지

[항해 14기] 개발일지 52 (실전프로젝트 - HTTPS)

스쿼트잘함 2023. 6. 5. 23:53

실전프로젝트 - 3주차

 

1. 회의 내역(BE안건)

1) 스웨거

- 사용법 공유

2) 센트리

- 내용 공유

3) 토큰/userid 이슈

- 기존 cookie에 담아주던 user id등은 페이지 넘어가는 경우 증발

- 모든 요청마다 토큰 전송으로 변경, 토큰값 디코드하여 BE에서 사용

4) 점주/유저 params

- 위스키바 상세 조회 시 받는 params로 보유 위스키, 좌석 현황에 반영 가능(FE에서 같은탭)

- 위스키바 상세 조회 유저/점주 api 분리

 

 

 

2. 작업 내역(HTTPS)

*가비아/aws certificate manager/ec2/router53 이용

 

1) EC2 보안그룹 설정

- HTTP 80 및 HTTPS 443 포트 오픈

 

2) Route 53에 도메인 등록

- 도메인 구매(가비아)

- Route 53에 호스팅 영역 설정

- 이후 호스팅 영역 세부 정보에서 NS유형의 값 4종(네임 서버) 가비아 도메인 관리에서 세팅(네임서버 1차 2차 3차 4차 세팅)

- aws에서 제공해준 ns값은 맨뒤의 .을 제거해줘야함

 

3) SSL 발급

- aws certificate manager에서 인증서 요청

- 아래처럼 작성

- 이후 아래처럼 검증대기 중으로 변경됨

- 일정 시간 20분~2시간이 지나면 발급됨으로 변경

- Route53의 CNAME 이름/값들을 가비아에 dns레코드 추가 절차를 해야한다는 레퍼런스가 있어서 해당 부분도 진행, 발급에 성공하였으나 가비아에 추가해야 인증이 진행되는지는 불명확한 상태

- 해당 과정을 진행하면 기존 가비아와 dns의 연결이 끊김, Router53에 a타입 레코드 추가로 복구 가능(로드밸런서를 이용한 https를 진행할거면 불필요)

 

4) 타겟 그룹 생성

- EC2 로드밸런싱에서 대상그룹 선택

- 인스턴스로 타겟그룹 생성, EC2와 동일한 VPC 설정, HTTP 80 포트+ HTTPS 443 포트 펜딩

- Health checks는 EC2 상태 확인 용도이며, Unhealthy 상태면 타겟 그룹으로 요청(부하)을 보내지 않음

- 체크용 api경로를 설정해주어 HTTP80포트를 healthy상태로 변경 해줌

 

5) Load Balancer 설정

- Application Load Balancer 선택

- 이름 설정 및 디폴트값으로 진행

- Mappings의 경우 최소2개가 필요한데, 4개 전부 선택하여 진행(EC2 인스턴스의 VPC, 서브넷과 매핑 되는지 확인)

- 이후 보안그룹 EC2 인스턴스와 동일하게 선택

- HTTP 80과 HTTPS 443 리스너 생성(위에서 만든 타겟그룹 선택)

- SSL 인증서 선택

- 이후 Create Load Balancer

 

6) 도메인 레코드 생성

- Route53에서 A타입으로 생성하는데 빠른생성말고 마법사 이용

- 별칭 체크 후 트래픽 라우팅 대상 Application/Classic Load Balancer에 대한 별칭으로 설정

- 지역 및 로드밸런서 선택 후 레코드 생성

 

7) 로드 밸런서 리스너 규칙 추가

- HTTP 80 : 호스트 헤더 도메인으로 설정, 리디렉션 대상 HTTPS 443로 설정

- HTTPS 443 : 호스트 헤더 도메인으로 설정, 전달 대상 로드밸런서로 설정

 

 

 

3. 트러블슈팅/회고

1) let's encrypt의 certbot 방식을 포기하고 aws certificate manager 진행하여 성공하였다. 추후에 실패원인 재파악하여 certbot 다시 해볼 예정

2) aws의 ui가 자주 바뀌어 레퍼런스가 상이한게 많았지만 certificate manager  & load balance 레퍼런스 자체가 많아서 진행하기에 수월하였음

3) HTTPS에 너무 많은 시행착오가 있었고, 시간을 많이 소비함. 혼자서 새로운 기술을 익히고 적용해야 할 때는 성능이 부족하지 않은 선에서 상세한 레퍼런스와 성공사례가 많은 방식을 우선순위로 채택할 예정