Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 네트워크 구성도
- k8s
- 단축어
- 비동기처리
- gradle
- 네트워크구성도
- 합의알고리즘
- WebFlux
- DevOps
- 마스터노드
- completablefuture
- 외부 라이브러리
- split brain
- 네트워크
- 리액티브
- 특정포트
- Spring Exception
- springboot
- network
- 데브옵스
- 라이브러리 삭제
- Kubernetes
- 리눅스단축어
- 단축어세팅
- Spring boot
- transcational
- 쿠버네티스
- 네트워크이론
- 취약점점검
- 컨트롤플레인
Archives
- Today
- Total
애매한 오각형의 블로그
AWS CodeDeploy & CodeBuild 내용 정리 본문
반응형
Cloud Infra 세팅
vpc 세팅
- public subnet(DMZ)
- ALB : user 가 domain(route53 and ACM) 으로 트래픽 전송 시 ALB의 target group 에 속한 private subnet 내 인스턴스로 전송
- bastion : developer 들이 private subnet 에 있는 콘솔에 접근하기 위함
- private subnet
- ALB : internal 또는 내부적인 트래픽을 분산하는 역할을 합니다. <- private subnet 에 있는 서버들 사이에 로드 밸런싱 수행
- ec2 인스턴스
- rds, elastic cache, document db 등
- 해당 vpc 세팅 이유
- 인터넷 트래픽은 DMZ 에 있는 ALB에게 전송하여 ALB 는 해당 트래픽을 private subnet 내에 있는 instance 에 전송
- 해당 방법은 내부 네트워크 리소스를 인터넷으로 부터 격리하여 보안을 강화할 수 있다.
- 또한, 고가용성 및 확장성을 높일 수 있다.
- 이는 AWS 에서 권장하는 보안 및 아키텍쳐 best practice 중 하나
- SSM 과 Bastion 호스트(터널링) 을 같이 사용하는 이유
- ssm role 을 부여하지 못하는 manage service(rds, documentdb 등 ) 접근하기 위한 터널링 세팅
AWS CodeBuild & CodeDeploy
CodeDeploy 란?
- EC2 / on-premises 인스턴스,ECS,serverless lambda function 등 여러 서비스 애플리케이션 배포 자동화 서비스
CodeDeploy 장점
- 배포 진행 사항 모니터링
- 저렴한 요금 (ec2/lambda 에서 codeDeploy 사용 시 무료, 온프레미스를 사용 시 인스턴스 업데이트당 0.02 USD)
- 가동 중지 시간을 최소화(blue/green 배포)
- 동시배포 진행 가능 (하나 이상의 EC2 애플리케이션에 배포 가능)
Blue-Green Deployment 배포전략
- blue : 라이브 환경
- green: 신규 환경
새로운 배포는 green 환경에서 수행되며 에러 검출이 되지 않을 경우 traffic 을 blue 에서 green 으로 이전 하므로 downtime이 거의 없다.
무중단 배포를 위해서는 로드밸런서 또는 다른방법을 사용해야 하는데 설정해야 할게 많다
무중단 배포 방식
- Auto Scaling 활용
- 로드밸런서 설정 ( target group 세팅, 고급 상태검사설정( 값을 작게 하여 AllowTraffic 구간 빠르게 진행 설정)
- ec2 인스턴스 AMI 생성
- ec2 시작 템플릿 생성 (IAM 으로 codeDeploy 권한 생성 후 작업 진행 -> 고급 세부 정보>IAM 인스턴스 프로파일)
3-1. 사용자 데이터 입력 (jar 실행 명령어)
3-2. rc.local 파일 수정1) sudo vi /etc/rc.d/rc.local 2) jar 실행 명령어 입력 3) chomd +x /etc/rc.d/rc.local 입력
- AutoScaling 그룹 생성
1) 시작 템플릿 설정
2) 로드밸런서 연결 (기존)
3) 기존 타겟그룹 연결
4) 인스턴스 2개 고정 - CodeDeploy 설정
5-1 배포 그룹 세팅
1) 서비스 역할 설정 (CodeDepoly Role)
2) 배포 유형 선택 (블루/그린)- 정책 추가 { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ] } - Blue-Green 정책 추가 { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "iam:PassRole", "ec2:CreateTags", "ec2:RunInstances" ], "Resource": "*" } ] }
3) 환경 구성 설정
4) 배포 설정 내 배포 그룹의 원본 인스턴스 종료 설정- Amazon EC2 Auto Scaling 그룹 자동 복사 (기존에 존재하던 Auto-Scaling Group)
5) 로드밸런서 연결 (로드밸런서의 타겟 그룹)
CodeBuild 란?
- 소프트웨어 개발에 필요한 소스코드를 컴파일 하는 단계부터 테스트 후 소프트웨어 배포까지의 단계를 지원
CodeBuild 장점
- 빌드를 수행할 볼륨에 따라 인프라가 자동으로 확장 및 축소 지원
- 자체 빌드 서버가 필요하지 않으며, 빌드 서버를 프로비저닝 하거나, 운영/관리 및 확장을 수행할 필요가 없음
- AWS KMS(Key Management Service)을 이용하여 빌드 아티팩트가 암호화되며, AWS IAM 을 통해 권한 관리 가능
CodeBuild 주요 기능
- 코드에 대한 빌드와 테스트
- 사전에 구성된 빌드환경에서 작업을 수행(소스코드 위치와 빌드를위한 설정 세팅)
- AWS CodeBuild는 코드 build 후 아티팩트를 S3 버킷에 저장하거나 아티팩트 저장소에 업로드
- Java,Node.js, Python, Go, Ruby, Android 및 Docker를 위한 사전 구성된 빌드환 경 제공
- Docker 이미지 또는 퍼블릭 Docker Hub에 업로드하거나 AWS ECR(EC2 Container Registry)를 관리하기 위해 런타임 도구를 패키징 하여 자신만의 빌드환경 구축
반응형
'DevOps' 카테고리의 다른 글
[AWS] [AWS 보안 아키텍처] AWS Inspector를 활용한 취약점 점검 (1) | 2025.07.21 |
---|---|
[K8S] 클러스터 마스터 노드를 왜 홀수 개로 구성할까? (2) | 2025.06.23 |
[Kubernetes] Pod Resource 에 관한 정리 - CPU (0) | 2025.04.17 |