
- Docker
- ECS / ECR
- Lambda
- ApiGateWay
- CloudWatch
- Devops

소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하며, 이 컨테이너안에 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 모든 것을 포함시켜 환경에 구애받지 않고 애플리케이션을 신속하게 배포 및 확장할 수 있게 해주는 소프트웨어 플랫폼이다. 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있게 되는 장점이 있다.

Docker는 컨테이너를 위한 운영 체제입니다. 가상 머신이 서버 하드웨어를 가상화하는 방식과 비슷하게(직접 관리해야 하는 필요성 제거) 컨테이너는 서버 운영 체제를 가상화합니다. Docker는 각 서버에 설치되며 컨테이너를 구축, 시작 또는 중단하는 데 사용할 수 있는 간단한 명령을 제공
- 도커를 사용하면 다음과 같은 이점을 챙길 수 있다.


도커의 기본적인 원리는 먼저 Docker File을 작성한 뒤 이를 BUILD하여 Docker Image를 만든다. 이 Docker Image를 이용하여 Docker Container를 만들게 된다.
여기서 Docker Image란 컨테이너를 생성할 때 필요한 요소로 컨테이너의 목적에 맞는 바이너리와 의존성이 설치되어 있다. 여러 개의 계층으로 된 바이너리 파일로 존재한다.
Docker Container는 호스트와 다른 컨테이너로부터 격리된 시스템 자원과 네트워크를 사용하는 프로세스로 이미지는 읽기 전용으로 사용하여 변경사항은 컨테이너 계층에 저장한다. 이는 즉, 컨테이너에서 무엇을 하든 이미지는 영향을 받지 않는다는 것을 말한다.
컨테이너 생성 및 실행 관련 명령어
container 생성 및 실행 : run
contianer 중지 : stop
container 실행 : start
container 재실행 : restart
컨테이너 관리 관련 명령어
container 확인 : ps
container 삭제 : rm
컨테이너 실행 관리 관련 명령어
container log 확인 : logs
container에 명령어 수행 : exec
image 관리 관련 명령어
image 확인 : images
image 삭제 : rmi
image 다운로드 하기 : pull
image 업로드하기 : push
image 태그 지정하기 : tag


ECR(Amazon Elastic Container Registry) 은 어디서나 애플리케이션 이미지 및 아티팩트를 안정적으로 배포할 수 있도록 뛰어난 성능 호스팅을 제공하는 완전관리형 컨테이너 레지스트리이다. CLI를 사용하여 도커 이미지, Open Container Initiative(OCI) 이미지 및 OCI 호환 아티팩트를 푸시, 풀 및 관리할 수 있다.

ECS(Amazon Elastic Container Service) 는 테이너화된 애플리케이션이 더 효율적으로 배포하고 관리하고 규모를 조정하는 데 도움이 되는 완전관리형 컨테이너 오케스트레이션 서비스로 AWS 환경과 긴밀하게 통합되므로 Amazon ECS Anywhere의 고급 보안 기능을 통해 클라우드와 온프레미스에서 컨테이너 워크로드를 손쉽게 실행할 수 있다.
유연한 컴퓨팅 옵션 전반에서 애플리케이션을 시작, 모니터링 및 규모 조정하여 애플리케이션에 필요한 다른 지원 AWS 서비스와 자동으로 통합한다.
사용자 지정 크기 조정 및 용량 규칙 생성과 같은 시스템 작업을 수행하고 애플리케이션 로그 및 원격 분석의 데이터를 관찰하고 쿼리한다.


서버리스의 대표적인 서비스 중 하나로, 별도의 물리적인 서버 없이 소스 코드(함수)만 등록해서 서버가 서비스를 할 수 있도록 해주는 서비스이다. 이벤트에 대한 응답으로 코드를 실행하고 컴퓨팅 리소스를 자동으로 관리하는 컴퓨팅 서비스


Amazon API Gateway는 규모와 관계없이 REST 및 WebSocket API를 생성, 게시, 유지, 모니터링 및 보호하기 위한 AWS 서비스이다. API 개발자는 AWS 또는 다른 웹 서비스를 비롯해 AWS 클라우드에 저장된 데이터에 액세스하는 API를 생성할 수 있다. API Gateway API 개발자는 자체 클라이언트 애플리케이션에서 사용할 API를 생성할 수 있습니다. 또는 타사 앱 개발자가 API를 사용하도록 제공할 수도 있다
API Gateway는 다음과 같은 RESTful API를 생성한다.
API Gateway는 다음과 같은 WebSocket API를 생성합니다.

애플리케이션을 모니터링하고, 성능 변화에 대응하고, 리소스 사용을 최적화하며, 운영 상태에 대한 인사이트를 제공하는 서비스. AWS 리소스 전반의 데이터를 수집하여 전체 시스템의 성능을 파악할 수 있도록 하고, 사용자가 경보를 설정하고, 변화에 자동으로 대응하고, 운영 상태에 대한 통합된 뷰를 볼 수 있도록 도와준다.
작동방식
Amazon CloudWatch는 기본적으로 지표 리포지토리이다. Amazon EC2와 같은 AWS 서비스는 지표를 리포지토리에 저장하므로 이러한 지표를 기반으로 통계를 검색할 수 있다. 사용자 지정 지표를 리포지토리에 저장하면 해당 지표에 대한 통계도 검색할 수 있다.
지표를 사용하여 통계를 계산한 다음, CloudWatch 콘솔에서 데이터를 그래픽으로 나타낼 수 있다. 특정 기준이 충족되었을 때 Amazon EC2 인스턴스를 중지, 시작 또는 종료하도록 경보 작업을 구성할 수 있고, 또한 사용자를 대신하여 Amazon EC2 Auto Scaling 및 Amazon Simple Notification Service(Amazon SNS) 작업을 시작하는 경보를 생성할 수 있다.


데브옵스란 소프트웨의 개발(Develop)과 운영(Operation)의 합성어로서, 소프트웨어 개발자와 정보기술 전문가 간의 소통, 협업 및 통합을 강조하는 개발 환경이나 문화를 말한다. DevOps의 특징으로는 다음과 같은 것들이 있다.
문화 : 사람(팀, 인원, 가치, 의사소통)
DevOps를 통해 하나의 문화를 만들어 나간다.
자동화 : 일(프로세스, 방법론)
자동화를 통해 효율성과 빠른 속도를 지향.
측정 : 서비스(서비스의 가치, 성격)
지표를 측정하여 지속적으로 개선.
공유 : 자원(H/W, S/W, 기술, 도구)
공유를 통해 함께 발전
축적 : 시간(일정, 변경 가능성, 회복탄력성, 예측)
기록을 축적하여 자산을 만들어 나간다.
<역량>
Soft Skill
소프트 스킬은 사회 기술, 의사소통 기술, 성격 또는 성격 특성, 태도, 직업 속성, 소셜 인텔리전스 및 감성 인텔리전스 지수 등의 조합으로, 사람들이 환경을 탐색하고 다른 사람들과 잘 일하는 능력을 이야기한다.
Technical Skill
기술적 스킬은 특정한 일을 효과적으로 수행하는 지식과 능력을 이야기 한다. IT 영역에서는 프로그래밍 언어 작성 능력, SW 디자인, 데이터베이스 및 서버관리 등 특정한 기술의 지식과 수행능력을 예로들 수 있다.
프로그램 : Go, Python 등 능숙하게 다룰 수 있는 언어
운영체제 : Linux와 같은 운영체제를 능숙하게 다루는 것과 개념이 필요
서버관리 : 서버를 관리하는 기술과 운영 지식을 통해 신뢰할 수 있는 서비스를 구축
오픈소스 : 인프라를 이루는 SW들을 이해하고, 자동화 도구들을 다룰 수 있어야 한다.
클라우드 : 퍼블릭 클라우드를 능숙하게 다루고, 직접 구축 및 설계를 할 수 있어야 한다.

인공지능과 빅데이터가 핫한 이슈와 기술로 부상하면서 DevOps와 Data Engineering이 연결된 MLOps와 같은 개념도 생겼다. 중요한 역할로 데이터 파이프라인을 구축하는 역할이 있다.

