본문 바로가기

Dev/AWS9

ECS(Elastic Container Service) 기본 개념 최근에 모듈화 된 애플리케이션들을 Docker로 컨테이너화 하여 ECS를 통해 배포 작업을 맡아서 해보았는데 배포하기까지 정말 많은 삽질을 하였다. 어찌어찌 결국 첫 배포 성공 기념으로 ECS 기본 개념을 간략하게 정리해보고자 한다. ECS란? AWS에서 제공하는 컨테이너 관리 서비스. 컨테이너화 된 애플리케이션의 배포 및 관리를 도와주는 완전 관리형 컨테이너 오케스트레이션 서비스이다. EC2, Fargate 유형중 하나를 선택할 수 있다. 컨테이너 오케스트레이션 서비스는 ECS외에도 Docker Swarm, k8s, Nomad 등 다양한 오케스트레이션들이 존재한다. 그중 ECS서비스는 클러스터를 관리를 위한 추가적인 별도의 인스턴스 구성이 필요 없고, 클러스터에 대한 추가적인 비용도 없다. 또한 AWS.. 2022. 8. 28.
DynamoDB 기본 개념 DynamoDB의 구성 요소 DynamoDB는 AWS에서 제공하는 NoSql database 서비스이다. 테이블 : 데이터의 집합 항목 : 테이블이 갖는 row들 속성 : 각 항목은 하나 이상의 속성들로 구성된다. People이라는 테이블을 보면 PersonID라는 파티션 키 기준으로 항목들이 구성되어있다. 또한 각 항목들은 하나 이상의 속성들을 갖는다(PersonID, LastName, FirstName..). DynamoDB는 Json 파일로 저장된다. key-value형식이기 때문에 READ가 빠르다. 또한 NoSql답게 속성에 대한 확장성이 좋다. 다만 단점은 relation이 없기 때문에 update작업을 해야할 경우 여러 컬렉션에 중복되어 들어가 있을 칼럼들을 모두 작업해주어야 한다는 점과 ㅜ.. 2022. 7. 31.
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.
반응형