codestates / codestates/TMT-server

[Dev-Log] 2021.07.17 - 2021.07.23 이유림

Open
#84 0 comments 0 reactions 0 assignees View on GitHub
bug question
Dominant language
TypeScript
Stars
0
Forks
2
PR merge metrics
No merged PRs in 30d

Description

### 한 주간 한 일
- AWS에서 HTTP로의 배포는 손쉽게 하였으나, HTTPS로 전환시키고 도메인 붙이는 데 일주일 걸렸다..에러가 끝이 없었어 진짜.. 미쳤다..우리 팀원 모두에게 너무 힘든 시간이었어ㅠ


### 한 주간의 힘든 점
## **에러! => 아래는 헬프데스크에 도움을 요청했던 기록**

**_도메인은 AWS에서 구매한 도메인입니다._**

[https://github.com/codestates/help-desk/issues/3281](url)

저희가 타입스크립트를 사용해서 일반적인 방법으로는 pm2로는 실행이 되지 않아 ecosystem.config.js 파일을 생성하고 설정해주어 pm2를 실행할 수 있게 되었습니다. 처음에 아래와 같은 에러가 떠, 임시방편으로 해당 코드를 주석처리 해주었습니다.

![스크린샷 2021-07-21 오후 10 46 57](https://user-images.githubusercontent.com/70374766/126499411-90b05283-844d-40a7-836f-a8d76c5d50cd.png)

주석처리를 해주니 일단 pm2로 서버 실행이 가능해졌습니다.

![스크린샷 2021-07-21 오후 10 48 47](https://user-images.githubusercontent.com/70374766/126499661-408288fc-ef3c-41e4-9f80-f7b46cee5cc4.png)

위에서 말씀해주신 것처럼 authbind로 80번 포트와 443 포트 모두 제어가능하도록 설정도해주었구요.

ec2를 만들고 일반 80번 포트로 확인 시 서버는 잘 떴습니다!! => 로드밸런서로 연결 후 Route53으로 연결 후에는 502에러가 떴다 안떴다 합니다.

EC2, 로드밸런서, route53 모두 다 삭제 후 새로 만들었음에도 여전히 502 에러가 번갈아가면 뜨고, 로드밸런서의 DNS를 확인했을 때 또한 마찬가지입니다.

### 아래는 ### **로드밸런서의 DNS** 입니다.

![스크린샷 2021-07-21 오후 10 51 45](https://user-images.githubusercontent.com/70374766/126500063-d7f4301c-917b-4c56-8950-ff24062de23d.png)

### 아래는 ### **대상그룹**입니다.

![스크린샷 2021-07-21 오후 10 52 37](https://user-images.githubusercontent.com/70374766/126500179-34c71159-99a2-4d9f-a3e8-6d7223c2378c.png)

### **로드밸런서의 리스너**입니다. (로드밸런서 리스너에서 80번 포트의 규칙을 대상그룹으로 지정해주어도 마찬가지로 에러가 떴습니다.)

![스크린샷 2021-07-21 오후 10 53 43](https://user-images.githubusercontent.com/70374766/126500345-8aacedd5-f77a-4fbe-bb4e-e1ad2464a94b.png)

### **리스너에서 443포트의 SSL 인증서 보기/ 편집을 클릭하니 아래와 같은 문구가 떴습니다. 혹시 이게 문제인걸까요?**

![스크린샷 2021-07-21 오후 10 59 28](https://user-images.githubusercontent.com/70374766/126501331-7c557b29-00dd-4c77-89ac-4f0b74a70286.png)

### 아래는 ### **EC2 보안그룹**입니다.

![스크린샷 2021-07-21 오후 10 55 47](https://user-images.githubusercontent.com/70374766/126500688-cc0c8c1b-a200-4afb-be19-5b97091ec1a7.png)

![스크린샷 2021-07-21 오후 10 57 40](https://user-images.githubusercontent.com/70374766/126501029-28171adc-b672-4b71-aaf0-9d73b9ee74d6.png)

### **혹시 몰라 전부 올려봅니다!

아래는 tsconfig.json 입니다**

![스크린샷 2021-07-21 오후 11 12 03](https://user-images.githubusercontent.com/70374766/126503305-13849114-6d3e-4373-bf90-07404f3f8366.png)

### **아래는 package.json 입니다**

## ![스크린샷 2021-07-21 오후 11 12 47](https://user-images.githubusercontent.com/70374766/126503377-54208ec4-a24a-4bfe-b5c2-dd49c6061c30.png)

**- 에러 요약**

1. 서버용 도메인 접속 시 80번 포트는 정상작동 되고, 443 포트는 작동이 되지 않아서 새로고침 시마다 정상적인 페이지와 502 Bad Gateway 에러가 번갈아가며 떴다.


2. ELB 상태도 unhealthy

- **해결**

- 문제 해결을 위해 수많은 블로그와 aws 공식문서, StackOverFlow를 전전했으며, 정말 많은 시도를 했었다. 어떤 날은 인스턴스와 로드밸런서, Route53까지 다 삭제하고 새로 만들었고, 또 어떤 날은 바로 전날까지만 해도 잘되던 인증서 발급이 안되서 몇시간을 고생하다 결국 포기한 적도 있었다.. 정말 너무너무 힘든 시간이었다. 결국 우리는 에러를 해결하고 배포를 성공적으로 하였으나 아직 해소되지 않는 의문점이 있다.

- 간헐적 502 Bad Gateway 에러를 해결하는데 큰 도움을 준 참고영상!
=> https://www.youtube.com/watch?v=Cjq4Cxoauvc&t=670s

- 우리는 기존과 다른 방식으로 EC2의 보안그룹에서는 HTTP만 설정해주고, 로드밸런서 생성 시 기존의 보안그룹을 사용한 것이 아닌, 새로운 보안그룹을 생성하고 그 곳에 HTTP와 HTTPS를 추가해주었다. 로드밸런서 생성작업을 끝낸 후에는 다시 EC2로 넘어가 "작업" 버튼 내에 보안그룹 변경을 선택한 후 아까 생성한 로드밸런서용 보안그룹을 추가해주었다. 이렇게 하니 502 에러가 말끔히 사라지고, 서버도 잘 작동하였다!

- 그.러.나, 보안그룹을 따로 적용해준 것만으로 문제가 해결됐다는 점이 잘 이해가 되질 않았다. 에러가 떴었던 기존버전과의 차이점은 2개였다.

1. 보안그룹을 따로 생성해 준 점 (EC2 보안그룹에는 아예 HTTPS를 적용시키지 않은 점)
2. 기존에는 대상그룹에 80번 포트와 443 포트 두가지 다 존재 (둘 다 unhealthy 상태가 떴었음), 현재 버전은 80번 포트 한개만 존재

- 첫번째 시도:
=> 기존과 같이 EC2 보안그룹에 HTTPS도 추가한 후 로드밸런서용 보안그룹을 적용해제하여 하나의 보안그룹만 사용함으로 EC2와 로드밸런서가 작동이 되는지 여부를 확인하고자 했다. (또 다시 에러가 뜬다면 보안그룹을 분리시키지 않은 것이 502에러의 원인이므로!)
=> 작동이 잘 되었다. (보안그룹 분리가 해결책이 아니었다는 얘기다.)

- 두번째 시도는 대상그룹에 기존과 같이 443 포트를 추가하는 것이었다. (여기서 작동이 안된다면 대상그룹 문제였으니까..근데 대상그룹이 문제는 아닌 것 같은데..) 이 시도는 아직 하지 못했다.. 대상그룹을 추가하려면 로드밸런서의 대상그룹 설정을 변경해야 하는데, 로드밸런서 생성 후엔 설정 변경을 할 수가 없는 것 같다. ( = 로드밸런서를 새로 생성하여 적용해야 함)

### 남은 할 일
- 대상그룹도 테스트해보기 (에러 원인 찾기 및 근본적인 해결책 찾기)
- 부분 수정 (구글 로그인 시, userData 테이블 생성)
- 추가 기능 구현할 예정 (카카오 로그인 + a)
- 에러 핸들링
- 코드 리팩토링

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.