serverless에 속하는 대표적인 서비스로 별도의 물리적인 서버없이 인스턴스 상에서 돌아가는 것이 아닌 소스코드, 함수 만을 등록하여 서버가 서비스되도록 하는 방식.
앞서 학습한 EC2, Docker 기반 4gate, beanstalk 이외에 간편한 서비스특정 이벤트 발생 시 별도 서버 구성 없이 간단한 소스 코드로 application 실행하는 서비스
Docker 기반 aws 서비스
- hypervisor 기술로 한 pc 내 여러 어플리케이션 사용 (가상화)
- kubernetes를 통해 여러 docker(container)의 문제인 복잡도를 낮추도록 함.
결론적으로, 서비스를 위해서 docker를 사용해야만 가용성이 늘어남을 알 수 있다.
docker운영을 위해 docker file을 작성하고, 작성된 file을 빌드해서 image화 후 container 생성되는 구조.
- image : 컨테이너 생성 시 필요한 요소로 컨테이너 목적에 맞는 바이너리와 의존성이 설치되어 있고, 여러 계층으로 된 바이너리 파일로 존재함.
- container : 호스트와 다른 컨테이너로부터 격리된 시스템 자원과 네트워크를 사용하는 프로세스로 이미지는 읽기 전용으로 사용하여 변경사항은 컨테이너 계층에 저장한다.
-> 컨테이너에서 무엇을 하든 이미지에는 영향을 안줌docker 주요 명령어로는 다음이 존재한다.
container 생성 및 실행 : run / 중지 : stop / 실행 : start / 재실행 restart
container 확인 : ps / 삭제 : rm
container log 확인 : logs / container에 명령어 수행 : exec
image 확인 : images / 삭제 : rml / 다운로드하기 : pull / 업로드하기 : push / 태그 저장하기 : tag🎈 dockerfile
- FROM : 베이스 이미지 설정 <이미지 이름>:<태그> 형식으로 설정
- METATINER : 메인테이너 정보
- RUN : 셀 스크립트 혹은 명령 실행. (이미지 생성 시 실행)
- CMD : 컨테이너 시작 시 실행할 파일 혹은 셀 스크립트
- EXPOSE : 호스트와 연결할 포트 번호
- WORKDIR : CMD에서 설정한 실행 파일이 실행될 디렉터리
- ENTRYOINT : 실행할 자료 파일 지정
예시는 다음과 같다.
리소스 모니터링 가능한 서비스
대표적인 기능으로는 대시보드로 리소스 상태 평가 및 visualization.
Docker hub에 이용했다고 하면, AWS 내 이미지를 저장하는 방법
이미지 관련된 것을 저장하는 repository를 ECR, ECR 저장된 이미지 기반 가상화된 서비스를 제공하는 것이 ECS
절차는 다음과 같다.
1. 우선 ECR에 접근할 수 있는 권한인 ecr-fullaccess 가 필요하다.
2. 이후 원하는 이미지를 tag, push하여 업로드 후 원하는 서버에서 실행시키기
3. 각 별도의 태스크 생성(ECR에 등록된 이미지 URI 활용해)
4. 서비스 생성 (패밀리 지정, 이름 지정)
5. EC2에 존재하는 ELB를 구성하여 포트 연결해 서비스 제공
-> 최종적으로 ECS 이용 시 ELB를 통해 생성 후 연결하여 사용한다! 추후 beanstalk없이 docker로 연결하여 사용 가능
SW 개발, 운영의 합성어로 agile한 방식으로 프로젝트를 진행함에 있어 용어가 등장하게 되었다.
기존 (개발, 운영)이 따로 이루어졌다면 현재 개발자가 인프라 구축 및 운영까지 진행하며 해당 직무가 등장하고 성장 중에 있다.
위와 같이 인프라를 구축할 줄 알아야 함...