이번에 project를 하는데 수동으로 Winscp를 통해 Application을 배포하다보니 번거로움이 많이 느껴져 GitHub Action Flow를 이용해서 CI/CD 구축하였는데, 전체적인 과정을 이해하기 위해 작성
소스 코드를 GitHub에 push(trigger 임의로 설정)시 설정한 workflow가 실행
workflow에서 Gradle build를 실행하여 Application 빌드하고 S3 버킷에 업로드
CodeDeploy를 통해 S3 버킷에서 EC2 인스턴스로 배포 후 Application 실행
=> Github에서 제공하는 CI/CD 툴로 Github 레포지토리 안에서 실행되며, Github이 제공하는 클라우드 환경에서 코드를 실행 가능하다.
이를 통해 사용자는 서버나 인프라를 구성할 필요 없이, 더욱 간편하게 CI/CD 파이프라인을 구축할 수 있다.
=> Amazon Web Services (AWS)에서 제공하는 객체 스토리지 서비스로 S3는 데이터를 저장하고 검색하는 데 사용되며, 데이터 저장에 필요한 인프라를 운영 및 관리할 필요가 없음
즉, 데이터 저장소라고 보면 되는데 Github Action으로 바로 EC2에 서버를 배포할 수 없어 S3를 거쳐서 Application을 저장 한 후 EC2에 배포 해야 한다.
그럼 GitHub Action에서 바로 EC2에 배포하지 않고 S3를 거쳐 배포하는 이유는 무엇일까?
=> 보안상의 문제도 있고, 배포 중에 문제가 생기면 Application 자체에 문제가 발생할 수 있기 때문이다. 중간 과정을 거치면서 보안 및 안정성을 확보하기 위함이다!
=> AWS CodeDeploy는 Amazon Web Services (AWS)에서 제공하는 서비스 중 하나로, 애플리케이션의 배포 자동화를 지원하는 배포 서비스
이름 그대로 EC2, Lambda, ECS등 다양한 컴퓨팅 서비스에 대한 배포를 지원하는 것이라고 보면 된다. S3에 있는 Application을 EC2로 배포하고 실행하게 한다