생각정리/항해99

[주특기 프로젝트] 8일차

생각중임 2023. 9. 24. 00:07

Http -> Https 배포


1. 가비아에서 도메인 구매

가비아에서 shop, store, site, xyz까지는 1년 동안 어느 정도 저렴하게 도메인을 구매할 수 있어 사용하게 되었다.

동일한 도메인을 1년이상으로 연장하게 되면 할인가가 아닌 정상비용으로 처리한다.

https://www.gabia.com/

 

웹을 넘어 클라우드로. 가비아

그룹웨어부터 멀티클라우드까지 하나의 클라우드 허브

www.gabia.com

일단 이번 프로젝트는 시험적으로 서보는 프로젝트이고 벡엔드서버의 경우 노출이 되지 않는 도메인으로 생각을 해서 가장 저렴한 , store 도메인으로 구매를 하였다.

2. Route 53에서 호스팅 설정

1. AWS Route 53에서 호스팅 영역을 구매한 도메인 이름으로 생성한다.

2. 호스팅 영역을 생성하면 레코드가 기본적으로 NS유형 4개와 SOA유형 1개가 생성되어 있는데, NS유형 4개를 구매한 도메인 정보의 네임서버에 기입해 준다. (값에 마지막에 .이 있는데 이건 제외하고 기입한다.)

3. Route 53에 호스팅 도메인을 추가하면 비용이 청구될 수 있으니 알고 사용을 하자.

  • 호스팅 영역 비용

  • 쿼리 영역 비용

 

3. ACM 인증서 발급

1. 구매한 도메인으로 인증서를 요청한다.

2. Route 53에서 레코드 생성을 해주면 자동적으로 Route 53에 CNAME의 레코드가 생성된다.

3. 가비아에서 DNS를 등록 해준다.

유형 : CNAME

호스트 이름 : 호스팅 영역에 추가된 CNAME의 레코드 이름 (뒤에 붙은 구매한 .도메인 이름은 제외)

값 : 호스팅 영역에 추가된 CNAME의 값

4. 로드 밸런싱 - 대상 그룹 생성

  • 대상 유형 선택 : 인스턴스
  • 대상 그룹 이름 : 마음대로
  • 포트 : 자신이 사용하는 포트 기본적으로 80이지만 스프링 벡엔드로 서버를 구성해서 8080으로 설정을 하였다.

사용할 포트 대상 등록

5. 로드 밸런싱 - 로드밸런서 설정

1. 로드 밸런서 생성

2. 보안 그룹은 default는 남겨두고 새롭게 자신이 열어둘 인바운드 규칙을 추가한 보안 그룹 추가

3. 위에서 만든 대상 그룹을 리스너에 선택해 준다.

4. 위에서 발급한 ACM인증서 선택한 후 로드밸런서를 생성해 준다.

5. 생성한 로드 밸런서에서 리스너 및 규칙에서 http 포트를 리스너 관리 - 리스너 편집에서 작업 유형을 URL로 리디렉션으로 변경하고 HTTPS 443 포트로 선택을 하고 변경을 해준다.

6. 다시 Route 53 호스팅 설정으로 돌아가 A 레코드 유형으로 별칭을 사용해서 위의 로드 밸런서를 선택해서 레코드를 추가해준다.

6. health 컨트롤러 추가

AWS에서 설정을 다해주고 계속 

1. 로드 밸런싱 - 대상 그룹 - 상태 검사 - 편집에서 경로를 설정해 준다.

2. 로드 밸런싱 상태 검사를 받을 요청이 들어오면 성공코드만 보내줄 API를 만들어준다.

@RestController
public class HealthCheckController {

    @GetMapping("/health")
    public ResponseEntity<HttpStatus> init() {
        return new ResponseEntity<>(HttpStatus.OK);
    }
}

3. 검증 부분에도 패스를 해줄 수 있도록 설정을 추가


Https연결을 테스트해보면서 탄력적 IP를 받아서 연결을 했다가 해체시키고 가만히 나둔 탄력적 IP가 나에게 비용을 선물했다.
탄력적 IP 주소를 사용할 때 해당하는 경우를 비용이 발생하지 않으니 확인을 해두자.
1. 탄력적 IP 주소가 EC2 인스턴스에 연결되어 있을 경우.
2. 탄력적 IP 주소가 연결된 인스턴스가 실행 중인 경우.
3. 인스턴스에 연결된 탄력적인 IP 주소가 하나뿐일 경우

CI / CD를 적용하면서 배포를 하면서도 AWS에서 많이 배우는 느낌이었는데, Https를 적용하면서도 다양하게 배울 수 있었던 것 같다.
많은 시행착오가 있었는데, 일단은 내용이 어지러울 거 같아 정리해서 올리고