프로젝트 - 1 인프라 구축
개요
백엔드 개발자 3명과 데브옵스 엔지니어 1명(아직 교육생 신분..) 총 4명이서 간단한 커뮤니티 서비스를 구축하기로 했습니다. 저는 데브옵스 엔지니어가 되고자 하는 교육생으로서 본격적인 프로젝트가 시작되기 전에 어떤 단계를 거쳐야 할지 미리 준비하기로 했습니다. 프로젝트를 진행하며 개발 속도에 따라 아래 기술한 스택들에 변화가 있을 수 있습니다.
기술 스택
분류 | 기술 스택 |
---|---|
컨테이너 및 가상화 | Docker, Docker Compose |
CI/CD 및 배포 자동화 | GitHub Actions |
클라우드 인프라 | AWS (EC2, ECS, RDS, ECR) |
IaC 및 자동화 | Terraform |
절차
✅ 1단계 - 환경 구성 및 준비
① Git 저장소 설정
- GitHub 저장소 생성
- 브랜치 관리 전략 수립
- 개발자별 접근권한 설정 및 관리
② 개발환경(Docker) 구성
- Dockerfile 작성 (백엔드 애플리케이션)
- Docker Compose 로 PostgreSQL 과 Spring Boot 앱을 로컬 환경에서 동시 구성 가능하도록 환경 설정
- 로컬에서 앱 정상 구동 확인
✅ 2단계 - 클라우드 인프라 구축
① AWS 리소스 프로비저닝
- EC2 또는 ECS 선택 및 기본 환경 세팅
- EC2: 가상 서버 생성 후 OS 설정 (Amazon Linux 또는 Ubuntu)
- ECS: Docker 컨테이너 관리 클러스터 설정 및 Task 정의 (프리티어 적용되지 않는 서비스로 추후 고려)
- RDS 인스턴스 생성 (PostgreSQL)
- S3 버킷 생성 및 이미지 관리 정책 설정
② VPC 네트워크 설정
- AWS VPC 네트워크 구성 (Public, Private 서브넷)
- 보안 그룹 (Security Group) 설정 및 방화벽 정책 수립
③ 도메인, SSL 설정 (서비스화 결정됐을 때 고려사항)
- Route53 또는 외부 DNS 서비스로 도메인 관리
- SSL 인증서 발급 (AWS ACM 무료 SSL)
✅ 3단계 - CI/CD 구축
① CI/CD 도구 결정 및 설정
- GitHub Actions: GitHub 저장소 내 workflow 구성 (yml 파일 작성)
② 배포 파이프라인 정의
- 배포 전략 수립 (블루/그린, 롤링, 카나리 배포 등)
- 배포 과정 자동화 스크립트 작성 (Docker 빌드 -> ECR에 이미지 푸시 -> 배포 환경 적용)
③ 빌드, 배포 테스트
- 정상적인 빌드 및 자동배포 테스트 실시
- Git Commit/Push 로 자동화된 배포 환경 구축
✅ 4단계 - IaC 인프라 자동화
- Terraform 코드 작성
- AWS 리소스 자동화 관리 코드 작성
- Terraform 초기화, 검증 및 배포
✅ 5단계 - 모니터링 및 로깅 구축
- AWS CloudWatch로 기본 인프라 모니터링 구축
- Prometheus, Grafana 등을 이용하여 상세 모니터링 및 대시보드 구축 (비용 모니터링 필수)
- 시스템 로그 관리 및 알람 시스템 구축 (CloudWatch, ELK 등)
✅ 6단계 - 보안 점검 및 최적화
- IAM 사용자 및 역할(role) 세부 권한 점검
- 데이터베이스 접근 권한 검토
- API 보안 검토 및 SSL/TLS 적용 상태 확인
배포 파이프라인 전체 흐름
개발자가 Git push -> GitHub 저장소 -> CI(GitHub Actions) 자동 트리거 -> 테스트 & 빌드 & Docker 이미지 생성 -> Docker 이미지 Amazon ECR에 push -> EC2(ECS)로 자동 배포
댓글남기기