Skip to content
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

[BE-INFRA] 무중단 배포 be/release로 브랜치 변경 #424

Merged
merged 26 commits into from
Oct 25, 2024

Conversation

dwax1324
Copy link

@dwax1324 dwax1324 commented Oct 24, 2024

🍄 PR 확인 사항

PR이 다음 요구 사항을 충족하는지 확인하세요. :

  • API 명세서가 업데이트 혹은 작성이 되어 있나요?

현재 작업은 어떤 이슈를 해결한 것인지 설명해주세요.

Issue Number: #398

  • 기존 깃허브 Action 스크립트에서 Docker가 정상적으로 올라갔다를 보장할 수 있는 확인문을 작성한다.
  • 기존에 존재하던 두개의 스크립트의 트리거를 지운다.
  • 두개의 스크립트를 공식 문서에 따라
    성공 여부에 의존적이도록 코드를 짠다. + 아까 삭제했던 트리거를 이 곳에 추가한다.

기존 코드에서 변경된 점이 있다면 설명해주세요. (추가 X)

무중단 배포 테스트까지 완료하여 실제 배포 브랜치로 변경을 요청합니다.
(CD실행 후 끝나기까지 0.01초 간격으로 get요청을 보내도 성공적으로 결과 반환)

dwax1324 and others added 26 commits October 23, 2024 16:56
* chore: 서브모듈 커밋 시점 변경

* docs: 액츄에이터 의존성 추가

* infra: 무중단 배포를 위한 cd 스크립트 변경

* infra: 테스트와 빌드 하나로 통합
* chore: 서브모듈 커밋 시점 변경

* docs: 액츄에이터 의존성 추가

* infra: 무중단 배포를 위한 cd 스크립트 변경

* infra: 테스트와 빌드 하나로 통합

* infra: 스크립트 수정
* chore: 서브모듈 커밋 시점 변경

* docs: 액츄에이터 의존성 추가

* infra: 무중단 배포를 위한 cd 스크립트 변경

* infra: 테스트와 빌드 하나로 통합

* infra: 스크립트 수정

* infra: 스크립트 수정
* chore: 서브모듈 커밋 시점 변경

* docs: 액츄에이터 의존성 추가

* infra: 무중단 배포를 위한 cd 스크립트 변경

* infra: 테스트와 빌드 하나로 통합

* infra: 스크립트 수정

* infra: 스크립트 수정

* infra: 스크립트 수정
* chore: 서브모듈 커밋 시점 변경

* docs: 액츄에이터 의존성 추가

* infra: 무중단 배포를 위한 cd 스크립트 변경

* infra: 테스트와 빌드 하나로 통합

* infra: 스크립트 수정

* infra: 스크립트 수정

* infra: 스크립트 수정

* infra: 스크립트 수정
* chore: 서브모듈 커밋 시점 변경

* docs: 액츄에이터 의존성 추가

* infra: 무중단 배포를 위한 cd 스크립트 변경

* infra: 테스트와 빌드 하나로 통합

* infra: 스크립트 수정

* infra: 스크립트 수정

* infra: 스크립트 수정

* infra: 스크립트 수정

* infra: 스크립트 수정

* infra: 스크립트 수정
* chore: 서브모듈 커밋 시점 변경

* docs: 액츄에이터 의존성 추가

* infra: 무중단 배포를 위한 cd 스크립트 변경

* infra: 테스트와 빌드 하나로 통합

* infra: 스크립트 수정

* infra: 스크립트 수정

* infra: 스크립트 수정

* infra: 스크립트 수정

* infra: 스크립트 수정

* infra: 스크립트 수정

* infra: 스크립트 수정
* chore: 서브모듈 커밋 시점 변경

* docs: 액츄에이터 의존성 추가

* infra: 무중단 배포를 위한 cd 스크립트 변경

* infra: 테스트와 빌드 하나로 통합

* infra: 스크립트 수정

* infra: 스크립트 수정

* infra: 스크립트 수정

* infra: 스크립트 수정

* infra: 스크립트 수정

* infra: 스크립트 수정

* infra: 스크립트 수정

* infra: 서비스 상태 체크 및 종료 로직 추가
* chore: 서브모듈 커밋 시점 변경

* docs: 액츄에이터 의존성 추가

* infra: 무중단 배포를 위한 cd 스크립트 변경

* infra: 테스트와 빌드 하나로 통합

* infra: 스크립트 수정

* infra: 스크립트 수정

* infra: 스크립트 수정

* infra: 스크립트 수정

* infra: 스크립트 수정

* infra: 스크립트 수정

* infra: 스크립트 수정

* infra: 서비스 상태 체크 및 종료 로직 추가

* infra: 에러를 반환하는 코드 수정
@dwax1324 dwax1324 requested a review from jongmee October 24, 2024 11:01
@dwax1324 dwax1324 changed the title 무중단 배포 be/release로 브랜치 변경 [BE-INFRA] 무중단 배포 be/release로 브랜치 변경 Oct 24, 2024
@dwax1324
Copy link
Author

/noti
zero down time 성공~

@jinchiim
Copy link
Contributor

진짜 고생많앗다~~~!!!!!!

Copy link
Contributor

@jongmee jongmee left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다 !! 궁금한 점 하나만 리뷰에 질문 남겼어요!

run: |
sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -I PREROUTING 1 -p tcp --dport 80 -j DNAT --to-destination ${{ secrets.BE_PROD_B_PRIVATE_IP }}:80
sudo iptables -t nat -I POSTROUTING 1 -p tcp --dport 80 -j SNAT --to-source ${{ secrets.BE_PROD_A_PRIVATE_IP }}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SNAT를 쓴 이유가 궁금해요! DNAT는 서브넷 B WAS로 요청을 전달하는 것 같고 👀

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이거 지금 봤네요!

응답이 A EC2로 돌아오게 하기 위해서 SNAT을 사용했습니다!
SNAT 을 사용하지 않으면 패킷이 ELB 로부터 온 것으로 착각하고 LoadBalancer로 향하고, A 인스턴스는 패킷 응답을 기다리며 TimeOut이 발생하게 됩니다!

image

@jongmee jongmee merged commit bb9f88e into be/release Oct 25, 2024
1 check passed
@jongmee jongmee deleted the be/release-test branch October 25, 2024 01:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants