[Infra] 배포 전략에 대하여 (feat. 당근마켓)
·
Developer/Infra
Infra0. 들어가며최근 여자친구와 카페를 갔다가 서로의 당근 판매 물품을 구경하던 도중 조금 재밌는 사실을 발견했습니다. 그것은 바로 같은 최신 버전의 당근 마켓 어플에서 동네를 변경하는 탭이 서로 다른 모습을 보이고 있다는 점이었습니다. 최근에 우연히 인프런에서 배포 관련한 무료 강의를 들었어서 그런 지 정말 이 현상이 재밌게 느껴졌습니다. 역시 같은 것을 보더라도 많이 알고 있으면 더 많은 것을 볼 수 있나 봅니다 ㅎㅎㅎ. 그래서 저도 보자마자 "아 이게 카나리 배포를 통해서 A/B 테스트하고 있는 것 같은데 ?"라는 생각을 하게 됐습니다. 다른 사람의 당근 어플을 볼 기회가 없어서 몰랐는데, 정말 우연히 발견하여 뭔가 신기했습니다. 그래서 이번 글에서는 이 경험을 바탕으로 여러 배포 전략에 알..
[Infra] CDN에 대해서 (with. AWS CloudFront)
·
Developer/Infra
Infra0. 들어가며 최근 지인들과 카톡방에서 CDN에 대한 이야기를 나눴습니다. 안건은 "CDN은 사용자 입력을 처리할 수 있는가?"였습니다. 그래도 나름 SSA 자격증도 취득했는데, 해당 질문에 바로 즉답할 수 없었습니다. CDN의 종류에는 Cloudflare, AWS Cloud Front가 있고, 국가 단위로 별도의 서버가 존재하여 지리적 거리에 대한 통신 리소스를 줄여주는 즉, 정적 파일들에 대한 캐싱을 처리해 주는 역할을 해주는 것으로 알고 있는데, 사용자 입력을 처리할 수 있나..?라는 생각이 들었습니다. 정답은 결국 "Edge Function을 활용하여 사용자 입력을 처리할 수 있다"로 귀결되었습니다. CDN과 관련된 질문에 바로 즉답할 수 없는 제 모습이 미워서 다시 정리하려고 글을 ..
[Docker] 가득찬 EC2 서버로 인한 API 응답 오류 해결하기
·
Developer/Infra
Docker0. 들어가며 최근 "KSPO 공공데이터 경진대회"를 위한 프로젝트를 진행하던 중에 로컬 환경과 배포 환경에서의 API 응답이 다른 상황을 경험했습니다. 로컬 Postman으로 API 요청을 보냈을 때에는 응답이 정확하게 나왔는데, 배포된 서버에서의 응답은 이전 버전의 API 응답이 오더라구요. “같은 API를 호출했는데, 왜 로컬 Postman과 배포된 프론트 요청 결과가 서로 다르지…?” 분명히 CI/CD 로그에도 문제가 없고, docker logs 명령어로 확인해도 문제 될 부분도 없고, 로컬 테스트에도 문제가 없었는데, 도대체 왜 응답이 다르지? 어느 부분을 확인해야 할지 감이 잡히지 않았습니다. 그러다가 우연히 EC2 서버 자체 내에서 자동화 배포 스크립트를 실행하다가 발견한 에러 ..
[Nginx] Reverse Proxy 개념 및 흐름 완벽 이해하기
·
Developer/Infra
Nginx0. 들어가며 SSAFY 13기 2번째 프로젝트에서 인프라 담당을 맡아 전반적인 프로젝트 환경 설정 및 Jenkins 기반 CI/CD 파이프라인을 구축했습니다. SSAFY 프로젝트 특성상 하나의 GitLab Repository에서 백엔드와 프론트를 모두 담아야 했고, EC2 서버에서 백엔드 서버와 프론트 서버를 모두 띄워야 했습니다. Jenkins와 Nginx를 EC2 서버 자체 내에 설치를 했고, 배포까지 성공적으로 이어졌습니다. 배포까지 별다른 이슈나 에러 사항은 없었는데, 프론트 화면이 나타나지 않는 현상이 발생했습니다. 개발자 모드에도 아무런 에러도 나타나지 않고, 그저 흰 화면만 나타나는 것을 확인했습니다. 당시에는 생성형 AI의 도움을 받아 프론트 폴더 내에 nginx.conf ..