AWS docker 환경 구성시 필요한 개념 정리

2021. 6. 13. 14:26카테고리 없음

1. 알아야 할 용어들 

 

??:  ECR -> ECS -> code deploy로 호출하는 개념이라고 하셔서

 

ECR: Elastic Container Registry

컨테이너 이미지와 아티팩트를 손쉽게 저장, 관리, 공유 및 배포 할수 있는 완전 관리형 컨테이너 레지스트리다.

ex) repositary 역할 

 

ECS(Elastic Container Service):  EC2 인스턴스에서 컨테이너 실행을 관리하는 관리형 서비스

 

 

배포 전략 

 Blue Green 배포 (무중단 배포를 위한 배포 전략!) 

- AWS Elastic Beanstalk 환경에 서로 별개지만, 완전히 동일한 2개의 환경(블루,그린)으로

애플리케이션을 개발 및 배포하면 가용성이 높아지고 위험은 낮아진다. 

 

Blue Green 처리 순서

0. 블루 환경은 통상적으로 라이브 트래픽을 처리하는 운영환경이다. 

1. CI/CD 파이프라인 아키텍처는 라이브 Elastic Beanstalk 환경(블루)의 복제본 (그린)을 생성한다.

2. 파이프라인이 두 환경 사이에서 URL을 전환한다.(블루 -> 그린)

3. 라이브 트래픽은 임시 복제본 환경(그린)에서 처리된다. 블루 환경으로 배포되고 코드 검토와 코드 테스트가 완료되면 파이프 라인은 그린과 블루 환경 사이의 URL을 다시 전환한다. (그린->블루)

4. 그러면 다시 블루 환경에서 라이브 트래픽 처리가 시작되고 그린 환경은 폐기 된다.

 

출처: https://aws.amazon.com/ko/quickstart/architecture/blue-green-deployment/

 

  - 도커는 리눅스 커널을 사용하므로 컨테이너 인스턴스로 윈도우 계열을 사용 할 수없다.

  - 여러 작업을 하나의 OS 에서 실행하므로 포트번호가 중복되지 않게 주의할 필요가 있다. 

 

클러스터 : 컨테이너 인스턴스의 그룹 , 컨테이너를 배포한다.

 

EKS:  컨테이너를 효율적으로 관리하는 오케스트레이션 서비스 

Fargate: 워크로드를 실행하는 환경을 제공, 관리하는 서비스 이다. (= 프로비저닝) 

  - 마이크로서비스는 느슨한 결합을 권장하나, 로컬통신이나, 데이터 공유가 적합한 경우도 있다. 

  - 여러컨테이너간 이러한 요구가 있는 경우는 한 pod 에 포함 시켜야 한다. 

 

AWS fargate 를 이용하면 클릭한번으로 배포 할수있다.

레포지토리에 저장한 데이터와 인터넷으로 전송한 데이터 양에 대해 요금을 지불하는 방식이다.

 

Aurora PostgreSQL :

오로라는 관리형 관계형 데이터 베이스 엔진이다.

Aurora PostgreSQL는 PostgreSQL을 즉시 대체할 수 있고 새로 배포하는 PostgreSQL이든, 혹은 기존에 배포한 PostgreSQL이든 상관없이 설치, 조작 및 조정이 간편하고 비용 효율적이기 때문에 비즈니스와 애플리케이션에 더욱 많은 시간을 투자할 수 있다.

 

??: 실제로 scale out 감안해서 fargate용으로 설정한 IP대역이 있을꺼야.

 

Scale out : 접속된 서버의 대수를 늘려 처리 능력을 향상 시키는 것이다.

수평 스케일로 불리기도 한다. 

 

??: mli 개발서버 -> cloud front -> S3 방식 

 

Cloud Front : html, css, js 및 이미지 파일과 같은 정적및 동적 웹 콘텐츠를 사용자에게 더빨리 배포하도록 지원하는 웹서비스다. 

엣지 로케이션이라는 데이터 센터의 전세계 네트워크를 통해 컨텐츠를 제공한다.

 

cloudFront 를 통해 서비스하는 콘텐츠를

사용자가 요청하면 지연시간이

가장낮은 엣지 로케이션으로 요청이 라우팅 되므로

최고의 성능으로 콘텐츠가 제공된다. 

 

Amazon S3 (Simple Storage Service): 데이터를 저장하고 검색할 수있도록 구축된 객체 스토리지

서비스 

 

SVN: 형상관리 소스 툴 

쓰임새는 git 과 비슷하나 작동방식이 다르다.