목록DevOps (186)
devops
CI / CD 지속적 통합(Continuous Integration) Code : 개발자가 코드를 코드 저장소에 Push한다. Build : 코드 저장소로부터 코드를 가져와서 유닛 테스트 후 빌드한다 Test : 코드 빌드의 결과물이 다른 컴포넌트와 잘 통합되는지 확인한다. 지속적 통합의 장점 버그를 일찍 발견할 수 있다. 테스트가 완료된 코드에 대해 빠른 전달이 가능하다. 지속적인 배포가 가능해진다. 지속적 전달(Continuous Delivery) Operate : 서비스에 생길 수 있는 현황을 파악하고 문제를 감지한다. Deploy : 프로비저닝을 진행하고 서비스를 사용자에게 노출한다. Release : 배포 가능한 소프트웨어 패키지(artifact)를 작성한다. 유용한 CI 도구 Jenkins 별..
컨테이너를 만드는 3 요소 Dockerfile - Copy files, Install dependencies, Set environment variables, Run setup scripts Image - Appication(Setting file) Snapshot (변경불가) Container Dockerfile 작성 예시 FROM node:16-alpine WORKDIR /app //WORKDIR는 리눅스에서 CD와 같은 역할, 디렉토리를 생성하거나 해당 디렉토리로 이동 COPY package.json package-lock.json ./ RUN npm ci // install을 한다면 최선버전이 설치되기 때문에 프로젝트 개발버전과 설치버전이 달라질 수 있음 그래서 ci를 사용 COPY index.j..
YAML 구조를 가진 데이터 표현 양식의 종류 중 하나다. 데이터는 다양한 형태로 표현될 수 있다. JSON과 XML도 같은 종류의 표현 양식이다. 이 양식을 활용하는 이유는 데이터를 주고 받을 때 쉽게 이해하기 위해서다. YAML은 최근 많이 사용하는 데이터 형식으로 사람이 읽고 이해하기 쉽다. DevOps에서 다양한 설정 파일들을 YAML 형식으로 많이들 사용한다. 파일 확장자는 .yml .yaml 을 사용한다. YAML의 문법 1) 데이터 정의 key: value 형태로 데이터를 정의한다. 이때 콜론 : 뒤에 키와 값을 구분하기 위해서 공백이 필요하다. 사용가능한 데이터 타입은 Number, String, Boolean이 있으며 문자열 String에 \n, @와 같은 특수문자가 포함된 경우엔 " "..
docker create ecs 후에 모든 context 명령어를 쳐도 'context requires credentials to be passed as environment variables' 에러가 나온다면 default로 전환하여 해결할 수 있다. $ docker --context default context use default 위 명령어를 치자.
마이크로서비스 아키텍처 빠른개발속도 : 개발 언어 선택의 자유로움, 서비스팀의 역량으로 가능 빠른 배포 속도와 병렬 배포 : 마이크로서비스간 독립적 배포 (CI/CD) DevOps팀과 통합된 운영 : 서비스에 대한 오너쉽 확장성과 가용성 : 비즈니스 도메인과 밀접하게 연결 : Lean 사이클 EC2 (Amazon Ec2 Container Service) 별도의 어플리케이션이 필요없는 컨테이너 운영 매니지먼트 모든 규모의 컨텡너 관리 유연한 컨테이너 배치 AWS 플랫폼과 통합 ECS 구성요소 클러스터 : 작업이 실행되는 EC2 인스턴스의 함대 클러스터 관리 엔진 : 클러스터 리소스 및 작업 상태 관리 작업 정의 : 작업에 대한 컨테이너 및 환경의 정의 스케쥴러 : 클러스터 상태를 고려한 작업 배치 작업 :..
Command Docker 정보 docker -v, docker --vesion : 설치된 도커의 버전 확인 docker version docker system info Image 명령어 docker image pull [option] [:tag] ex) docker image pull nginx:latest (최신 버전 nginx 이미지를 다운로드) docker image ls : 도커 이미지 리스트 확인 docker image inspect [:tag] : 도커 이미지 상세 정보 ex) docker image inspect nginx:latest docker search [option] : 도커 허브에 있는 이미지 검색 docker container commit [option] : 해당 컨테이너를 이..
Docker Registry, Repository, Tag 레지스트리(Registry) - 도커 이미지를 관리하는 공간 - 도커 허브를 기본 레지스트리로 설정되어 있다. - 레지스트리는 Docker hub, Private Docker Hub, 회사 내부용 등으로 나뉜다. 레포지토리(Repository) - 레지스트리 내에 도커 이미지가 저장되는 공간 - 이미지 이름이 사용되기도 함 - Github의 레포지토리와 비슷한 역할 태그(Tag) - 같은 이미지지만 버전 별로 내용이 다름 - 해당 이미지를 설명하는 버전 정보를 주로 입력 - 되도록 latest 태그가 붙인 최신 버전을 사용 Docker Copy과 Volume CP(Copy) : Host와 Container 사이에 파일을 복사(Copy) Volum..
2013년에 등장한 도커(Docker)는 Docker Hub S/W 저장소와 함께 빠르게 성장하였고, 개발자들으느 쉽게 application을 포장하고 컨테이너 방식으로 실행할 수 있게되었다. 컨테이너는 쉽게 말해서, 실행 환경에 구애받지 않고 Application을 실행할 수 있다 컨테이너 기술은 어플리케이션을 컨테이너 내에서 구성한다. 그래서 컨테이너에서 실행 중인 어플리케이션은 어떠한 의존성도 공유하지 않고, 각자 고유의 의존성을 포함하고 있다. 이는 컨테이너가 실행환경과 격리되어 있기 때문에 가능하다. 컨테이너의 격리 요소 1. 프로세스(Process) 특정 컨테이너에서 작동하는 프로세스는 기본적으로 그 컨테이너 안에서만 액세스할 수 있으며, 컨테이너 안에서 실행되는 프로세스는 다른 컨테이너에 영..
Certificate Manager AWS의 내부 리소스에 사용할 공인 및 사설 SSL/TLS 인증서를 손쉽게 프로비저닝, 관리 배포할 수 있도록 지원하는 서비스다. AWS Certificate Manager는 SSL/TLS 인증서를 구매, 업로드, 갱신하는데 드는 시간과 수동 프로세스를 처리해준다. ACM 1) 사용할 TLS?SSL 인증서를 AWS 계정으로 요청하거나 가져온다. 2) DNS 또는 이메일 검증을 통해서 요청된 인증서의 도메인 소유권을 검증하여 인증서 발급을 완료한다. 3) ELB, CloudFront 등의 다양한 AWS 서비스에서 새로 바급하거나 가져온 인증서를 사용한다. IAM(Identity and Access Management) AWS 서비스와 리소스에 대한 액세스를 안전하게 관리..
EC2에서 MySQL - DB 인스턴스의 완전한 통제권을 원할 때 - 백업, 복제, 클러스터링 등 완전한 통제권을 원할 때 EC2 x RDS - 비즈니스 본연의 가치집중 - DB 관리 업무를 원하지 않을 때 - 백업 및 복원 자동화를 원할 때 - DB 관리 역량이 부족할 때 단순 조회할 때는 복제본만, 읽기 쓰기에는 왼쪽 마스터 데이터베이스를 사용한다. 쇼핑몰로 예를 들면, 단순 옷구경 -> Replicate DB, 옷후기와 주문에는 Master DB를 사용하여 효율적인 관리가 가능. Redshift 를 확인해보자. 로드밸런서는 하나 이상의 listener가 있어야한다. 로드밸런서는 무조건 타겟그룹으로 보낸다 리스너를 통해서 health check를 지속적으로 하고 있다. (target group안에있음..