[피플펀드] ECS 파헤치기


ECS 파헤치기 - 김한울

1년반동안 올린 서비스 5개

앱 API 서버

개인 대출 촉진 플랫폼

콜센터

모니터링 센트리

개인 대출 심사 서비스 CSS 2.0

맨땅에 서비스 올리기

  1. 로케일
  2. 리눅스 로컬 시간

…

이중화해야함.

1번부터 다시 함.

그래서 문서화의 중요성을 알게 됨.

똑같은 삽질을 하지 않기 위해 환경까지 나누어 줌.

근데 서버를 늘려야 할 때마다 1-6까지 계속해야함.

도커

문서화한 매뉴얼을 도커파일에 적고, 돌리면 자동으로 실행됨.

  1. 매뉴얼이 없어졌다 ( 도커파일 자체가 메뉴얼 )
  2. 이미지를 사용해서 간결하다.
  3. -엔진엑스, DB는 어디에?

따로 따로 명령어를 실행하고, 링크해야됨.

도커컴포즈

컨테이너들을 한번에 정리함

  1. 번거로운 서비스별 빌드, 런 절차가 없어졌다.
  2. 볼륨, 링크, 포트 등 명세를 yml에 간결하게 할 수 있다.
  3. -도커 컴포즈 호스트 OS가 있어야함.

ECS

비슷한 걸로 ECS, 도커스웜, 쿠버네이츠가 있음.

task definition - docker.compose.yml 과 비슷

task - 테스크 데피니션에서 정의된 대로 배포(실행)된 컨테이너 세트

서비스 - 태스크들의 모음, ELB, Scale-Up 셋팅

컨테이너 인스턴스 - EC2 인스턴스

클러스터 - 태스크를 실행하기 위한 컨테이너 인스턴스의 논리적 그룹

  1. 따로 호스트를 관리해줄 필요가 없다.
  2. 마우스 하나로 혹은 커맨드로 쉽게 스케일업이 가능하다.
  3. -환경변수관리는 어떻게하지??

도커파일에 넣자니 보안에 취약하고

호스트에 넣자니 ECS를 쓸 필요가 없잖아..?

fabric + Parameter Store

파라미터 스토어 - 간편하게 액세스할 수 있는 데이터 관리 및 암호관리를 위한 안전한 스토리지

패브릭 - 파이썬으로 커맨드라인 제어하는 툴

  1. EC2 meta service - 호스트 권한 부여 -> ECS agent
  2. ECS agent - ECS task 권한 생성 -> ECS ACS …

  3. 클러스터 내의 모든 환경 변수 통합 관리 가능
  4. 패브릭을 통해 스크립트 언어 대신, 파이썬으로만 제어
  5. IAM을 통해 서비스별로 파라미터 접근 권한 설정 가능





© 2019. by Moonan

Powered by Moonan