배포 방식은 여러가지가 있습니다. 방식마다 장단점이 존재하며 프로젝트의 특정 요구 사항과 개발 환경에 따라 선택가능합니다. 팀이나 조직이 선호하는 도구를 선택하는 것이 일반적입니다.
이 글에서는 배포 방식의 종류와 각 방식의 장단점/방법을 알아보고자 합니다.
공부하는 중이므로 틀린 내용, 의견, 질문 있으시면 댓글 달아주시면 큰 도움이 됩니다 감사합니다!
수동으로 로컬에서 빌드된 JAR 파일을 생성하고 SCP를 사용하여 EC2 서버로 전송한 후, 수동으로 실행하는 방식입니다. 이 방법은 간단하고 빠르게 진행될 수 있습니다.
EC2 서버에서 Git을 사용하여 프로젝트를 클론하고, 프로젝트를 빌드하여 실행하는 방식입니다. 이는 자동화를 위해 Git을 활용하는 방법으로, 초기 설정에는 수동으로 진행되지만, 이후에는 자동화될 수 있습니다.
Jenkins, Travis CI, GitLab CI/CD, AWS CodeDeploy 등과 같은 배포 도구를 사용하여 코드를 EC2 서버로 전송하고 애플리케이션을 배포하는 프로세스를 자동화하는 방식입니다. CI/CD 도구를 사용하여 통합 및 배포를 자동으로 수행할 수 있습니다.
Docker를 사용하여 애플리케이션과 모든 종속성을 컨테이너화하고, Docker 이미지를 빌드하고 EC2 서버에 배포하는 방식입니다. Docker는 환경의 일관성을 유지하고 배포를 쉽게 할 수 있는 강력한 도구입니다.
Ansible, Chef, Puppet 등의 설정 관리 도구를 사용하여 서버 구성과 배포를 자동화하는 방식입니다. 이 도구들은 서버의 상태를 정의하고 변경을 관리하여 일관성을 유지하고 배포 프로세스를 자동화합니다.