본문 바로가기

CICD

(21)
EC2 CICD Automation - 3. Jenkins, CodeCommit, S3 세팅 젠킨스 내부 세팅을 하도록 하겠습니다. 먼저 예제 소스가 Spring Boot Maven이기 때문에 Jenkins에 Maven을 세팅하겠습니다. 자 이제는, Git Clone을 해올 때, 권한이 있어야 하기 때문에 Credentials를 만들어 주도록 하겠습니다. 먼저 IAM으로 가서 계정을 만들고 권한을 준 후 Git Credentials를 만들어서 Jenkins에 등록하겠습니다. 권한을 필수 레파지토리만 읽고 가져올 수 있도록 상세하게 구성하는 것이 가장 좋습니다. 위와 같이 유저를 생성한 후에 유저에 들어가서 보안 자격 증명 탭에서 CodeCommit Repository에 대한 Git Credentials를 만들 수 있습니다. 자 이제 만들어진 Git Credentials을 아래와 같이 젠킨스에 등..
EC2 CICD Automation - 2. Jenkins 설치 AWS Basic Infrastructure에서 이어서 배포 자동화를 만들어 진행해보도록 하겠습니다. 연습해 볼 구성도는 아래와 같습니다. Jenkins 서버를 생성하고 세팅해보도록 하겠습니다. EC2 Type이 최소 t3.small은 되어야 하기 때문에 t3.small / EBS 20GB로 설정하여주시고 server tag와 보안그룹을 위와 같이 설정하여 주도록 하겠습니다. 프라이빗 서버이기 때문에 도메인으로 접근을 해야합니다. Target Group을 8080으로 만들어서 Jenkins서버를 연결해 준 후 Route53 Record에 젠킨스 도메인을 ALB DNS로 CNAME Record를 생성해주겠습니다. 이제 서버에서 아래와 같은 쉘 스크립트를 수행하여서 젠킨스 설치 및 젠킨스 유저를 세팅하도록 ..
EC2 CICD Automation - 1. Intro EC2에 자동화 배포를 구성할 때, 사용하는 가장 기본적인 구조를 보도록 하겠습니다. 개발자는 CodeCommit Repository에 Git Push를 하면서 소스 업데이트를 하고, 젠킨스에서 이 해당 Repository를 보고 있다가 Job Run을 수행하면서 Git clone 후 Build를 합니다. (만약 Flask와 같이 Jar 빌드등이 필요하지 않은 경우 Build 부분은 생략됩니다.) 이후 Build된 Jar 파일과, CodeDeploy가 배포를 하기 위해 어떤 수행을 할 것인지 정의해주는 appspec.yaml, 그리고 appspec.yaml에서 정의되어 실제 서비스를 수행할 deploy.sh 파일을 작성하여 세 파일을 zip으로 묶어 S3에 Job Build Number대로 버킷 구조를 ..
AWS EC2 AutoScaling 사용하기 - 2. Hands On 앞의 글에서 말씀 드렸던 순서대로 진행해보도록 하겠습니다. 이전 게시글 Baisc Infrastructure대로 먼저 구성해 주시면 1단계인 AMI 세팅이 끝납니다. 이때 만든 AMI를 가지고 오토스케일링을 구성하여서 서비스를 띄워보도록 하겠습니다. 서비스 - EC2 - AutoScaling - 시작구성탭에서 시작구성 생성을 해보겠습니다. 기존에 EC2를 생성하거나 AMI를 통해 EC2를 생성하는 것과 굉장히 유사하므로, 똑같은 부분은 제외하고 달라지는 부분만 설명하겠습니다. #!/bin/bash sudo yum -y update sudo sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config sudo s..
AWS EC2 AutoScaling 사용하기 - 1. Intro 카테고리가 CICD인데, AutoScaling과 무슨 관계인가? 라는 생각이 드실 수 있습니다. 하지만 AWS에서 AutoScaling과 CICD는 뗄 수 없는 관계입니다. 그 과정을 먼저 EC2 부터 살펴보도록 하겠습니다. 먼저 EC2에서 AutoScaling을 구성하는 방법에 대해 알아봅시다. 1. 먼저 AMI를 생성해야 합니다. 만약 Spring Boot Jar파일을 실행할 서버라면 이 서비스를 수행하기 위해 JDK 1.8을 꼭 설치해야할 것이며 이 외에도 서비스 운영에 관해 필요한 각 라이브러리나 솔루션들을 서버에 설치해야합니다. 이렇게 서버에 Jar파일만 올려서 돌리면 서비스가 될 수 있도록 세팅이 끝난 서버의 현 시간을 이미지화 해서 해당 상태의 서버를 계속해서 찍어낼 수 있는 것이 AMI 입..