[AWS] AWS 기본적인 서비스들
Elastic => AWS에서 자주 사용되는 용어로 샴푸 엘라스틴...을 떠올리면 편하다. 기본적으로 '탄력있는'을 의미하며, AWS의 특징을 잘 설명해주는 단어라고 볼 수 있다.
EC2(Amazone Clastic Compute Cloud) - 가상 서버로 이 서버의 이미지를 Amazone Machine Image(AMI)라고 하고, 실행된 가상서버는 Instance(인스턴스)라고 표현한다.
ELB(Elastic Load Balancing) - 다수의 EC2의 Front단에 두어 통신을 분산시켜주는 부하 분산 장치이다. AWS의 핵심 서비스이다.
Auto Scaling - 일반적으로 ELB와 함께 사용되며, 부하에 따라 EC2 인스턴스를 늘리거나 줄이는 서비스로, ELB와 사용했을 때 효율이 극대화 된다.
S3(Simple Storage Service) - 온라인 스토리지 서비스로 99.999% 가용성을 특징으로 갖고있다. 스토리지는 가용성고 안정성이 중요한 요소인데 사실상 100%를 자랑하므로 EC2와 함께 대표적인 서비스로 꼽힌다.
Glacier - 빙하라는 의미로, 데이터를 장기 보관하기 위해 사용하는 서비스이다. 이 또한 S3와 동일한 신뢰성을 자랑하는데, 비용이 S3보다 많이 낮다. 그렇다면 왜 S3를 사용하지 않는가? 한다면 Glacier는 말 그대로 장기 보관용이기 때문에 일일 데이터 검색량에 제한이 있고, 만약 저장한 데이터를 3개월 내에 제거하려한다면 비용이 부과된다. 하지만 3개월 후에 삭제하는 것은 그렇지 않다. 이 두 기능만 살펴보더라도 마치 언제 볼지 또는 쓸지 모르지만 막상 버리기엔 아깝거나 불안한 백업 데이터 등 을 던져놓는 서비스인 것 같다.
EBS(Elastic Block Store) - EC2에서 사용할 외장 디스크로 네트워크를 통해 연결되며, 이 스토리지 이미지를 스냅샷 형식으로 S3에 저장하는 것도 가능하다. 유동적으로 디스크를 붙이고 뗄 때 유용할 것이다.
Relational Database Service(RDS) - 데이터베이스 PaaS(Platform as a Service)로 OS부터 미들웨어 패치에 신경쓰지 않고, RDB를 사용할 수 있는 서비스이다. 트랜잭션 로그를 통한 Replication 기능(데이터 저장 및 백업)과 자동 백업 등 여러 편리한 서비스들도 제공한다. 우리가 자주 사용하는 MySQL, Oracle, MariaDB, SQLServer 등 대부분의 RDB를 지원한다.
ElasticCache - 메모리 캐시 시스템 PaaS이다. Redis, Memcachedf를 지원하며, 말 그대로 데이터들을 메모리에만 캐시해 제공하는 시스템이다. 속도가 매우 빠르며 읽기 중심 시스템(SNS, 게임 등) 이나 고속 데이터 처리 시스템에서 자주 사용된다.
Virtual Private Cloud(VPC) - AWS 내부에서 논리적으로 분리된 네트워크를 생성하는 서비스로, 프라이빗 주소로 생성하고 서브넷을 분리해 내부망을 구성할수도있고, Internet Gateway를 연결해 외부와 통신도 가능하므로 한 무리의 네트워크를 구성할 때 자주 사용되는 서비스이다.
Direct Connect - 데이터센터 등 대용량 트래픽을 사용하는 기업에서 On Premise를 AWS에 직접 연결함으로써 안정적으로 전송할 수 있는 서비스로, On Premise와 클라우드를 모두 사용하는 하이브리드 클라우트 형태를 구성할 때 사용하는 서비스이다.
CloudFront - AWS에서 제공하는 CDN(Content Delivery Network, 콘텐츠 전송 네트워크)로 대표 업체로는 Cloud Flare가 있다. (얼마 전 LCK 준결승전에서 CDN에 문제가 생겨 3시간가량 대회가 중단된.. 그 CDN이다.)
Route 53 - AWS의 DNS(Domain Name System, 도메인 이름 시스템)으로 디도스 보호 등으로 네임 서버 안정성을 높이고, 글로벌 서비스에도 장점이 있다.
Simple Queue Service(SQS) - 메시지 큐 서비스로 주로 AWS Lambda 와 자주 조합되며 작업 대기열이라고도 표현한다. 함수형으로 실행되는 Lambda에 작업 간에 큐로 통신을 한다는 느낌인것같다. 아직 이 부분에 대해서는 잘 몰라 추후 예제를 통해 다시 소개한다.
Simple Notification Service(SNS) - 푸시 형태의 메시지 전달 서비스이다. SNS API를 사용해 SNS에 이메일이나 모바일 등 다양한 메시지를 전달하는 서비스이다.
Simple Email Service(SES) - 메일 전송 서비스로, 인증과 통계 서비스도 제공한다.
Identity and Access Management(IAM) - AWS의 계정 관리 서비스, 그룹 계정간에 권한을 설정해 이상한 서비스를 켜거나 끌 수 없게 만들 수 있다. AWS 스터디에서 가장 중요한 기능...
CloudTrail - AWS API 호출을 기록하는 로깅 서비스 이다. AWS 운용할 때 중요한 것들 중 하나이다. 로그 데이터를 분석해 기능 감사하는 것은 매우 중요하다.
CloudWatch - AWS 서비스들을 모니터링할 수 있는 서비스이다. 각 리소스들을 특정 조건을 걸어 감시할 수 있다. 리소스 사용량에 조건을 걸어 예상치 못한 지출을 막을 수 있다.
Clastic Beanstalk - 웹 어플리케이션 서버 PaaS이다. 서버를 구축하지 않고 PHP, Node.js, Python 등 다양한 플랫폼을 이용할 수 있는데 Auto Scaling설정을 통해 확장 및 축소를 자동으로 수행하게 할 수 있다.
Lambda - Serverless 개념으로 서버관리 없이 특정 이벤트가 발생했을때 대응하는 트리거를 코드로 작성할 수 있다. Firebase의 Function과 비슷한 것 같은데 이 또한 조만간 사용해볼 예정이다.
AWS CloudFormation - AWS 환경 구축을 자동화하는 도구로, Json 형식의 템플릿을 작성하면 코드로 환경을 관리할 수 있다.
자주 사용되는 AWS 서비스들을 개인적으로 까먹었을 때 보기 위한 용도로 메모해놓은 것들인데, 처음 보시는 분들은 뭔소린가.. 할 수도 있다고 생각된다.. 각 서비스별로 자세한 설명들은 다른 유수한 개발자분들이 쓴 글들을 보시고 한두문장으로 설명된 글들을 찾으실 때 유용할 것 같다.