CI/CD 파이프라인 구축 경험
GitHub Actions로 메인 브랜치에 병합되면 자동으로 Docker 이미지를 빌드해 ECR에 올리고, ECS 서비스를 갱신하는 파이프라인을 구성했습니다. 이전에는 수동으로 이미지를 빌드해 배포하다 보니 배포마다 20분 이상 걸리고 실수도 잦았는데, 자동화 이후 배포 시간이 5분 이내로 줄고 사람이 개입할 여지가 줄어 안정성도 함께 높아졌습니다.
면접관이 이 한 문장으로 확인하려는 것들. 각 갈래를 알면 답의 뼈대가 잡혀요.
GitHub Actions로 메인 브랜치에 병합되면 자동으로 Docker 이미지를 빌드해 ECR에 올리고, ECS 서비스를 갱신하는 파이프라인을 구성했습니다. 이전에는 수동으로 이미지를 빌드해 배포하다 보니 배포마다 20분 이상 걸리고 실수도 잦았는데, 자동화 이후 배포 시간이 5분 이내로 줄고 사람이 개입할 여지가 줄어 안정성도 함께 높아졌습니다.
개발, 스테이징, 운영 환경을 별도의 AWS 계정으로 분리해 운영했습니다. 같은 계정 안에서 태그로만 구분하던 초기 방식은 실수로 운영 리소스를 건드릴 위험이 있었는데, 계정을 분리한 뒤로는 IAM 권한 자체가 달라 애초에 접근이 차단됩니다. 초기 설정에 시간이 더 들었지만 사고 가능성을 구조적으로 줄인다는 점에서 가치가 있다고 판단했습니다.
신규 API 서비스를 설계할 때 트래픽이 낮은 초기엔 Cloud Run을, 트래픽이 늘면 GKE로 전환할 수 있도록 컨테이너 기반으로 통일해 설계했습니다. 실제로 서비스 오픈 3개월 뒤 요청량이 늘면서 Cloud Run의 동시 요청 제한에 걸리기 시작했고, 미리 컨테이너화해둔 덕분에 큰 코드 변경 없이 GKE로 옮길 수 있었습니다.
같은 실수가 반복돼요. 이것만 피해도 절반은 갑니다.
진짜 면접은 두 번째 질문부터예요. 이 답 뒤에 따라올 법한 것들.