20-3 AWS 활용, 배포 환경의 설정
AWS
(Amazon Web Service)
아마존에서 제공하는 클라우드 컴퓨팅 서비스 플랫폼.
여러 가지 응용의 실현에 필요한 infrastructure를 on-demand 로 서비스
클라우드 인프라의 이용
장점
- 유연한 이용, 안정적 서비스, 다중화와 스케일링
- Pay-as-you-gop, GCO (total cost of ownership)절감
- 다양한 도구 제공, 풍부한 문서 및 참고자료
단점
- 생각보다 비용이 만만하지 않을 수 있음
- 제대로 사용하지 못해도 리소스가 이용되고 있으면 과금됨
- 활용법을 익혀야 함
- 익숙해지지 않으면 다소 복잡하고 생소하게 느껴질 수 있음 (활용성 하락)
EC2
(Elastic Compoute Cloud)
AWS에 의하여 운용되고 있는 네트워크 상에 존재하는 가상의 서버
- 여러 가지의 운영체제로 이루어진 소프트웨어 실행 환경을 선택하여 설치, 운영 가능
- 서버를 구매하고 소프트웨어 설치해서 IDC에 상면한 것과 비유 가능
이용
우리의 (실습)프로젝트에서 EC2활용
- 프로덕션 (스테이징)배포에 이용할 클러스터 제공
- 데이터베이스 (MariaDB)설치하고 운용
- 웹 서버 (Nginx reverse proxy)설치하고 운용
비교 (보다 유연한 서비스 아키텍처 구현을 위해서는)
-> 데이터베이스 RDS (managed relational database service)이용
-> k8s 클러스터의 운용을 위해서는 EKS (elastic kubernetes service)이용
AMI
(Amazon Machine Images)
EC2에서 활용하는 컴퓨터 (파일 시스템) 이미지
- 소프트웨어의 설치 및 구성을 모두 포함하고 있음
- Amazon 이 지원하는 온갖 운영체제의 이미지, AWS와 3rd-pardy 제공 marketplace, 커스텀 이미지 등
ECR
(Elastic Container Registry)
- FE, BE 각각을 컨테이너로 빌드 (이미지 생성)하여 ECR에 등록 (push)
- 프로덕션 및 스테이징 (또는 테스트 환경) 배포를 위하여 이미지 인출 (pull)
S3 (Simple Storage Service)
Bucket 단위로 운영되는 object storage service
- 임의 형태의 데이터(비정형 데이터 포함)를 저장하고 접근, 공유
- AWS Glacier 와 연동 이용하여 데이터 유지의 비용을 절감하고 접근 유연성을 높임
- 프로덕션 및 스테이징 배포에 있어 terraform state 저장에 이용
클라우드 인프라의 이용
- 비용 절감 및 안정성/유연성/확장성 획득을 위하여 많은 기업에서 활용
- Private cloud vs public cloud
- 우리 실습에서는 AWS 를 활용하는 실습을 계획
프로젝트에서 AWS 활용
- EC2 ‒ 응용의 배포/실행을 위한 모든 환경을 하나씩의 인스턴스로 구성
- 그러나 서비스 아키텍처는 k8s 클러스터를 가정하고 있음 -> 어렵지 않은 확장
- 응용의 배포/운용에 필요한 자원을 클라우드에 배치