본문 바로가기

전체 글39

[Docker] Docker&Container 기본 개념 도커로 간단하게 컨테이너를 실행시키고 프로젝트를 빌드해본 적은 있지만 도커가 무엇이고 컨테이너란 무엇인지 그리고 도커를 왜 사용해야 하는지에 대해서 제대로 공부해본 적은 없는 것 같다. 마침 Udemy에서 할인 이벤트를 진행하고 있길래 docker&kubernetes 강의를 결재했다. 언젠간 공부해야 하는데 책 보고 하긴 귀찮고 마침 강의도 싸니까 강의 보면서 삽고수가 떠맥여주는 강의 내용을 간단하게 정리해보고자 한다. 도커가 무엇인지에 대한 질문을 던지기 전에 컨테이너란 무엇인지를 짚고 넘어가보자. 컨테이너란? 표준화된 소프트웨어 유닛. 기본적으로 코드 패키지라고 볼 수 있으며 해당 코드를 실행하는데 필요한 종속성과 도구가 포함되어있어야 한다. 예를 들어서 Node.js 애플리케이션을 구축하는 경우를.. 2022. 6. 2.
EC2 환경에서 docker로 무중단 배포 과정 중 ScriptTimedOut 오류(Docker 권한 ) EC2 환경에서 nginx, docker로 springboot 프로젝트를 무중단 배포하는 과정에서 무수히 많은 삽질을 경험했다. 먼저 CI/CD는 Travis CI와 AWS S3, CodeDeploy를 사용했다. 배포 스크립트 파일은 해당 레파지토리에서 확인이 가능하다. ApplicationStart 이벤트가 발생할 때 다음과 같이 ScriptTimedOut 오류가 발생하였다. CodeDeploy 로그를 보아하니... dockerfile이 빌드될 때 Already exists 메시지를 호출하는 것을 볼 수 있다. dockerfile로 컨테이너를 빌드하는 과정에서 이미 동일한 이름의 docker 컨테이너가 존재하기 때문에 생성되지 못하고 결국 ScriptTimedOut 오류가 발생한 것으로 추측된다. 알고.. 2022. 4. 15.
Travis CI,CodeDeploy,S3,Nginx로 EC2에 무중단 배포하기(3) - Nginx로 무중단 배포 하기 https://ssyoni.tistory.com/25 Travis CI,CodeDeploy,S3,Nginx로 EC2에 무중단 배포하기(1) - Travis CI,S3 연동 스프링부트와 JPA를 사용한 토이 프로젝트를 진행하면서 CI/CD 구축 과정을 정리한 글입니다. Travis CI를 활용해 프로젝트를 빌드하고, AWS S3와 AWS CodeDeploy, Nginx를 통해 EC2 서버에 무중단으로 배포하 ssyoni.tistory.com https://ssyoni.tistory.com/26 Travis CI,CodeDeploy,S3,Nginx로 EC2에 무중단 배포하기(2) - Travis CI,S3,CodeDeploy 연동 CodeDeploy를 생성하고 S3로부터 받은 파일을 EC2 서버로 배포하는 .. 2022. 4. 11.
Travis CI,CodeDeploy,S3,Nginx로 EC2에 무중단 배포하기(2) - Travis CI,S3,CodeDeploy 연동 CodeDeploy를 생성하고 S3로부터 받은 파일을 EC2 서버로 배포하는 과정을 정리하였습니다. 설명하기에 앞서 요약을 해보자면 EC2와 CodeDeploy 서비스가 서로 소통(?)할 수 있게 각각 서비스에 대한 권한을 가진 '역할'을 하나씩 생성해서 부여합니다. 그다음 CodeDeploy 애플리케이션을 생성하고 프로젝트에 appspec.yml 설정 파일로 S3에서 받은 파일을 EC2로 배포하는 설정을 추가해주면 됩니다. EC2에 IAM역할 생성 CodeDeploy는 S3 버킷에 있는 파일을 EC2 서버에 배포하는 역할을 합니다. 이전 포스팅에서 IAM 사용자 추가를 통해 외부 서비스인 Travis CI가 CodeDeploy에 배포 요청을 할 수 있는 접근 권한을 생성하였습니다. 이번에는 CodeDe.. 2022. 4. 6.
Travis CI,CodeDeploy,S3,Nginx로 EC2에 무중단 배포하기(1) - Travis CI,S3 연동 스프링부트와 JPA를 사용한 토이 프로젝트를 진행하면서 CI/CD 구축 과정을 정리한 글입니다. Travis CI를 활용해 프로젝트를 빌드하고, AWS S3와 AWS CodeDeploy, Nginx를 통해 EC2 서버에 무중단으로 배포하는 환경을 구축하였습니다. 이번 포스팅에서는 Travis CI를 통해 SpringBoot 프로젝트를 자동 빌드하고 AWS S3 버킷으로 빌드한 파일을 전송하는 과정까지를 정리하였습니다. Travis CI 와 깃허브 연동 프로젝트를 테스트하고 빌드하는 과정을 수동으로 하게 되면, 먼저 깃허브에 PUSH를 하고 배포하고자 하는 환경(EC2)에서 소스를 PULL 받아 Clean&Build를 하여 Jar파일을 생성하여 배포합니다. 이러한 과정을 대신 해주는 툴이 바로 Travis.. 2022. 4. 5.
[AWS] CloudWatch를 활용한 docker 이미지 로그 관리하기 ec2 안에서 도커 컨테이너를 실행시키면 컨테이너 내부에 로그가 쌓이게 됩니다. 하지만 컨테이너가 중지되면 로그도 날아가기 때문에 이를 위해서 AWS에서 제공하는 cloudWatch를 활용하여 로그를 관리할 수 있습니다. Docker Container를 실행시키고 CloudWatch를 통한 로그 백업을 간단하게 실습해보는 스터디 내용을 정리해 보았습니다. 1. EC2에서 CloudWatch 서비스를 액세스할 권한 부여 1) CloudWatchFullAccess 역할 생성 CloudWatch를 사용하기 위해서는 가장 먼저 EC2에서 CloudWatch에 서비스를 액세스 할 권한을 부여해주어야 합니다. 그러기 위해서는 먼저 IAM에서 CloudWatchFullAccess라는 역할을 생성해주어야 합니다. Cl.. 2022. 3. 6.
반응형