오늘의 학습 주제
1. Docker
2. ECS/ECR
3. Lambda
4. ApiGateway
5. CloudWatch
6. Devops
1. Docker
1. Docker
- Docker는 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼
- Docker는 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하며, 이 컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 모든 것이 포함
- Docker를 사용하면 환경에 구애받지 않고 애플리케이션을 신속하게 배포 및 확장할 수 있으며 코드가 문제없이 실행될 것임을 확신할 수 있다.
- 참고 : Docker를 더 편리하게 사용하기 위해 k8s를 이용한다.
설명 링크 : https://aws.amazon.com/ko/docker/
- Docker File
- Docker Image
- 이미지는 컨테이너를 생성할 때 필요한 요소로 컨테이너의 목적에 맞는 바이너리와 의존성이 설치되어 있음
- 여러 개의 계층으로 된 바이너리 파일로 존재
- Docker Container
- 호스트와 다른 컨테이너로부터 격리된 시스템 자원과 네트워크를 사용하는 프로세스
- 이미지는 읽기 전용으로 사용하여 변경사항은 컨테이너 계층에 저장
- 컨테이너에서 무엇을 하든 이미지는 영향 받지 않음
- 이미지를 실행시키면 컨테이너화 된다.
- docker run할 때, 포트를 서로 맵핑해줘야 한다(=port forwarding).
- Docker 명령어
- container 생성 및 실행 관련 명령어
container 생성 및 실행 : run
container 중지 : stop
container 실행 : start
conatiner 재실행 : restart
- container 관리 관련 명령어
container 확인 : ps
container 삭제 : rm
- container 실행 관리 관련 명령어
container log 확인 : logs
container에 명령어 수행 : exec
- image 관리 관련 명령어
image 확인 : images
image 삭제 : rmi
image 다운로드하기 : pull
image 업로드하기 : push
image 태그 지정하기 : tag
- Docker-compose
- docker-compose를 이용하면 여러 개의 docker를 띄울 수 있다.
2. ECS/ECR
3. Lambda
4. ApiGateway
5. CloudWatch
6. Devops
1.DevOps
- 데브옵스는 소프트웨어의 개발과 운영의 합성어로서, 소프트웨어 개발자와 정보기술 전문가 간의 소통, 협업 및 통합을 강조하는 개발 환경이나 문화
2. DevOps 엔지니어
- 올바른 DevpOps 문화를 위해 서비스 혹은 SW LifeCycle 에서 반복적인 일들을 자동화하고, 기술적 문제 혹은 팀의 차이를 기술적으로 예방하고, 해소시키거나 사람
3. MLOps
- 기계학습 모델을 개발, 배포, 모니터링하는 과정을 자동화하고 최적화하여 기업 환경에서의 신속한 구현과 지속적인 개선을 지원하는 관행
4. Datapipeline