🤔 현재 무슨 상황일까?
Github Actions를 사용해 CI/CD를 구축하다, 가상서버에서 배포파일을 실행해야하는 상황이다.
(1) 가상 서버에 ssh로 접속하자
(2) AWS CodeDeploy, S3, EC2를 활용하자
📖 두 개의 장단점은 어떻게 될까?
💡 참고
ChapGPT를 활용해 얻은 내용입니다.
Github Actions을 사용한 Oracle Cloud (EC2) SSH 및 커맨드 실행
✔️ 장점
- 더 단순한 시나리오로 시작하여, 프로젝트에 필요한 커스텀 로직을 빠르게 구축 가능하다.
- 외부 서버에 대한 SSH 및 커맨드 실행은 간단하므로, 초기 설정이 비교적 간단하다.
✔️ 단점
- 서비스 간의 연동 및 배포 자동화를 위해 추가 작업이 필요하다. (수동 작업)
- 프로젝트가 성장하면 더 복잡한 배포 구조를 지원하기 어려울 수 있다.
Github Actions을 사용한 S3, CodeDeploy, EC2 배포
✔️ 장점
- AWS 서비스 간의 통합 및 자동화가 필요한 경우 적합하다.
- CodeDeploy를 사용하여 배포 단계를 관리하고, EC2 인스턴스에 대한 배포를 간편하게 처리할 수 있다.
✔️ 단점
- AWS 서비스에 대한 깊은 이해와 설정이 필요하다.
- 복잡한 설정 및 IAM 역할 관리가 필요할 수 있다.
🤖 두 개는 어떨 때 사용되는 걸까?
- 프로젝트의 규모와 복잡도 : 프로젝트가 복잡한 인프라와 다단계 배포를 필요로 하는지, 아니면 단순한 배포가 가능한지 고려해야 한다.
- 확장성 및 유지보수성 : 프로젝트가 성장할 경우 어떤 시나리오가 더 쉽게 확장 가능한지를 고려해야 한다.
복잡한 시나리오에서는 AWS CodeDeploy를 사용하면 될 것 같고, 간단하다면 SSH 및 커맨드 실행을 하면 될 것 같다.
개인적으로는 SSH 및 커맨드 실행은 모두 수동으로 배포하는 작업을 그대로 자동화한 것이라서 좋지 않다고 생각한다.
그래서, 나는 AWS에서 제공하는 CodeDeploy를 활용해 토이프로젝트를 완성할 것이다.