[AWS/Docker] AWS/Docker 개요

Hyo Kyun Lee·2022년 7월 18일
0

AWS/Docker

목록 보기
7/20

1. 개요

AWS/Docker는 기본적으로 application의 관리를 효율적으로, 용이하게 하도록 고안된 기술이자 도구이다.

이와 관련한 [application 관리]에는 많은 의미가 담겨져 있는데, 이 중에서 특히 밀접되어 있고 잘 언급되는 개념이 Devops이다.

Development + Operation.
개발 및 배포/관리를 개별로 두지 않고 하나의 프로세스로 관리하자는 방법론이다. 이에 대해 소요되는 시간 및 비용을 감소할 수 있어 application 유지보수에 효율성을 향상시킬 수 있다.

2. AWS/Docker의 필요성

기존 IDC 방식은 Server 운용이 필요할 경우 직접 물리적인 Server를 구입하고, 이를 유지보수까지 해야하였기 때문에 비용 및 서비스 제공 측면에서 비효율적인 부분이 많았다.

이를 보완하기 위해 가상머신이나 클라우드 컴퓨팅 등을 비롯하여 AWS, Docker가 탄생하게 되었다.

AWS는 client의 application을 독립적인 공간에서 네트워킹 및 운영이 가능하도록 하나의 장소, 컨테이너를 제공한다. 이러한 컨테이너 환경의 제어를 효율적으로 할 수 있도록 Docker가 해당 기반을 제공하여 준다.

3. AWS 개요(종류)

  • Server
    ㄴ EC2, VPC(application이 실행되는 독립적인 공간)
    ㄴ lambda(서버 프로비저닝을 할 필요없이 코드를 실행할 수 있고, 사용한 컴퓨팅 비용을 지불)

  • Storage
    ㄴ S3(AWS에서 제공하는 가장 대표적인 데이터 저장 공간 서비스)
    ㄴ EBS(S3 등이 존재해야 하는 Volume, 가용영역 등을 제공)

  • DB
    ㄴ RDS(MySQL, MariaDB 등 관계형 데이터베이스에 대한 엔진 제공)
    ㄴ DynamoDB (NoSQL 엔진, 요청이 많아도 수행시간 감축 가능)
    ㄴ RedShift (속도가 빨라진 RDBMS를 제공, 표준 SQL 사용)
    ㄴ AuroraDB(보안 및 기능이 강화된 DB)

  • Management
    ㄴ Cloud Watch(로깅서비스 제공)

  • Analysis
    ㄴ Kinesis (데이터 실시간 스트리밍 서비스 제공)

4. Docker 개요(장점)

위 AWS가 실행되는 환경을 "제어"할 수 있는 기능을 제공해준다.

  • 각 Container, Server는 독립적인 운용이 가능하다.
  • 이에 따라 동시적인 배포나 버전관리가 가능하고, 서버마다 달라지는 배포구성 및 버전관리를 독립적으로 진행할 수 있다(눈송이 서버)
  • 리눅스 컨테이너 형태로 가상 서버를 이미지화하며, 리눅스 전체에 대한 구성이 아닌 리눅스 상에서 컨테이너별 환경 및 리소스 제공이 가능하다.
  • 각 컨테이너의 독립적인 운용이 가능하므로 배포 및 설치 측면에서 확장성이 유리하다.

0개의 댓글