AWS EKS ArgoCD 환경 구축하기 [2/2]
·
Trouble Shooting
지난번 포스트에 이어 작성하겠다. AWS EKS ArgoCD 환경 구축하기 [1/2] ArgoCD란? ArgoCD는 CD 도구 중 하나로, GitOps 방식의 배포를 도와주는 오픈소스이다. 현재 프로젝트에서 CI 환경은 Jenkins ci를 통해 구현되어 있으며, ArgoCD를 통해 완전히 자동화된 CI / CD 환경을 구축 imsongkk.tistory.com ArgoCD Application Application은 ArgoCD가 쿠버네티스 리소스들을 배포하는 기본적인 단위이다. https://argo-cd.readthedocs.io/en/stable/user-guide/application-specification/ Application Specification Reference - Argo CD -..
AWS EKS ArgoCD 환경 구축하기 [1/2]
·
Trouble Shooting
ArgoCD란? ArgoCD는 CD 도구 중 하나로, GitOps 방식의 배포를 도와주는 오픈소스이다. 현재 프로젝트에서 CI 환경은 Jenkins ci를 통해 구현되어 있으며, ArgoCD를 통해 완전히 자동화된 CI / CD 환경을 구축하게 되었다. GitOps란? DevOps 방법론 중에 하나로, 명령형 방식이 아닌 선언형 방식으로 애플리케이션을 배포하는 방식이다. 이전에 Jenkins CI 환경을 구축하면서 Jenkinsfile을 사용했다. pipeline { agent any stages { stage('build') { steps { echo 'building app' } } stage('test') { steps { echo 'testing app' } } stage('deploy') { s..
Jenkins Webhook Multiple branch 빌드 하기
·
Trouble Shooting
Jenkins Webhook 현재 진행하고 있는 프로젝트는 Github Push -> Webhook -> Jenkins Build 과정으로 자동화된 CI 환경을 구축했다. 아래 포스트에서 진행한 내용이다. AWS EKS Jenkins 환경 구축하기 [2/2] 하나의 포스트로 담기에는 분량이 너무 많을 것 같아 2개로 나누었다. 이전 포스트에 이어 진행된다. https://imsongkk.tistory.com/75 AWS EKS Jenkins 환경 구축하기 [1/2] Jenkins란? Jenkins는 가장 널리 사용되 imsongkk.tistory.com 그렇게 CI 환경을 구축하고 프로젝트를 개발하던 중, 슬랙에 예상치 못한 메세지들이 날아왔다. dev 브랜치가 아닌 다른 곳에서의 push 슬랙으로 날아..
ALB Ingress Controller로 여러 개의 Ingress 처리하기
·
Trouble Shooting
AWS ALB Ingress Controller ALB Ingress Controller는 k8s 클러스터내에 정의한 Ingress 리소스를 관리하기 위한 컨트롤러이다. Ingress만 정의해주면 알아서 해당 Ingress를 처리할 ALB를 동적으로 프로비저닝 해준다. 클러스터에 설치하기 AWS는 controller를 설치하는 방법으로 Helm Chart 와 manifest yaml 파일을 제공하고 있다. 기존에 인프라를 테라폼과 Helm으로 관리하고 있었어서, 본 포스팅은 Helm Chart를 사용한다. Helm Chart가 아닌, 일반적인 manifest yaml 파일로도 설치하는 방법은 아래 링크를 참고하자. https://docs.aws.amazon.com/ko_kr/eks/latest/userg..
MSA 환경에서 Swagger 서버 구축하기
·
Trouble Shooting
Swagger Swagger는 API 명세들을 시각화 해주는 프레임워크이다. 더 많은 설명은 아래 공식 문서에서 확인할 수 있다. https://swagger.io/ API Documentation & Design Tools for Teams | Swagger Loved by all • Big & Small Thousands of teams worldwide trust Swagger to deliver better products, faster. swagger.io 현재 Spring Rest Docs를 이용하여 테스트 기반으로 YAML 형식의 API 명세를 뽑아내고 있는 상황이다. 하지만 프론트엔드 팀원에게 YAML 파일을 그대로 던져주면 보기에도 불편하고 계속 파일을 주고 받아야 한다. 따라서 우리는 ..
AWS EKS Jenkins 환경 구축하기 [2/2]
·
Trouble Shooting
하나의 포스트로 담기에는 분량이 너무 많을 것 같아 2개로 나누었다. 이전 포스트에 이어 진행된다. https://imsongkk.tistory.com/75 AWS EKS Jenkins 환경 구축하기 [1/2] Jenkins란? Jenkins는 가장 널리 사용되는 CI / CD 오픈소스 자동화 도구이다. Master와 Agent로 나뉘어져 있으며 Master는 구성 및 설정들을 저장하고 빌드를 관리한다. Agent는 실제로 빌드를 수행하는 노드 imsongkk.tistory.com Jenkins와 Github Webhook 연결하기 현재 우리 팀은 Github을 통해 소스코드를 관리하고 있다. 따라서 CI 자동화를 위해 Github Webhook을 이용해 특정 브랜치에 Push나 Merge가 일어날 경우..
AWS EKS Jenkins 환경 구축하기 [1/2]
·
Trouble Shooting
Jenkins란? Jenkins는 가장 널리 사용되는 CI / CD 오픈소스 자동화 도구이다. Master와 Agent로 나뉘어져 있으며 Master는 구성 및 설정들을 저장하고 빌드를 관리한다. Agent는 실제로 빌드를 수행하는 노드이며 빌드 결과를 Master에게 전송한다. 빌드 구성을 위한 여러가지 플러그인이 많고 관련 문서들도 많이 있다는 장점이 있다. Jenkins를 왜 도입하는가? CI / CD 툴의 장점으로는 테스트 및 배포를 자동으로 할 수 있다는 것이다. 우선 진행하고 있는 프로젝트에서는 총 4개의 서비스가 있어 각각이 jar 파일로 빌드가 되어야 한다. 매번 명령어를 통해 수동으로 jar 파일을 뽑아내고 도커 이미지를 빌드하고 배포하려면 관리상의 불편한점이 많다. 따라서 우리는 프로젝..
AWS EKS 클러스터 구성 및 배포하기 [2/2]
·
Trouble Shooting
지난 포스팅 요약 https://imsongkk.tistory.com/59 AWS EKS 클러스터 구성 및 배포하기 [1/2] AWS EKS? EKS는 Elastic Kubernetes Service의 준말로, k8s 클러스터를 AWS에서 fully managed 해주는 서비스이다. k8s 클러스터를 구축하는 방법에는 크게 3가지가 있다. On-Premise 환경 클라우드 플랫폼 클라우드 Ma imsongkk.tistory.com 우리는 VPC, Subnet, Nat Gateway, Routing Table, Internet Gateway를 만들고 EKS IAM, Node Group IAM을 생성했다. 그리고 클러스터 엔드포인트를 퍼블릭 및 프라이빗으로 설정해 VPC 내외부에서 접근가능하도록 만들었다. ..
AWS EKS 클러스터 구성 및 배포하기 [1/2]
·
Trouble Shooting
AWS EKS? EKS는 Elastic Kubernetes Service의 준말로, k8s 클러스터를 AWS에서 fully managed 해주는 서비스이다. k8s 클러스터를 구축하는 방법에는 크게 3가지가 있다. On-Premise 환경 클라우드 플랫폼 클라우드 Managed 서비스 On-Premise 환경에 가까워질수록 클라우드의 의존성은 감소하지만, 관리의 복잡함이 늘어난다. AWS EKS 3번 환경에 속하며 클라우드의 의존성은 증가하지만, 관리가 매우 쉬워진다! 소마에 들어오기 전에, On-Premise환경에 k8s 클러스터 구축 경험을 쌓고자 하는 욕심이 있었지만 소마 프로젝트를 진행하면서, 팀별 AWS 지원비도 나올뿐더러 팀원이 3명밖에 안되기에 현실적으로 On-Premise 환경에 k8s 클..