1. github action commit tag
2. http -> https 리다이렉트 <- 이번 글에서 할 거
우선 트러블 슈팅 과정이다(그냥 쭉 내리고 #eb 재배포 부분을 봐도 된다.)
# eb 트러블 슈팅과정(스킵해도 됨)
이번 글에서는 http -> https redirection 을 해보고자 한다.
현재 내 load balancer 리스터 상태이다.
https://www.youtube.com/watch?v=E5TkqBIB4fY
http 프로토콜 Load balancer 80번 포트로 되어있는 것을 삭제한다라고 나와있는데,
나는 이게 없다.
aws는 맨날 ui 바꿔서 혼란을 주는 것 같다.
편하게 만들려는 것은 알겠는데, 그럼 이전 안내 기록은 없애야하는거 아니냐... 계속 공식 유투브에 올라가 있네 ㅂㄷㅂㄷ
그러다가 내가 찾는 영상을 발견했다.
https://www.youtube.com/watch?v=vJYJB2KXeso
Enable https and redirect http to https in aws elastic beanstalk 였다.
즉, http:// 로 접근은 막고 https://로 리다이렉트 시키겠다는 말이다.
따라서 해보자
Elastic Beanstalk > 환경 > 해당하는 환경 > 구성 으로 들어가보자.
여기서 로드밸런서를 편집해줘야한다.
문제 해결방법
방법1)
eb 배포를 처음부터 다시 하는 방법
나는 classic 로드밸런서라고 하고
80번 포트만 있다.
이게 잘못된 거라고 한다.
ㅂㄷㅂㄷ
아니 elb 장난하나... 왜 classic이 자동 선택되게 해놓은거지...?
진짜 어이없네 ㅋㅋㅋㅋ
aplication load balancer 처럼 해야 유투브 처럼 편집창이 뜬다고 한다.
후아.. 다시 만들어야하네....
방법2)
eb는 nginx를 쓰니까 redirect를 직접 설정해주는 방법
ebextension에다가 nginx 설정을 추가하면 되는거 아닌가...?
EB는 프록시 서버로 nginx를 자동적으로 쓰고 있다.
그럼 이걸 이용해서 config 설정을 해주면 되는거 아닐까나~~
방법3)
classic load balancer를 application load balancer로 마이그레이션 시키는 기능도 aws에서 제공해준다.
이걸 쓰실분들은 이걸 써도 된다.(근데 엄청 복잡해보여서 난 포기...)
https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/migrate-classic-load-balancer.html
#eb 재배포 과정(1번 해결방법)
위와 같은 과정을 통해 내가 처음 eb create 할 때 load balancer를 default로 선택해서 classic load balancer가 선택되었다는 것을 알았다.
application load balancer를 선택해야 http -> https redirection 선택 드롭박스가 뜬다
그래서 나는 1번과정을 선택하고 여태까지 eb 배포, 로드밸런서 설정, 도메인 설정 등을 처음부터 다시 하려고 한다.
복습 차원에서 다같이 가보자고~
eb init으로 새로 만들어준다.
Would you like to enable Spot Fleet requests for this environment? (y/N):
-> 이건 오토 스케일링을 추가할거냐 아니냐인데, 실제 서비스를 목적으로 하면 y 를 눌러서 오토 스케일링을 추가하자.
로드밸런서를 확인해보자(ec2-로드밸런싱 선택)
위와 같이 잘못만든건 classic load balancer라고 뜨고 2번을 제대로 선택한 건 application load balancer라고 제대로 떴다.
elastic beanstalk에서도 제대로 Application load balaner라고 뜬다.
- 바꿔야할것들
1. 가비아에서 cname 교체
저기 beanstalk에 보면 URL 부분이 있다. 저걸 복사한다.
가비아에 서브도메인으로 추가를 해줄것이다
기존에 있는것이 있을텐데
도메인 이름은 그대로 두고, url 부분만 바꿔준다.
뒤에 점(.) 찍는거 잊지않기!!!
2. Route53에서 cname 교체
이렇게 하면 도메인 설정은 다 끝난다.
도메인이 제대로 적용되었다면 위와같이 http://설정한 서브도메인 했을 때 페이지가 떠야한다.
이제 로드밸런서 80번 포트포워딩에 action 설정 추가하고
로드밸런서 443 포트 추가해주고
ec2에 443 포트만 열어주면 끝난다.
3. ec2 보안그룹에 443 포트 열어주기
ec2 - Elastic beanstalk ec2 선택 - 보안그룹 선택 - 443 포트 열어주기
보안 그룹을 보면 80 포트와 22 포트만 열려있을 건데, 보안그룹이 같을 것이다.
그 보안 그룹에다가 443 포트를 열어주면 된다.(다른데에다가 주던가 직접 줘도 되는데, 그럼 보안그룹 관리가 빡세져서 한군데에다가 다 관리하는게 ec2 별로 관리하기에 편하다)
4. alb 로드밸런서에 443 포트포워딩 해주기
그럼 위와 같이 443 포트가 생성될 것이다.
잊지말고 적용 버튼을 눌러줘야한다.
이제 ec2 - 로드밸런싱으로 들어가서 80번 포트가 http -> https 가 되도록 redirection을 설정할 것이다.
80번 포트를 선택하고 edit을 누르고
첨에는 Add action이 비활성화되어 있고 기본으로 설정되어 있는 것이 있을텐데, 이것을 지우고(Remove) 클릭
위와 같이 443 포트로 redirect 되는 것만 default actions 로 놔둔다.
그럼 http:// 서브도메인을 해도 -> https:// 로 자동 리다이렉트 된다.
드디어 배포의 한 사이클 맛보기가 끝났다.
이제는 실제 프로덕트를 배포할 건데, github action을 가지고 dev, release 서버를 나눠서 배포하는 것까지 해보고자 한다.
가보자고~~!
'AWS > ElasticBeanstalk' 카테고리의 다른 글
AWS Elastic Beanstalk - (7) (0) | 2023.02.21 |
---|---|
AWS Elastic Beanstalk - (6) (0) | 2023.02.20 |
AWS Elastic Beanstalk - (4) (0) | 2023.02.18 |
AWS Elastic Beanstalk - (3) (0) | 2023.02.16 |
AWS Elastic Beanstalk - (2) (0) | 2023.02.15 |