실전프로젝트 - 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에 너무 많은 시행착오가 있었고, 시간을 많이 소비함. 혼자서 새로운 기술을 익히고 적용해야 할 때는 성능이 부족하지 않은 선에서 상세한 레퍼런스와 성공사례가 많은 방식을 우선순위로 채택할 예정
'항해14기 본과정 > 항해14기 개발일지' 카테고리의 다른 글
[항해 14기] 개발일지 55 (실전프로젝트 - Socket.io) (0) | 2023.06.09 |
---|---|
[항해 14기] 개발일지 54 (실전프로젝트 - Comparisons Sorting Algorithm) (0) | 2023.06.07 |
[항해 14기] 개발일지 51 (실전프로젝트 - Swagger, 멘토링) (0) | 2023.06.03 |
[항해 14기] 개발일지 50 (실전프로젝트 - AWS) (0) | 2023.06.03 |
[항해 14기] 개발일지 49 (실전프로젝트 - Sentry, 면접 스터디 발제) (0) | 2023.06.01 |