배포했더니 https가 문제네 ..

김예진·2022년 2월 16일
1

https를 적용시켜주려면 ssl 인증서가 필요하다. 내가 찾은 방법으로는 두 가지가 있는데.

  1. 무료방법
    letsEncrypt를 사용하는 방법
    90일동안만 사용할 수 있어서 자동 갱신을 하는 등의 작업들이 더 필요하다.
  1. 유료 방법 (AWS ACM을 사용하는 방법)
    참고 https://brunch.co.kr/@skykamja24/287 (방법 자세함)
    참고 http://blog.freezner.com/archives/1828
    참고 https://mwoo526.tistory.com/16

이 경우에는 꼭 필요한 것들이

  • ec2
  • route53
  • ELB

내 상황으로는

  • ec2 : 이미 사용중임
  • route53 : 도메인 구입시 일시적인 비용과 월별 호스팅 비용이 나간다고함 호스팅 비용은 평균 1000원에서 많으면 2000원까지 나가는 것을 확인(더 많아질 수 있음)
  • ELB : 아직 비용을 예상할 수가 없음..

마음같아서는 무료방법으로 자동갱신 작업들을 해주는 것이 더 효율적이지 않을까? 라고 고민했는데.. 이미 도커의 실패와 배포의 에러에 지친 나... 돈을 쓰는 것도 나쁘지 않다고 생각이 드는...

근데 일단 무료든 유료든 도메인은 꼭 필요하다. 프로젝트 배포에 쓰고 싶은 도메인 가격을 1년 기준으로 비교하니,

cafe 24 -> 23,500원
gabia -> 13,500원
route53 -> 14,000원

그런데 도메인 구매도 구매지만, 도메인 연결이 필요하다!
도메인 연결시에 nameserver 설정이 필요(구매한 도메인과 서브 도메인들을 어떤 ip를 매핑해주는 작업)한데, 찾아본 결과
1) 직접 name server 구축
2) 서비스를 이용(aws route53 등등)

이건 직접 구축인지, 서비스 이용인지는 모르겠지만 가비아에서 도메인 구매후 ec2 ip와 연결하는 방법이 적혀있다. https://hoyeong-rithm.tistory.com/40
https를 무료로 할거면 이 방법으로 도메인 연결하면 되지 않을까 싶다

... ELB는 https://ichi.pro/ko/aws-elbui-sumgyeojin-biyong-211410930500671 이걸보니 쓰면 안될 것 같기도하고...


지금 보니 나는 application loadbalancer를 사용한 것같다.

https://brunch.co.kr/@skykamja24/287 여기서 안되면 application load balancer를 쓴게 아닌지 확인하라고 했는데.. 헉

그래도 다행히 application load balancer https라고 검색하면 몇개 나오긴한다...
https://medium.com/@labcloud/application-load-balancer-alb-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0-de486531e91a

https://velog.io/@jonmad/AWS%EB%A1%9C-Https-ELB-%EC%84%A4%EC%A0%95

일단 내일 application load balancer 사용기준으로 다시 한번 살펴보고, 그래도 안되면 classic으로 써야할듯(8월15일까지만 서비스한다던데 .. 잘모르겠다)


계속 연결이 안될 때 내가 확인해본 것들

이후에는 503error가 떴었다.

  1. 일단 error 체크 , 검색 결과

https://blog.naver.com/ncloud24/221508265497

ELB의 URL로 웹페이지 접속 시 HTTP 503 에러가 발생했을 경우 원인에 대하여 설명드리겠습니다.
우선 HTTP 503 일시적인 과부하 등으로 인하여 요청을 수행할 수 없어서 발생하는 에러입니다.
HTTP 에러가 발생했을 때 웹소스와 ELB 설정상에 문제가 없다면 ELB에 문제가 생겼을 가능성이 있습니다.
ELB가 정상인지 확인하기 위해 ELB의 주소 대신 웹서버의 IP로 직접 서버에 접근하여 확인합니다.
만약 정상적으로 웹페이지가 나온다면 ELB의 문제라고 확신할 수 있습니다.

-> 내 소스코드에 문제가 아닌지 로컬에서 서버를 돌렸을 때는 잘 접속이 되었다. 그러므로 ELB 설정의 문제가 확실했고, 위 글에서도 그래프가 생기는 것을 보고, 나도 모니터링을 확인하려고 찾아봤다.

EC2 > Target groups > 내가 설정하면서 만든 그룹 이름 >

아래쪽에 Targets | Monitoring | Health checks | Attributes | Tags

여기서 monitoring을 선택했는데 아무런 그래프 표시 선이 없었다. 이때 접속이 안되었음을 예감... 그리고 다시 ELB를 설정했다.

내가 놓친건 아마도,

이전에 설정할 때 ELB리스너를 http, https로 만들고 각기 다른 그룹을 설정(이 설정도 잘못되었음)했다.

이전 설정 )

  • 리스너 http 에 목표 그룹의 프로토콜 http : 8080
  • 리스너 https에 목표 그룹의 프로토콜 https : 80 이런식으로?

그런데 아래와 같이 다시 설정하니 제대로 되었다.


target group name은 캡쳐를 위해 임시로 test라고 적었다.

이 부분은 이렇게 설정해놓고, 다음 페이지로 넘어가서, 인스턴스를 선택하고 inclue as pending below를 한번 더 눌러주고 생성을 눌렀더니 처음과 다르게 연결이 되었다.

지금 타겟 그룹 모니터링을 보면,


그래프들이 생성된 것을 보고, 아 연결되었구나 싶었다.

  • 그리고 추가로 pm2를 사용했다면 pm2 logs "동작하고 있는 id name"으로 log를 계속 확인하는 것도 큰 도움이 되었다.
profile
Backend Developer 🌱 벨로그 내용을 티스토리로 이사중~!

0개의 댓글