지금까지 ECR + ECS를 사용한 배포과정을 정리하면, 아래와 같이 5단계로 진행하였다.EC2 + Docker를 설치하여 Git 소스를 클론.EC2에 프로젝트 build 하여 jar 파일을 담은 docker image 생성.생성된 docker image를 ECR에 푸시.ECR에 업로드한 image 기반으로 ECS Task Definition 생성.ECS Cluster와 Service를 생성하여 배포.실제 운영 환경에서 개발자가 소스 코드를 수정할 때마다 이 과정을 일일이 반복하는 것은 매우 비효율적이다.이러한 문제를 개선하고 개발 생산성을 높이기 위해, GitHub Actions을 활용하여 ‘코드 푸시부터 실 서비스 배포’까지의 전 과정을 자동화하는 CI/CD 파이프라인을 구축해 보자. [목표]Git..
전체 글
남자는 자신감ECS Fargate란?Amazon ECS는 컨테이너를 실행하고 관리하는 서비스이다. 여기서 AWS Fargate는 ECS 환경에서 컨테이너를 구동하기 위해 사용하는 서버리스 컴퓨팅 엔진입니다.즉, 기존에 사용자가 EC2 인스턴스에 Docker를 설치하고 관리해야 했던 것과 달리, Fargate를 활용하면 인프라의 설치, 구성, 확장 과정이 획기적으로 간소화됩니다. [장점]서버리스 운영 - 사용자가 가상 머신(EC2)을 직접 관리, 패치할 필요가 없어 애플리케이션 개발에만 집중 가능.리소스 기반 요금 - 컨테이너 구동에 요청된 CPU 및 메모리 리소스 양에 대해서만 초 단위로 과금되어 비용 효율을 극대화할 수 있음.태스크 수준 격리 - 각 테스크(Task)는 고유한 커널 격리 환경에서 실행되므로, ..
AWS ECR이란?Amazon ECR은 개발자가 컨테이너 이미지(Docker 이미지 등)를 손쉽게 저장, 관리 및 배포할 수 있게 해주는 완전관리형 컨테이너 레지스트리이다. 서버를 직접 관리할 필요 없이 AWS 인프라 위에서 이미지를 안정적으로 호스팅 할 수 있다.즉, ECR은 Docker 이미지를 안전하게 보관하고 관리하는 저장소이며, 오픈소스인 Docker Hub의 AWS 버전이라고 생각하면 된다. 목표 ECR 리포지토리 생성 - 이미지를 저장할 저장소 생성.Docker 로그인 인증 - EC2의 도커 클라이언트가 ECR에 접근할 수 있도록 인증.Docker 이미지 빌드 - 도커 파일을 이용해 이미지를 생성.이미지 태그 지정 - 로컬 이미지가 ECR 저장소로 갈 수 있도록 주소 설정.이미지 푸시..
지난번 포스팅에서는 로컬환경에서 도커 대시보드를 설치 후 실행하는 실습을 하였다.이번에는 AWS EC2 인스턴스에 Docker 컨테이너를 배포하도록 진행해 보자.https://guns23.tistory.com/44 [Docker] 대시보드 설치 및 실행하기(로컬 환경)1. 도커 설치 파일 다운로드 공식 다운로드 사이트 - Docker Desktop: The #1 Containerization Tool for Developers | DockerApple Silicon : m시리즈 맥북Intel Chips : 구형 맥북 다운로드가 완료되면 Docker.dmg라는 파일이guns23.tistory.com 목표 AWS EC2 인스턴스 생성.생성된 AWS EC2에 접속.EC2내 Docker-compose 설치.EC..
1. 도커 설치 파일 다운로드 공식 다운로드 사이트 - Docker Desktop: The #1 Containerization Tool for Developers | DockerApple Silicon : m시리즈 맥북Intel Chips : 구형 맥북 다운로드가 완료되면 Docker.dmg라는 파일이 생긴다. 더블 클릭하여 실행 후 응용프로그램 디렉토리로 옮겨준다. 터미널에서 도커 버전을 확인할 수 있다.docker --version 2. 도커 파일 생성하기 프로젝트 루트 디렉토리에 Dockerfile을 생성한다. Spring Boot 프로젝트를 빌드하면 build > libs 하위에 .jar 파일이 생긴다.(해당 파일은 배포 환경에서 서버를 구동하는데 사용됨) ## 1.jdk25 기반으로 이미지 생성..
AWS OIDC 도입 배경현재 구성된 프로젝트의 CI/CD 인증 방식은 AWS로부터 발급받은 Access Key / Secret Key를 GitHub Secrets에 저장하여, Github Action (aws-actions/configure-aws-credentials@v4)을 사용하고 있다. 위 같은 방식은 보안 및 관리 방식의 취약점이 존재함에 따라,AWS의 Access Key / Secret Key → OIDC방식으로 변경하여 기존 취약점을 강화하고자 한다. (IAM Access Key + GitHub Secrets)의 단점 및 보안 취약점 🔥0. IAM Access Key + GitHub Secrets 프로세스 IAM User 생성Access Key / Secret Key 발급GitHub Se..
POSITION 함수란?postgreSQL에서 POSITION() 함수는 문자열 내에서 특정 부분 문자열이 처음 나타내는 위치를 반환하는 함수이다. 사용하기기본 문법POSITION(substring IN string)SELECT POSITION('a' IN 'banana'); --결과 → 2위 쿼리 결과를 확인해 보면,a는 banana 문자열에서 두 번째로 최초 위치하였기에 2 값을 return 하게 된다.위치는 0이 아닌 1부터 시작하고 부분 문자열이 존재하지 않으면 0으로 반환한다.