Devops
🌐 AWS EC2 + GitHub Actions + Docker 기반 CI/CD 구축기
cloud/devops/opensource 관심 많은 곰
2025. 6. 18. 11:13
반응형
컨테이너 도입을 위한 방법으로는 Docker, Kubernetes 등 다양한 접근이 있습니다. 하지만 이번에는 처음 컨테이너 기반 서비스 배포를 시작하는 단계로,AWS EC2 + Bastion + GitHub Actions + Docker를 활용하여 Private EC2에 안전하게 WordPress를 배포하는 흐름을 구축했습니다.
🧩 [1편] CI/CD 환경 구축 준비 및 인프라 구성
🧱주요 내용
1. 프로젝트 목표
- GitHub Actions → Bastion → Private EC2에 WordPress 자동 배포
- Docker + ECR을 활용한 컨테이너 기반 구성
- 보안상 privaet EC2는 직접 접근 금지, Bastion 경유 하여 접근제어
2. 네트워크 아키텍처
- VPC 및 서브넷 구성
- Public Subnet → EC2: Bastion
- Private Subnet → EC2: WordPress (Docker 기반)
- NAT Gateway 구성 → Private Subnet에서 외부로 Traffic이 전달 될 수 있도록 설정
- Routing Table 설정 → 각 서브넷에 맞게 인터넷 게이트웨이 또는 NAT 지정
- 접속 흐름
- GitHub Actions → Bastion → Web EC2 (SSH ProxyCommand or -J 옵션)
- 참고사항 -> Bastion 서버의 경우 경유 목적으로만 사용 됩니다.
3. Securtiy 구성
| Bastion | 22/tcp from 내 IP | SSH 접속용 |
| Web EC2 | 8080/tcp from Bastion SG | 워드프레스 확인용 |
| NAT Gateway | 아웃바운드 전용 | Docker 패키지 설치 및 ECR 통신용 |
- pem 키를 authorized_keys에 직접 등록 방식 사용
- 권한 설정 필수: chmod 600 으로 키 파일 보호
- GitHub Actions에서 .pem 키는 base64 인코딩 후 GitHub Secrets에 등록
4. Docker & WordPress 환경 구성
- Ec2(private) 내부의 Docker 설치 및 권한 부여

- docker-compose 설치(Private Ec2)

- .env 파일 구성

- docker-compose.yml 파일 구성

기본적으로 setting은 완료 되었으며, 다음 장에 이어서 CI/CD 연결 및 GIthub내부 세팅을 진행할 예정이며, 총 3장 내용의 불량으로 Trouble Shooting 내역까지 공유 예정이다
반응형