-
aws - ECS, Docker, DynamoDB, NoSQL, System Architecture DesignCloud/aws 2022. 6. 20. 10:08
aws ECS (Elastic Container Service)
- 도커, 쿠버네티스 관련 서비스
- 가상머신(EC2)을 제공하는 것이 아니라 컨테이너만 제공함
- EC2보다 가격이 저렴한 편
- 웹서비스 등 한 가지 서비스만 하는 경우에 적합
구성요소
- 클러스터 : 도커 컨테이너를 실행할 수 있는 가상의 공간, 논리적 단위
- 클러스터에 연결된 EC2 인스턴스를 컨테이너 인스턴스라고 합니다.
- 작업 : 컨테이너를 실행하는 단위
- 작업 정의 : 도커 컨테이너를 실행하기 위해 정의한 도면
- 서비스 : 작업을 하나의 오케스트레이션 단위로 묶는 것
- 컨테이너 인스턴스
ECS를 검색해줍니다. ECS에 대한 설명 시작하기를 눌러줍니다. 클러스터 생성을 누르지 않고 시작하기를 누르는 이유
- ECS가 실행되려면 VPC, Subnet, Security Group 등을 모두 설치해야 동작하므로 시작하기를 눌러 *Fargate를 사용합니다.
*Fargate : ECS와 EKS를 기반으로 작동하는 서비스 (마법사)
- 람다 서비스보다 저렴하지만 EC2보다 비싼 편
Fargate를 사용하면 aws람다와 같이 추가적인 관리 없이 애플리케이션 실행이 가능
sample-app을 선택해줍니다. 로드 밸런서 유형 Application Load Balancer 체크 클러스터의 이름을 설정해줍니다. 생성 중인 화면 생성 완료, 서비스 보기를 눌러줍니다. 클러스터가 실행 중인 것을 확인할 수 있습니다. 클러스터를 클릭해줍니다. 작업, 작업 정의 등을 확인할 수 있습니다. 작업을 눌러줍니다. 아래의 네트워크 탭에 퍼블릭 IP를 복사합니다. 주소 창에 입력하면 Amazon ECS Sapple App을 확인할 수 있습니다. 실습
Docker Hub Container Image Library | App Containerization
We and third parties use cookies or similar technologies ("Cookies") as described below to collect and process personal data, such as your IP address or browser information. You can learn more about how this site uses Cookies by reading our privacy policy
hub.docker.com
완성된 형태의 Docker 이미지를 다운로드해서 가져오는 방식
아래 practice로 저는 이미 만들었지만 처음의 상태는 Custom으로 되어있고 내용은 비어있습니다. 클릭하고 구성을 눌러줍니다. 이름을 넣어주고, 이미지를 입력해줍니다. 메모리 제한은 MiB 단위로 입력해줍니다. 로드 밸런서 유형 Application Load Balancer 체크, 포트는 80으로 입력해줍니다. 위와 같이 작업 - 네트워크 - Public IP를 입력해주면 Apache2의 Default Page가 표시되는 것을 확인할 수 있습니다. 사용이 잘 되었던 Docker 이미지
- minhona/gnuboard5:0.4
- sagikazarmark/dvwa:latest
DynamoDB
검색창에 DynamoDB를 검색해줍니다. 테이블 생성을 눌러줍니다. 게임의 데이터라고 가정하고 생성해보겠습니다 파티션 키는 유저의 ID이기 떄문에 문자열, 정렬 키는 Level이기 때문에 숫자로 설정합니다.. 기본 설정을 체크하고, 테이블 생성을 눌러줍니다. 성공적으로 테이블 생성 테이블을 눌러서 글로벌 테이블을 누르고 작업 - 항목 생성을 눌러줍니다. 게임의 데이터라 가정했기 때문에 몇 가지의 속성을 더 넣고 값을 입력해줍니다. 저는 3개를 추가했습니다. 추가 설정 - 표 항목 탐색 입력했던 값들이 표시되는 것을 확인할 수 있습니다. 쿼리 검색도 가능합니다. 쿼리 탭 선택 후 test 검색 값이 반환됩니다. *NoSQL
- MongoDB : 대표적인 NoSQL 데이터 베이스 (NoSQL 중에 가장 많이 사용)
- DynamoDB : aws에서 제공하는 NoSQL
NoSQL의 특징
- 데이터 입력시 항목을 추가 가능 (SQL에서 데이터를 입력할 때, 미리 정의되지 않은 항목은 오류 발생 또는 버려짐_
- 없는 데이터는 입력하지 않아도 됨 (Null 허용)
- 데이터 타입은 크게 분류되어 있음 (자세한 설정을 할 필요 없음)
System Architecture Design 실습
사용한 사이트, 이용 시 가입하면 14일간 무료로 사용이 가능합니다.
https://cacoo.comOnline Diagram and Flowchart Software | Cacoo
Online diagram software to create and securely share flowcharts, wireframes, UML models, network diagram and more. Start with a Free account!
cacoo.com
작성 예시 : 로드밸런서(NLB)는 Public Subnet을 배치, 웹서버는 Private Subnet에 배치, DB는 RDS를 사용, 백업은 S3에 백업
템플릿을 선택해줍니다. AWS Architecture Diagram를 선택했습니다. 원하는 도구를 넣을 수 있습니다. 한 번 만들어 보았습니다. 'Cloud > aws' 카테고리의 다른 글
aws - Cloud Watch (0) 2022.06.21 aws - DevOps, Cloud Formation (0) 2022.06.21 aws - IAM (0) 2022.06.17 aws - Auto Scaling, Load Balancer - 오토 스케일링, 로드 밸런서 (0) 2022.06.17 aws - CLI를 이용한 EC2(Ubuntu) 생성 (0) 2022.06.16