AWS/Docker는 기본적으로 application의 관리를 효율적으로, 용이하게 하도록 고안된 기술이자 도구이다.
이와 관련한 [application 관리]에는 많은 의미가 담겨져 있는데, 이 중에서 특히 밀접되어 있고 잘 언급되는 개념이 Devops이다.
Development + Operation.
개발 및 배포/관리를 개별로 두지 않고 하나의 프로세스로 관리하자는 방법론이다. 이에 대해 소요되는 시간 및 비용을 감소할 수 있어 application 유지보수에 효율성을 향상시킬 수 있다.
기존 IDC 방식은 Server 운용이 필요할 경우 직접 물리적인 Server를 구입하고, 이를 유지보수까지 해야하였기 때문에 비용 및 서비스 제공 측면에서 비효율적인 부분이 많았다.
이를 보완하기 위해 가상머신이나 클라우드 컴퓨팅 등을 비롯하여 AWS, Docker가 탄생하게 되었다.
AWS는 client의 application을 독립적인 공간에서 네트워킹 및 운영이 가능하도록 하나의 장소, 컨테이너를 제공한다. 이러한 컨테이너 환경의 제어를 효율적으로 할 수 있도록 Docker가 해당 기반을 제공하여 준다.
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 (데이터 실시간 스트리밍 서비스 제공)
위 AWS가 실행되는 환경을 "제어"할 수 있는 기능을 제공해준다.