-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[HOTFIX] 서버 이전을 하며 workflow 및 터널링 방식 변경 #41
base: dev
Are you sure you want to change the base?
Conversation
피눈물이 나지 않도록 DB 이전해 주셔서 감사합니다... 프리티어로 변경하느라 고생 많으셨습니다. 대 현 지 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
대이동 작업만으로 힘드셨을텐데 과정 하나하나 기록해주셔서 흐름 파악하기 수월했습니당 핑 확인까지~ 꼼꼼한 현지님 너무 고생많으셨어요 <3
if [[ ! $branch_name =~ ^(feat/[0-9]+|bug/[0-9]+|refactor/[0-9]+|hotfix_[0-9]{4}|chore_[0-9]{4}|gh-pages)$ ]]; then | ||
echo "Error: Branch name must follow the pattern 'feat/[number]', 'bug/[number]', 'hotfix_mmdd', 'chore_mmdd', or 'gh-pages'." | ||
if [[ ! $branch_name =~ ^(feat/[0-9]+|bug/[0-9]+|refactor/[0-9]+|hotfix_[0-9]{4}|hotfix_[0-9]{6}|chore_[0-9]{4}|chore_[0-9]{6}|gh-pages)$ ]]; then | ||
echo "Error: Branch name must follow the pattern 'feat/[number]', 'bug/[number]', 'hotfix_mmdd', 'hotfix_yymmdd', 'chore_mmdd', 'chore_yymmdd' or 'gh-pages'." |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
새해를 맞이해 브랜치명도 수정해주시다니,,,역시 대현지님
🔗 Linked Issue (#40)
🙋 Summary (요약)
😎 Description (변경사항)
서버 이전
네부캠에서 지원해준 크레딧을 거의 다 써서 aws 프리티어 사용하여 aws로 서버 이전하였습니다.
이전처럼 서버 4대를 돌리면 유지하기 어려워서 main용 서버만 돌리고 있습니다.
서버 구축 방법은 여기에 자세히 적어두었습니다. (깨알 블로그 홍보)
DB 이전도 마무리하고, https 도메인 ip를 이전한 서버 ip로 바꾸고 ssl 인증서 새로 발급 받고 배포하였습니다.
workflow 실행해서 cicd 동작도 문제 없이 되는 것 확인했습니다.
DB 이전
DB 새로 파면 유진이와 영재 눈에서 피눈물 날 걸 알기 때문에 DB도 백업해서 이전한 서버로 옮기고 복원했습니당
DB 이전에 대한 자세한 설명은 여기에서..
ssh 연결 인증 방식 변경으로 인해 workflow 및 backend db connection 코드 수정
NCP랑 AWS 서버 인스턴스의 큰 차이점을 아십니까? 연결 방식에 대한 허용 범위가 다릅니다..
NCP 사용할 때는 그동안 NCP 서버 콘솔에서 pem 파일 업로드해서 root 유저 password 받아서 그걸로 그냥 ssh 연결 시도하고, 패스워드 입력하고, 연결 가능했는데..! AWS는 비밀번호가 아니라 반드시 key이용만 가능합니다.
참고로 pem 파일로 ssh key 연결방식 사용하면 cicd 연결이나, backend db 연결할 때 터널링하는 방식을 다 수정해야해서..
귀차니즘 이슈로 ㅎㅎec2 서버에서 비밀번호 설정하고 연결해보려고 했으나 대차게 실패했습니다. (그건 트러블슈팅에서..)그래서 workflow에서는 ssh 연결할 시 key 사용하게 하였고, 시크릿 키 설정해두었습니다.
db 커넥션 부분 코드도 ssh 터널링할 때 이렇게 privateKey로 옵션이 들어가게 수정해주었습니다.
개별적으로 수정해줘야하는 부분에 대해선 팀톡방에 별도로 설명드릴테니 수정해주시면 감사하겠습니다.
+) 추가 사항
추가로 dev 브랜치에 대한 workflow는 build 체크만 하도록 변경하였습니다.
workflow 파일에도 주석을 달아두었지만, 만약 추가로 테스트서버를 열어서 확인해봐야 한다면 저한테 말해주세요..!
🔥 Trouble Shooting (해결된 문제 및 해결 과정)
EC2 인스턴스는 기본적으로 패스워드 연결 방식을 막고 있다.
새로 만든 서버에 ssh로 연결할 때, 기존에 쓰던 서버처럼 패스워드로 연결하고 싶어 키 설정하는 방식을 시도해보았으나 실패했습니다.
해당 블로그에 적힌 방식처럼 시도해보았으나, 계속
Permission denied (publickey). lost connection
이런 오류가 떴습니다.찾아보니 ec2 인스턴스에는
ec2-instance-connect
이 패키지가 기본적으로 깔려있는데, 이게 pem(private key) 방식 외의 시도는 막는 것 같았습니다.저 패키지를 삭제하고 시도해보기엔... 큰 문제가 생길 것 같아 그냥 pem 방식에 맞춰 다른 코드들도 수정해주었습니다.
🤔 Open Problem (미해결된 문제 혹은 고민사항)