채록채록
[AWSCloudClubs] ECS, ERS, EKS, CI/CD, Jenkins, Github Action 본문
잘 안써봐서 용어들조차 낯설었는데 이번 핸즈온을 통해 용어도 확실히 정리하게 되어서 좋았다. 이런 용어들은 특히 꼭 github action, CI/CD를 내가 직접 써야만 등장하는게 아니라 ACC Student Community Day의 세션같은 곳에서도 계속 등장해서 간접경험을 쌓으려면 이런 용어들을 알고 그 내용을 이해하는 것이 중요했기 때문이다.
AWS ECS : Elastic Container Service
- 컨테이너화된 애플리케이션을 더 쉽게 배포/관리/규모조정할 수 있는 완전관리형 컨테이너 오케스트레이션 서비스
- 애플리케이션을 시작, 모니터링 및 규모 조정하여 애플리케이션에 필요한 다른 지원 AWS 서비스와 자동으로 통합
- 이게 제일 신기했다..
- 사용자 지정 크기 조정 및 용량 규칙 생성과 같은 시스템 작업을 수행하고 애플리케이션 로그 및 원격 분석의 데이터를 관찰하고 쿼리
- 로그 남기는게 정말 중요하구나를 계속 깨닫게 된다.
- 애플리케이션을 시작, 모니터링 및 규모 조정하여 애플리케이션에 필요한 다른 지원 AWS 서비스와 자동으로 통합
- 개발자가 Docker(컨테이너화된 애플리케이션을 만들고 관리하는데 사용되는 플랫폼)를 사용해서 애플리케이션/애플리케이션 종속성을 포함하는 독립적인 컨테이너 이미지를 만든다. 이러한 컨테이너 이미지는 호스트 os에서 실행되고, docker engine이라는 도구를 사용해서 컨테이너화된 애플리케이션을 관리하는데…
- AWS ECS는 이러한 컨테이너 이미지를 실행/관리하고 다른 AWS 서비스와 자동으로 통합해주는 것.
비슷한 예로, ERS가 있다.
AWS ERS : Elastic Container Registry
- 애플리케이션 이미지/아티팩트를 안정적으로 배포할 수 있도록 뛰어난 성능 호스팅을 제공하는 완전관리형 컨테이너 레지스트리
- docker hub와 비슷하긴한데 자동암호화/엑세스 제어 등 이런저런게 더 좋다고 한다.
- 지금 당장 개인 수준에선 쓸 일이 없고 훗날 회사가서 아는 척 하기 좋을듯 ㅎㅎ
AWS EKS : Elastic Kubernetes Service
- AWS 클라우드/온프레미스 데이터 센터에서 Kubernetes를 실행하는 데 사용되는 관리형 Kubernetes 서비스
- AWS Fargate : 서버리스 컨테이너 배포
- AWS EC2 : 클라우드 컴퓨팅 서비스
Jenkins
- 컴파일러 오류 검출, 자동화 테스트 수행, 정적 코드 분석으로 인한 코딩 규약 준수 확인, 프로파일링 툴을 이용한 성능 변화 감시, 결합 테스트 환경에 대한 배포 작업
- 코딩 규약 준수 확인도 해주는 줄은 몰랐다. 이런 알고리즘은 어떻게 짜는걸까?…
- 프로파일링 툴은 잘 모르겠다. 나중에 더 자세히 알아봐야할 것 같다.
Github Action
- Workflows : 하나 이상의 작업을 실행하는 구성 가능한 자동화 프로세스
- Events : workflow를 트리거하는 사용자 지정 이벤트
- Jobs : workflow에서 하나의 처리 단위
- Steps : 작업 구성단위. Job은 하나 이상의 Step으로 구성
- Actions : 자주 반복되는 작업을 용이하도록 하기 위한 작업 공유 메커니즘
- <세이노의 가르침>에서도 강조되었던 반복되는 작업을 어떻게 줄여서 효율성을 높일지 계속 공부하고 노력하라는 말이 생각났다.
- Runners : 트리거될 때 workflow를 실행하는 서버
- 단순히 서버라는 단어로만 뭉뚱그려 써왔는데 이번에 풀스택서비스네트워킹에서 zmq도 배우면서 worker와 server도 구분해서 배우고 runner도 배우게 되었다. 적절한 상황에서 이 용어들을 알맞게 쓰는 엔지니어가 되고 싶다.