ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • aws - ECS, Docker, DynamoDB, NoSQL, System Architecture Design
    Cloud/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을 확인할 수 있습니다.

     

     

    실습

    https://hub.docker.com 

     

    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.com

     

    Online 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

    댓글

Designed by Tistory.