본문 바로가기

반응형

CICD

(5)
[Github Action] Self hosted runner에서 Gradle, Docker image cache #1 - EBS, PVC로 캐시하기 Github hosted runner에서는 다양한 actions에서 caching 전략을 제공하기 때문에 단순 actions를 사용하는 것만으로 손쉽게 캐싱을 수행할 수 있다. 캐싱은 docker image caching도 아주 쉽게 수행할 수 있다. 이는 buildx에서 --cache-from과 --cache-to의 type 중 gha(github action)란 type을 제공하는데, 아주쉽게 구현 가능하다. gradle cache 또한 제공하는 actions를 쓰면 된다. 하지만 github hosted runner를 쓰면 다양한 단점이 존재한다. 1. 개발한 코드가 클라우드 상에 배포된다. 2. runner가 argocd 등의 명령어를 수행하기 위해 argocd가 public 망에 존재해야 한다...
[EKS] EKS 환경에서 ArgoCD 설치, 배포, 롤백 Ref : https://www.s-core.co.kr/insight/view/%EB%8D%B0%EB%B8%8C%EC%98%B5%EC%8A%A4%EC%9D%98-%ED%99%95%EC%9E%A5-%EB%AA%A8%EB%8D%B8-%EA%B9%83%EC%98%B5%EC%8A%A4gitops-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-2/ GitOps란 DevOps를 실천하는 방법 중 하나이다. 그 중에서도 Cloud Native한 Application을 대상으로 CD(Continuous Deployment)에 초점을 두고 있다. Application 배포와 운영에 관련된 모든 요소를 코드화하여 Git에서 관리(Ops)하는 개념을 GitOps라고 한다. 그렇다고 IaC와 유사하지만 같..
[CICD] Terraform을 통한 AWS 3 Tier 구성 및 CI/CD 파이프라인 배포 #5 - CodeDeploy를 통한 ASG Blue-Green 배포 #4에서 S3로 zip 파일이 업로도된 것을 확인하였다. CodeDeploy를 통한 war 파일 배포 Tomcat Server에서 S3에 있는 파일을 가져오기 위해 IAM Instance Profile이 해당 WAS EC2에 Attach되어 있어야 한다. 아래의 EC2 Metadata로 잘 붙어있는지 확인할 수 있다. - CodeDeploy Agent 설치 #!/bin/bash sudo yum -y install ruby sudo yum -y install wget cd /home/ec2-user sudo wget https://aws-codedeploy-ap-northeast-2.s3.ap-northeast-2.amazonaws.com/latest/install sudo chmod +x ./instal..
[CICD] Terraform을 통한 AWS 3 Tier 구성 및 CI/CD 파이프라인 배포 #3 - 3 Tier 인프라 구축 * 본 글에서는 Terraform 코드에 대한 자세한 설명은 진행하지 않습니다. * - Module은 EC2, VPC, RDS - MySQL 3개만 구현하였고, 나머지는 Resource를 사용하여 인프라를 구현하였다. - 동적으로 Infra의 설정 값을 변경할 수 있도록 variables.tf를 적절히 활용하였고, 각 Test, Dev, Stg, Prd 등 각 환경마다 변수 값을 다르게 설정할 수 있도록 env/~.tfvars 처럼 tfvars 파일을 생성하였다. - 아직 Module화, count, for_each 등의 Terraform 함수들을 활용하여 좀 더 간결하여 동적인 Code로 리팩터링하는 작업이 필요할 것으로 보인다. - Tomcat AMI는 Packer로 생성하였는데, 아래의 링크에서 확..
[CICD] Terraform을 통한 AWS 3 Tier 구성 및 CI/CD 파이프라인 배포 #1 - 아키텍처 및 CICD 흐름 소개 개요 Terraform을 통하여 AWS의 각종 자원들(VPC, EC2, ALB, NLB, AutoScaling Group, ..)을 생성하고 Application 배포 자동화를 위한 Jenkins + AWS CodeDeploy 구축 이후 WAR 파일 배포를 진행해 볼 예정이다. 요즘에는 WAR를 말아서 Tomcat에 직접 배포하는 것이 아닌 JAR 파일에 있는 내장 톰캣을 사용하지만 아직도 많은 회사에서는 Tomcat을 직접 구성하여 사용하고 있기 때문에 3 티어를 구현하여 인프라를 구현해 볼 예정이다. (SpringBoot는 처음 사용해보기 때문에 hello만 출력하는 페이지를 생성하였음) 어떠한 것들을 사용할 것인지 간략하게 소개해보겠다. 1. 인프라 - Terraform - Packer 2. CI/..

반응형