전체 글 468

(Jenkins) Jenkins 설치하기

환경 : LINUX CentOS ※ AWS등을 사용하시는 경우 MarketPlace에서 Jenkins용 서버를 실행하면 IAM, 보안그룹 등 손쉽게 인스톨이 가능합니다. ※ Jenkins는 실행환경에서 JDK를 사용하는데, 왠만하면 JAVA 1.8 이상의 환경에서 실행하자. 아래의 명령어를 실행하여 jenkins repository를 설정파일을 생성합니다. https://pkg.jenkins.io/redhat-stable/jenkins.repo 경로의 파일을 다운로드 받아 /etc/yum.repos.d/jenkins.repo 경로에 파일을 다운로드 받는 명령어 입니다. wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/j..

PaaS/CI CD 2021.07.04

(AWS) EKS 클러스터 설치

시작전 EKS관리자 계정을 생성하고 시작하세요. 추후에 EC2에서 aws authentication이 있습니다. 역할 생성 IAM>Roles>Create role의 서비스 목록에서 EKS를 선택하고 사용사례에 "EKS에서 사용자를 대신하여 클러스터를 관리하도록 허용" "(영어로는) Allow EKS to manage clusters on your behalf"을 선택하고 마지막 단계에서 역할이름에 "eksServiceRole"을 입력하고 역할생성을 합니다. 클러스터 용 VPC 생성 – Cloud Formation을 사용하여 클러스터 용 VPC, Subnet, Security Group을 생성합니다. Cloud Formation 1. Cloud Formation>Create stack>템플릿 선택: Ama..

(Kubernetes) Deployment 전략 들

1. Rolling Stratege 아래와 같은 일반 Deployment 구분에서 특별한 spec을 정의하지 않으면 Default로 Rolling 전략으로 배포된다. apiVersion: apps/v1beta1 kind: Deployment metadata: name: awesomeapp spec: replicas: 3 template: metadata: labels: app: awesomeapp spec: containers: - name: awesomeapp image: imagerepo-user/awesomeapp:new ports: - containerPort: 8080 strategy라는 파라미터를 추가로 주어서 명시적으로 정의할 수 도 있다. - spec.strategy.rollingUpdat..

PaaS/Kubernetes 2021.06.28

배포전략 - Rolling, Blue/Green, Canary 배포

1. Rolling: 가장 많이 사용하는 배포 전략이다. OneByOne 으로 배포를 하며, 여기서 핵심은 자동으로 로드벨런싱에서 제외 시켜야 한다는 점이다. AWS CodeDeploy, Kubernetes의 Deployment(Rolling) 의 기본 배포 방식이다. 하나씩 배포되고 Roll Back을 하게되면 다시 하나씩 롤백된다. 장점 : 사용자 기준으로 트래픽이 중단되는 현상없이 안정적으로 배포됨. 워크노드 자원을 안정적으로 사용하는 편 단점 : 배포중에는 동시에 신/구 버전 동시존재 2. Blue/Green : Blue/Green 배포는 구 버전에서 새 버전으로 일제히 전환하는 전략이다. 구 버전의 서버와 새 버전의 서버들을 동시에 나란히 구성하고 배포 시점이 되면 트래픽을 일제히 전환시킨다 장..

PaaS/CI CD 2021.06.28

(AWS) ELB를 적용해 로드벨런싱 하는방법

개요 : Elastic LoadBalancing을 사용하면 라운드로빈 순서로 대상 인스턴스로 라우팅한다. 복수의 EC2를 사용할 때 필수적인 요소이다. 준비사항 : 2대 이상의 EC2 ※ 저의 경우 Tomcat에 간단한 JSP를 올린 인스턴스를 2개 준비하였습니다. 서버IP등 찍는 단순한 JSP소스를 원하시면 Github에서 다운로드 받으면 됩니다. https://github.com/armyost/testPage.git 적용방법 : 1. [서비스]-[EC2]에서 '로드벨런싱'의 '로드벨런서' 메뉴를 클릭합니다. 2. 'LoadBalancer생성' 버튼을 클릭합니다. 3. 어플리케이션을 로드벨런싱 할 예정이므로 'Application LoadBalancer'를 선택합니다. 4. 로드벨런서 이름을 입력하고,..

AWS Professional DevOps 시험준비

합격 팁 (출처 : https://techblog.kr/2021/03/30/aws-devops-pro-exam/) AWS 데브옵스 엔지니어 프로페셔널 시험 후기(2021년 4월) AWS Devops Engineer Pro 시험을 보았습니다.이번에 AWS 데브옵스 엔지니어 프로페셔널 시험을 보고 합격하였습니다.AWS Certified DevOps Engineer - Professional (이하 Devops Pro) 시험은 AWS의 여러 자격증 시험중 AW techblog.kr 이번에도 시험을 준비후 한번에 합격하였는데 역시 이전과 마찬가지로 영어로 보았습니다. 영어로 시험을 본 이유는 이전과 같습니다. 번역이 매끄럽지 못하고 시험도 최신 유형의 반영이 늦기 때문입니다. 덤프등을 구해서 공부하는 방법도 한..

(AWS) CodePipeline을 활용한 EC2 소스 배포 자동화(with Cloud9, CodeCommit, CodeDeploy)

Cloud9을 활용하여 소스코드를 작성하고, CodeCommit을 활용하여 소스 코드의 버전을 관리하고 CodeDeploy를 통해 EC2에 소스를 배포하는 프로세스, CodePipeline를 이용해 프로세스를 자동화하는 방법에 대해 알아보자 서비스 역할 및 IAM 인스턴스 프로파일 생성 1. [서비스]-[보안자격증명 및 규정준수]-[IAM]을 클릭합니다. [사용자] 메뉴를 선택하고 [사용자 추가]버튼을 클릭합니다. 2. [사용자 추가] 화면에서 '사용자 이름'에 'DevOpsUser'입력 후 '엑세스 유형'에 '프로그래밍 방식 엑세스'를 선택하고 [다음] 버튼을 클릭합니다. 3. [사용자 추가] 페이지에서 [기존 정책에 직접 연결] 버튼을 클릭합니다. '정책' 필터에 'AWScode'를 입력후 'AWSC..

(AWS) CodePipeline 이란?

개요 AWS CodePipeline은 빠르고 안정적으로 애플리케이션과 인프라의 업데이트를 위한 릴리스 파이프라인을 자동화할 수 있도록 서비스 형태로 제공되는 완전 관리형으로 지속적인 전달을 제공하는 서비스 입니다. AWS CodePipeline은 코드에 변경이 있을 때마다 사용자가 사전에 정의한 릴리스 모델을 기반으로 애플리케이션의 릴리스 프로세스의 빌드, 테스트, 배포 단계에 걸친 프로세스에 대해 자동화를 수행합니다. AWS CodePipeline의 주요 기능과 기대효과 1. 지속적인 배포를 위한 워크플로우 모델링 입니다. AWS CodePipeline은 소스 배포를 위한 프로세스 워크플로우를 정의하고, 새로운 코드나 기능의 변셩이 배포 프로세스에서 진행되는 방법을 모델링할 수 있습니다. 2. AWS와..

(AWS) CI/CD를 위한 AutoScaling, Cloud9과 CodeDeploy로 구현

EC2를 AutoScaling하여 사용량에 맞추어 유연하게 대응하고, CI/CD개념을 적용하여 탑재되어있는 어플리케이션을 손쉽게 Deploy하는 예제이다. 서비스 역할 및 IAM 인스턴스 프로파일 생성 1. AWS Console에 접속 후 메뉴에서 [서비스] - [보안, 자격 증명 및 규정준수] - [IAM] 을 클릭합니다. [IAM] 메뉴에서 '역할' 클릭 후 [역할 만들기] 버튼을 클릭합니다. 2. [역할 만들기] 페이지에서 'AWS 서비스'를 선택하고 [사용 선례 선택] 메뉴에서 'CodeDeploy'를 선택합니다. 3. '사용 사례 선택' 항목에서 'CodeDeploy' 선택 후 [다음] 버튼을 클립합니다. 4. '권한 정책 연결' 항목에서 '권한 경계없이 role생성' 선택후 [다음] 버튼 클릭..

(AWS) AWS CodeDeploy 란?

개요 AWS CodeDeploy는 Amazon EC2, Amazon ECS, AWS Lambda 및 On-Premise 서버와 같은 다양한 컴퓨팅 서비스에 대해 소프트웨어 배포를 자동화하여 제공하는 완전 관리형 배포 서비스 입니다. AWS CodeDeploy는 지속적인 배포를 지원하는 대표적인 CD도구로써, AWS CodeDeploy를 사용하게 되면 새로운 기능 및 문제가 되는 코드에 대해 빠르고 신속하게 배포할 수 있습니다. 그리고 애플리케이션을 배포하는 동안 기존 서비스에 영향을 최소화하면서 배포를 수행할 수 있는 다양한 배포 방법을 지원합니다. CodeDeploy의 특징과 이점 1. 자동화된 배포 : 반복적인 배포를 손쉽게 수행할 수 있으며, On-Premise 환경에 대한 배포와 Auto Scal..