grp.GET("/", func(c echo.Context) error {
return c.JSON(http.StatusOK, "OK")
})
devlog 라는 이름의 개인프로젝트를 진행하면서 사용한 ec2와 elb 등의 사용법을 정리해보려 한다.
golang + svelte 조합의 웹 어플리케이션으로 ec2는 free tier에 해당하는 t3.micro를 사용했다.
ec2를 띄워서 alb를 통해 요청을 받는 웹 어플리케이션을 만들기 위해서는
1. ec2 생성
2. 보안그룹 생성
3. 로드밸런서 생성
4. 타겟그룹 생성
이 기본적으로 필요하다.
alb 없이 그냥 ec2 만으로도 서버를 띄우는 것이 가능했지만, aws에서 제공하는 AWS Certification Manager ssl 인증서를 공짜로 사용하기 위해서는 alb 구성을 해야한다.
ssl 인증서를 발급받기 위해서는 도메인이 필요하다
나도 당연히 구매했고, 구매하는 방법 + aws route53으로 연동하는 방법은 구글링하면 많이 나오니까 그걸 참고하면 된다.
한 가지 주의해야할 점은 위 사진 처럼
와일드 카드를 적용한 도메인 네임과, 프로젝트에서 실제로 사용하고 있는 도메인 네임을 모두 등록해야한다는 점이다.
와일드 카드로 등록했으니 다 알아서 먹겠지 했다가 안먹어서 유효하지 않은 인증서 에러를 굉장히 많이봤다.
참고)
alb 적용 후 503, 502 에러가 발생한다면..
1) 503
다른 이유도 있겠지만 나의 경우에는 타겟그룹이 매핑되어있지 않아서 였음
2) 502
다른 이유도 있겠지만 나의 경우에는 health check가 fail 이어서 였음
-> 그 이유는 health check를 하는 라우팅 설정을 안해줘서 였음
grp.GET("/", func(c echo.Context) error {
return c.JSON(http.StatusOK, "OK")
})
이렇게 라우팅을 생성해줘야 health check에서 fail이 떨어지지 않고 502에러를 보지 않을 수 있음
재량에 따라서는 '/ping', '/health'와 같은 라우팅으로 헬스체크를 하는거 같기도 하다. 나는 그냥 기본으로 했다.
502 에러까지 헤결하고 나니
https가 붙은 아름다운 url로 웹페이지에 접속가능했다.
https로 하니 기존에 에러가 나던 쿠키 에러 문제 같은 것들이 해결됐다.
개인프로젝트 주소를 남기고 싶지만 과금이 무서워서 그런 짓은 하지 않겠다.
댓글 남겨주시면 알려드릴수도
'aws' 카테고리의 다른 글
AWS saa-C03 합격 후기 (4) | 2023.03.11 |
---|---|
AWS Associate SAA-C03 덤프 문항 풀이 (0) | 2022.12.20 |