배포하는 순간이 즐겁고, 기분 좋고, 저절로 미소가 지어지는 경험
→ 개발자가 만든 앱을 세상에 선보일 때 가장 두근거리고, 세상의 뜨거운 반응을 상상할 때 미소가 지어짐
→ → 즉, 배포하는 순간에 ‘배포의 과정’은 개발자의 머리속에 없음
→ → → 그렇다면, 배포의 과정을 아예 없애버리자
배포를 도와주고 불필요한 과정을 없애주는 서비스들은 이미 많음
그렇다면 이들은 어떤 부분을 도와주는거고, 어떤 부분에서 여전히 문제점을 가지고 있을까?
| 범주 | AWS | Azure | GCP |
|---|---|---|---|
| 정적/프론트엔드 호스팅 + CI/CD 일체형 | Amplify HostingGit 연동·브랜치별 자동 배포·PR 미리보기 | Static Web AppsGitHub/DevOps 트리거·프리뷰 환경·Functions 연동 | Firebase Hosting(GCP 제품군)프리뷰 채널·Functions/Run 연결 / 또는 Cloud Storage+Cloud CDN |
| 완전관리 컨테이너 PaaS | App Runner소스/ECR 직연결, 자동 빌드·배포·스케일 | **Container Apps (ACA)**리비전·트래픽 분할(카나리/블루-그린) | Cloud Run리비전·퍼센트 트래픽·자동/제로 스케일 |
| 전통 웹앱 PaaS | Elastic BeanstalkEC2/ALB/RDS 자동화(서비스료 별도 없음, 하위 리소스 과금) | App ServiceDeployment Slots(스왑), 포털 기반 CD | App Engine표준/플렉스 런타임, 자동 롤아웃/롤백 |
| Kubernetes(매니지드 제어면) | EKS | AKS | GKE |
| CI/CD(파이프라인 오케스트레이션) | CodePipeline승인 스텝·다단계 파이프라인 | Azure DevOps Pipelines / GitHub Actions(일반적 조합) | Cloud Build(빌드) + Cloud Deploy(CD) |
| 빌드(Managed Build) | CodeBuild컴퓨트 타입 선택, 리포트/아티팩트 | Pipelines/Hosted Agents(또는 Actions 러너) | Cloud Build트리거·승인 대기·빌드 로그 |
| 배포 전략(카나리/블루-그린/롤백) | CodeDeploy(EC2/ECS/Lambda) / ALB 연동카나리·리니어·자동 롤백 | Container Apps 리비전 트래픽 분할 / App Service Slots 스왑DevOps Approvals & Checks | Cloud Deploy(GKE/Run 대상)Hooks·Approvals·점진 전환 / Cloud Run 트래픽 분할 |
| 아티팩트/이미지 레지스트리 | ECR / CodeArtifact | Azure Container Registry(ACR) / Artifacts | Artifact Registry |
| 관찰가능성(로그/메트릭/APM) | CloudWatch(+ Logs/Alarms) / X-Ray | Azure Monitor / Application Insights | Cloud Monitoring/Logging / Cloud Trace/Profiler |
| 시크릿/설정 관리 | Secrets Manager / SSM Parameter Store / AppConfig(피처 플래그/설정) | Key Vault / App Configuration | Secret Manager / (Firebase Remote Config 유사 목적) |
| 권한·승인(팀 협업 게이트) | IAM + CodePipeline Manual Approval | Entra ID(AAD) + DevOps Approvals & Checks | IAM + Cloud Build/Deploy Approvals |
| 소스 연동(VCS) | GitHub/GitLab/Bitbucket/CodeCommit(Amplify·CodePipeline/CodeConnections) | GitHub/Azure Repos/Bitbucket(Deployment Center·DevOps/Actions) | GitHub/GitLab(Cloud Build 트리거), Cloud Source Repositories |
| IaC(권장 1st/에코시스템) | CloudFormation/CDK (+Terraform) | Bicep/ARM (+Terraform) | Config Connector(KCC)·Blueprints (+Terraform) |
배포하는 순간이 즐겁고, 기분 좋고, 저절로 미소가 지어지는 경험
→ 배포하는 순간을 고통스럽게 만드는 순간은 어떤 순간인가?
→ 배포 단계에서는 에러가 없었는데, 실제로 배포를 했을 때 에러가 발생하는 순간
→ 항상 배포할 때 DB 연결, https 인증서 연결 등 자잘한 에러가 발생하고, 이를 해결하는게 힘들다
→ AWS Amplify를 사용하면 해결가능!
보통 팀 단위로 개발하는 조직은 prod 환경과 dev 환경을 별도로 두고있음
→ dev 환경에서 배포 후 에러가 없으면 prod 환경으로 옮기는데,