AWS ELB 대신에 Let's encrypt로 HTTPS 적용하기

Denia·2024년 2월 4일
0

TroubleShooting

목록 보기
17/25

저번 글에서까지 AWS ELBhttps를 구현 다 했는데, 오늘부터는 AWS ELB 삭제하고 Let's encrypthttps를 적용하기로 했다.

그 이유는 !!!

AWS에서 24년 2월 1일부터 모든 Public IPv4에 대해서 시간당 요금을 부과하기로 했다.
(시간당 0.005USD 이다)

출처 : AWS 사이트

현재 내 상황은 기존의 EC2가 Public IP 1개, ELB를 사용하면서 2개가 추가 -> 총 3개에 대해서 매달 비용으로 지불된다.

프리티어를 사용하는 동안에는 EC2에 할당되는 Public IP 1개에 대해서는, 요금을 받지 않는다고 합니다.

결제금액이 https 비용으로 사용하기에는 조금 부담되서 (아직 취준생이라.. 🥲) AWS ELB를 삭제하고 그냥 기존 EC2 하나만 유지하기로 했고, 이때 https 적용을 위해서 Let's encrypt를 쓰기로 했다.


진행 과정

EC2의 OSAmazon Linux 2023 입니다.

  1. Certificate Manager에서 인증서를 삭제한다.

  2. Route 53에서 레코드 삭제

  3. ELB 삭제

  4. Target 그룹 삭제

  5. 가비아에서 NameServer를 가비아 NameServer로 원상복구 시키기

  6. 가비아에서 도메인에 대해서 Public IP 할당하기

  7. EC2Let's encrypt 사용을 위해 Cert Bot 설치하고, 도메인 인증을 받는다.

  8. Key 파일이 생성되면 Spring에서 사용할 수 있게 변환 후, Local PC로 가져온다

  9. Spring yaml 파일에 SSH 설정 값을 기입한다. (7 ~ 9번까지 출처 : Spring Boot에 Let's Encrypt SSL 적용기

  10. httphttps로 리다이렉트 될 수 있도록, 해당 설정과 관련된 @Configuration 파일을 추가한다. (출처 : Spring Boot HTTP, HTTPS 모두 사용하기 ( tomcat redirection )

  11. Build 후 서버 EC2에 올리고 실행한다.

  12. 내 도메인으로 접속 후 https로 잘 동작하는지 확인한다.


진행시 주의사항

  • 11번 과정 진행 중에 다음과 같은 에러를 만날 수 있다. (org.apache.catalina.core.StandardService.initInternal Failed to initialize connector [Connector[HTTP/1.1-80]])
  • 저번 글에서도 말했던 내용이지만, DNS 캐시가 남아있을 수 있으니 nslookup을 통해서 IP를 확인해보면 좋고, 와이파이로 자꾸 안잡힌다면 휴대폰을 이용해서 LTE로 접근해보자.

설정을 다 한거 같은데 잘 되지 않는다면, 보안그룹에서 Inbound 설정이 제대로 되어있는지 꼭 꼭 확인하자.

profile
HW -> FW -> Web

0개의 댓글