클라이언트 환경 변수 설정 1. AWS 검색창에 CodeBuild를 검색하여 클릭 2. 원하는 빌드 프로젝트 선택 후 오른쪽 상단에 편집 -> 환경 클릭 3. 밑으로 스크롤을 쭉 내려 추가 구성을 클릭 4. 추가 구성을 클릭하면 새로 선택지가 나옴, 스크롤을 내려 환경 변수에 환경 변수 이름과 서버의 주소를 넣음 -> 환경 업데이트 클릭 5. 파이프라인에 변경사항 릴리스를 클릭 결과 > 이렇게 나온다면 클라이언트와 서버의 연결이 성공한 것이다 DevOps BootCamp/CI, CD 파이프라인 2023.04.25
서버 배포 파이프라인 1. > 검색 창에 EC2를 검색하여 들어간 후 EC2를 생성 > 작업 -> 보안 -> IAM 역할 수정 클릭 IAM 역할 수정하는 이유: > 인스턴스가 다른 AWS 서비스와 통신할 때, 접근 권한을 주기 위함 2. 새 IAM 역할 생성 클릭 3. 역할 만들기 클릭 4. > AWS Deploy를 이용하여 EC2에 작업할 것이므로 AWS 서비스 선택 > EC2 선택 5. > CodeDeploy가 S3에 있는 코드를 사용할 것이므로 'AmazonS3 FullAcess' 선택 6. EC2에 Agent를 설치하기 위해 선택 7. AWSCodeDeployRole 사용하는 이유 > CodeDeploy에서 배포하는 애플리케이션을 관리하는 데 필요한 권한을 제공 > CodeDeploy 배포 그룹을 만들 때 사용됩니다... DevOps BootCamp/CI, CD 파이프라인 2023.04.24
클라이언트 배포 파이프라인 배포 자동화 > 한 번의 클릭 혹은 명령어 입력을 통해 전체 배포 과정을 자동으로 진행하는 것 이유: 수동적이고 반복적인 배포 과정을 자동화함으로써 시간이 절약 휴먼 에러(Human Error)를 방지 배포 자동화 파이프라인 배포에서 파이프라인(Pipeline) : 용어는 소스 코드의 관리부터 실제 서비스로의 배포 과정을 연결하는 구조를 뜻함 Source 단계: Source 단계에서는 원격 저장소에 관리되고 있는 소스 코드에 변경 사항이 일어날 경우, 이를 감지하고 다음 단계로 전달하는 작업을 수행 Build 단계: Build 단계에서는 Source 단계에서 전달받은 코드를 컴파일, 빌드, 테스트하여 가공, Build 단계를 거쳐 생성된 결과물을 다음 단계로 전달하는 작업을 수행 Deploy 단계: De.. DevOps BootCamp/CI, CD 파이프라인 2023.04.24
코드로부터 환경 변수 분리 1. CI 상에서 주어진 Dockerfile을 이용해 Docker 이미지를 빌드하기 1. yaml 파일 작성 on : release 할 때마다 workflow 실행 step: uses: actions/checkout@v3 - github 레파지토리에 있는 파일 확인, 최신 버전 uses: docker/login-action@~ - Docker Hub에 로그인 with: - 'username', 'password'는 환경 변수 / Docker Hub 아이디와 패스워드를 통해 로그인 username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} ► github 레파지토리 세팅에서 secret 탭에 환경 변수를 설정해 주어야 .. DevOps BootCamp/CI, CD 파이프라인 2023.04.21
GitHub Action 작성법 1. 깃허브 홈페이지에 접속 > 로그인 한다 2. repository 생성 후 Actions 클릭 3. 그 다음 ' set up a workflow yourself ' 를 클릭 4. 파일 이름과 yml 파일을 작성한다. name: 필수. 워크플로의 이름. 이것은 사용 가능한 워크플로 목록에 표시 on 블록: push, pull_request할 때마다 workflow를 실행시킨다. jobs: jobs 단위로 개별 서버(정확히는 도커 컨테이너 단위)에서 작업이 수행 ※ 각 작업은 병렬로 실행 run-on: 사용할 운영 체제 예) ubuntu, window, macos 등 strategy: 변수 개념, 'node version'에 배열이 선언 되어 있는데, 배열안에 있는 원소를 순회하면서 반복해서 실행 > m.. DevOps BootCamp/CI, CD 파이프라인 2023.04.20
지속적 통합 지속적 통합이 있기 전에는 어떻게 릴리스를 만들었을까요? 지속적 통합 (Continuous Integration, CI)가 보편화되기 전에는 수동으로 릴리스를 만들었습니다. 릴리스를 만들기 위해서는 개발자들이 작성한 코드를 컴파일하고, 테스트하고, 패키징하는 과정이 필요합니다. 이러한 과정은 수작업으로 수행되었으며, 매우 번거로운 작업이었습니다. 예를 들어, 개발자가 새로운 코드를 작성하면, 이 코드는 개발 환경에서 테스트되어야 합니다. 그리고 이 코드는 버전 관리 시스템 (예: Git)을 사용하여 릴리스 브랜치에 병합되어야 합니다. 이후, 릴리스 브랜치에서 코드를 빌드하고, 패키징하여 배포 가능한 형태로 만들어야 합니다. 이러한 릴리스 과정에서 발생하는 문제들은 수작업으로 해결하기가 매우 어려웠습니다... DevOps BootCamp/CI, CD 파이프라인 2023.04.20
Github Action의 장점 내장된 CI 도구: GitHub Action은 깃허브 리포지토리 내부에 내장된 CI 도구로서, 깃허브에서 제공하는 다양한 기능과 API를 사용할 수 있습니다. 이를 통해 깃허브 리포지토리와 완전히 통합되어 있어, 개발자들은 코드와 함께 CI/CD 파이프라인을 쉽게 만들고 유지할 수 있습니다. 쉬운 사용성: GitHub Action은 사용하기 쉽고 직관적인 YAML 파일 형식으로 작성됩니다. 이를 통해 개발자들은 CI 파이프라인을 쉽게 구성하고 유지할 수 있으며, 파이프라인 내에서 다양한 작업을 수행할 수 있습니다. 다양한 통합성: GitHub Action은 다양한 플랫폼과 서비스와 통합될 수 있습니다. 예를 들어, AWS, Azure, Google Cloud Platform과 같은 클라우드 서비스, Do.. DevOps BootCamp/CI, CD 파이프라인 2023.04.20
Amazon ECS/ECR 마이크로서비스 아키텍쳐 이해 > 하나의 애플리케이션을 작은 서비스(독립된 서비스)로 쪼개는 것 > 개발 방법론 ,데이터 스토리지, 개발 파이프라인 등 별도로 구축 > 다른 마이크로 서비스와 무관, 독립 > 통신? 표준화된 인터페이스 -> restful API 마이크로서비스 아키텍쳐의 이점 > 빠른 개발 속도 : 개발 언어 선택 자유로움, 서비스 팀의 역량만으로 가능 > 빠른 배포 속도 및 병렬 배포 : 각 마이크로서비스간 독립된 배포 파이프라인(CI/CD) > DevOps팀과 통합된 운영 : 서비스에 대한 Ownership > 확장성, 가용성 : 마이크로서비스 특성에 맞는 확장성/가용성 설계 > 비즈니스 도메인과 밀접하게 연결 : Lean Cycle(빠르게 비지니스 요건 충족) 마이크로서비스 아키텍쳐 공.. DevOps BootCamp/AWS 2023.04.19
도메인 연결과 CDN 및 HTTPS 적용 1. Certificate Manager를 통한 도메인 인증서 발급 > 사용하고 싶은 클라우드 서비스가 있는 리전에 인증서를 만들어야 한다 예) 서울 리전 1. AWS 홈페이지에 접속 > 로그인 > 오른쪽 상단 서울 클릭 > 자기가 쓰고 싶은 리전 선택 2. 인증서 발급 후 > Route53에 도메인을 생성 > CNAME 데이터를 DNS 클라우드인 Route 53에 생성 했던 도메인 레코드에 등록 ※ 별표(*)는 도메인 이름의 맨 왼쪽에 와야 하며 하나의 하위 도메인 수준만 보호할 수 있음 > *.sanghyup.click는 api.sanghyup.click을 보호할 수 있음 > https로 접속 가능 ※ Route 53은 도메인 네임을 바꿔 주는 클라우드 서비스로 hhtp > https로 바꿔서 접속하.. DevOps BootCamp/AWS 2023.04.19
Route 53 Route53 : 관리형 DNS(Domain Name Service) 서비스 > 사용자의 요청을 EC2 인스턴스, ELB 로드밸런서, S3 버킷 등 AWS 내의 인프라에 연결 > AWS 외부의 인프라에도 연결 시킬 수 있음 > 리전과 독립적으로 작동하기 때문에 다수의 리전을 교차해 연결 > 다수의 리전과 VPC간의 DNS 주소변환도 가능 > 퍼블릭 DNS 기록 관리 기능 외에도 도메인 등록, 신규 도메인을 위한 DNS 생성, 기존의 도메인에 DNS 기록 전송 등 다양한 기능을 제공 ✯ Route53이 지원하는 주요 DNS 기록 타입 A(주소기록) AAAA(IPv6 주소기록) CNAME(캐노니컬 네임 기록) CAA(인증 권한 증명) MX(메일 교환 기록) NAPTR(네임 권한 포인터 기록) NS(네임 서버.. DevOps BootCamp/AWS 2023.04.18