본문 바로가기

⌛ AWS 인프라 구성하기 (MiniProject)

(34)
(미완성) CI/CD 환경 구성 (1) # 이전에 배포한 EKS 클러스터 환경에 CI/CD를 붙여보자. 구성할 CI/CD 배포 프로세스는 아래와 같다. # 위의 구성도를 활용하여 실제 CI/CD 파이프라인을 구성 해보자. 1. 우선 ArgoCD가 바라봐야할 Repository를 생성 한다. 여기서는 저장소를 ECR로 할 예정이므로 ECR 레포지토리에서 저장소를 생성 한다. 저장소의 이름은 cd-test-api-yaml 이라고 설정 하고 유형은 프라이빗으로 설정 한다. 2. EKS 환경에서 ArgoCD 설치 EKS 환경에서는 일반적인 로컬 환경과는 다르게 설정해야할 부분이 존재한다. 하나하나씩 설정을 진행하며 수행해보자. 첫번째, ArgoCD 설치 아래 명령어를 입력하여 Namespace를 생성하고 생성한 Namespace에 Argocd를 설치..
5. 생성한 이미지를 ECR로 업로드 하기 1. image를 tag하고 ECR로 Push 하기 - ECR에 로그인 하기 위해서는 접속한 인스턴스에 보안그룹 > IAM 역할 수정에서 해당 권한에 맞는 역할을 부여 해줘야 한다. - aws configure를 통해 보안자격증명을 등록해 준다. - 이미지를 태그 후 push 하기위해 Docker image를 생성한 서버에서 ECR로 로그인 한다. - 로그인은 아래의 명령어를 활용하여 진행한다. ECR login 수행 sudo $(aws ecr get-login --no-include-email --region ap-northeast-2) 2. Login Succeeded 메시지가 떴다면 정상적으로 로그인이 된 것으로 볼 수 있다. - 빌드위한 docker image 확인 ubuntu@ip-192-168..
4. 수동으로 Source 빌드 후 배포하기 # 예제 애플리케이션으로 개발한 게시판 프로그램 # 해당 게시판 프로그램을 dockerfile로 작성 후 빌드, ECR에 업로드를 수행 한다. 1. 소스코드 확인 해당 소스코드는 SpringBoot + mustache + html + javascript를 활용하여 개발 되었다. 해당 소스코드를 mobaxterm를 활용하여 BastionHost 서버로 옮긴다. 2. 빌드를 위한 dockerfile 작성 vim dockerfile 명령어를 통해 파일을 작성 한다. FROM adoptopenjdk:11-jdk-hotspot AS builder COPY gradlew . COPY gradle gradle COPY build.gradle . COPY settings.gradle . COPY src src RUN ..
3.EKS ALB 구성하기 & 테스트 Nginx 웹 서버 배포 # AWS Load Balancer Controller 관련 설치 정보 https://docs.aws.amazon.com/eks/latest/userguide/aws-load-balancer-controller.html Installing the AWS Load Balancer Controller add-on - Amazon EKS If your nodes don't have access to the Amazon EKS Amazon ECR image repositories, then you need to pull the following image and push it to a repository that your nodes have access to. For more information on how ..
2.EKS 기본 아키텍처 구성하기 (EKS 인프라 구성) # EKS 기본 아키텍처를 기반으로 인프라 구축하기 2022.05.11 - [AWS 인프라 구성하기 (MiniProject)/개발환경 구성 (EKS)] - EKS 기본 아키텍처 구성하기.1 (WorkFlow) EKS 기본 아키텍처 구성하기.1 (WorkFlow) # EKS 기본 구성도 기본 아키텍처는 EC2의 기본 아키텍처과 매우 비슷하다. 단지 Private Subnet에 어떤 자원이 존재하는가에 따른 차이만 다르다. EC2 기본 아키텍처에는 EC2 인스턴스가 존재 하였지만 may9noy.tistory.com 1. Network 리소스를 설치 (VPC, Subnet, 등등) CloudFormation을 통한 네트워크 리소스를 설치한다. 내용은 AWS에서 기본으로 제공하는 자료이고 아래와 같다. 아래의 ..
1.EKS 기본 아키텍처 구성하기 (WorkFlow) # EKS 기본 구성도 기본 아키텍처는 EC2의 기본 아키텍처과 매우 비슷하다. 단지 Private Subnet에 어떤 자원이 존재하는가에 따른 차이만 다르다. EC2 기본 아키텍처에는 EC2 인스턴스가 존재 하였지만 EKS 기본 구성에는 Worker Node가 구성된다. 차이점은 EKS 구성에는 Master Node가 VPC 외부에 존재하여 Worker Node를 컨트롤 한다는 점이다. ① 유저는 사용자와 개발자 등 모두를 포함하는데 유저들은 인터넷을 통해 요청을 수행한다. ② 인터넷 환경을 통한 접근이다. ③ 인터넷 환경을 통해 인터넷 게이트웨이로 접근을 한다. ④ 인터넷 게이트 웨이를 통해서 public 망으로 접근한 트래픽은 ALB에서 우선적으로 받는다. ⑤ ALB를 통해서 들어온 트래픽은 부하를..
4. Lunch-templates, Userdata, Stickiness cookie, SecurityGroup를 활용한 ASG 구성 # 구성도 1. 위 아키텍처 구성에서 좌물쇠 아이콘이 있는 곳은 보안그룹이 존재하고 보안그룹 세팅이 가능하다라고 보면 된다. 2. 시작 템플릿에서 새로운 버전을 생성하면 기존의 작성했던 userdata가 삭제 되므로 주의할 필요가 있다. 3. # 값으로 표시된 것은 별도로 작성을 하거나 세팅을 해야하는 부분이다. 4. 결국 Private 서브넷의 Traffic들의 출구는 Nat Gateway가 되고 Nat Gateway가 퍼블릭 망에 존재하는 Internet Gateway에게 트래픽을 전달하고 Internet Gateway는 ALB로 트래픽을 전달한다. (추가로 NatGW는 퍼블릭 서브넷을 바라보고 있고, 퍼블릿 서브넷은 IGW를 바라보고 있기 때문에 내부의 트래픽들이 외부로 나갈수 있는 매개체 즉 통로..
3. Lunch-templates, Userdata, Stickiness cookie를 활용한 ASG 구성 # 해당 구성도 # TargetGroup 상태체크 방법 2022.05.09 - [AWS/Load Balancing] - Target Group Health checks (헬스체크) Target Group Health checks (헬스체크) # Target Group을 생성시 Health checks 라는 탭을 확인 할 수 있다. 인스턴스의 서비스가 정상적으로 동작하는지 체크를 하고 해당 정보를 화면에 표시하는 용도이다. 헬스 체크의 옵션을 보면 아래와 may9noy.tistory.com # AutoScaling시 userdata를 정의하여 Scale-out되는 인스턴스에 jar파일을 기동 시키기 AutoScaling시 Scale-out의 조건은 시작 템플릿을 늘리는 방법으로 진행 된다. 그래서 시작 템..