👀 인용 표시가 되어 있는 부분은 정말 인용입니다.
🤦♀️ 그 외의 부분은 자의적으로 해석하여 작성하였기에 잘못된 정보가 있을 수 있습니다.
😍 미흡한 부분 및 잘못된 정보 지적은 언제든 환영합니다.
Elastic Beanstalk를 사용하면 애플리케이션을 실행하는 인프라에 대해 자세히 알지 못해도 AWS 클라우드에서 애플리케이션을 신속하게 배포하고 관리할 수 있습니다. Elastic Beanstalk를 사용하면 선택 또는 제어에 대한 제한 없이 관리 복잡성을 줄일 수 있습니다. 애플리케이션을 업로드하기만 하면 Elastic Beanstalk에서 용량 프로비저닝, 로드 밸런싱, 조정, 애플리케이션 상태 모니터링에 대한 세부 정보를 자동으로 처리합니다.
Elastic Beanstalk가 자동으로 환경을 실행하고 코드 실행에 필요한 AWS 리소스를 생성 및 구성합니다. 환경 실행 후에는 환경을 직접 관리하고 새로운 앱 버전을 배포할 수 있습니다.
다음 다이어그램은 Elastic Beanstalk의 워크플로를 보여 줍니다.
AWS는 아주 다양한 기능을 구비하고 있다. 그러나 너무 많은 선택지가 주어지면 이걸 일일이 다 찾아보고 학습해야 한다. (러닝 커브의 문제) 이런 단점을 커버하기 위해 elastic beanstalk이 등장한다. 이는 일종의 배포 환경 매니저와 비슷하다. 몇 가지 특성만 정해주면 실질적인 옵션은 elastic beanstalk이 정해서 생성한다. 소스 코드의 업데이트를 반영하기 위해 젠킨스 등과 연동해서 사용되며 이에 따라 운영 환경도 조정된다.
Amazon Simple Storage Service(Amazon S3)는 업계 최고의 확장성, 데이터 가용성 및 보안과 성능을 제공하는 객체 스토리지 서비스입니다. 즉, 규모와 업종에 상관없이 고객이 이 서비스를 이용하여 데이터 레이크, 웹사이트, 모바일 애플리케이션, 백업 및 복원, 아카이브, 엔터프라이즈 애플리케이션, IoT 디바이스, 빅 데이터 분석과 같은 다양한 사용 사례에서 원하는 만큼의 데이터를 저장하고 보호할 수 있습니다.
- 많은 사용자가 접속을 해도 이를 감당하기 위해서 시스템적인 작업을 하지 않아도 된다.
- 저장할 수 있는 파일 수의 제한이 없다.
- 최소 1바이트에서 최대 5TB의 데이터를 저장하고 서비스 할 수 있다.
- 파일에 인증을 붙여서 무단으로 엑세스 하지 못하도록 할 수 있다.
- HTTP와 BitTorrent 프로토콜을 지원한다.
- REST, SOAP 인터페이스를 제공한다.
- 데이터를 여러 시설에서 중복으로 저장해 데이터의 손실이 발생할 경우 자동으로 복원한다.
- 버전관리 기능을 통해서 사용자에 의한 실수도 복원이 가능하다.
- 정보의 중요도에 따라서 보호 수준을 차등 할 수 있고, 이에 따라서 비용을 절감 할 수 있다. (RSS)
현재 회사에서 프론트 코드를 배포할 때 S3를 사용한다고 해서 elastic beanstalk과 비슷한 거라고 생각했는데, 예상을 뒤엎고 파일 저장 기능이었다! (하긴 AWS 클라우드도 크게 보면 저장 기능이 아닌지) 파일만 클라우드 같은 곳에 올려두고 client가 각자 서버를 돌리는 방식일까?
Amazon CloudFront는 개발자 친화적 환경에서 짧은 지연 시간과 빠른 전송 속도로 데이터, 동영상, 애플리케이션 및 API를 전 세계 고객에게 안전하게 전송하는 고속 콘텐츠 전송 네트워크(CDN) 서비스입니다.
CloudFront는 네트워크 및 애플리케이션 계층 DDoS 공격을 비롯해 여러 유형의 공격으로부터 보호하기 위해 AWS Shield, AWS Web Application Firewall 및 Route 53와 완벽하게 통합되어 필드 수준 암호화 및 HTTPS 지원을 포함한 대부분의 고급 보안 기능을 제공합니다.
AWS 공식 홈페이지에 나온 설명만 읽어보면 S3의 상위호환처럼 보인다. DDos 공격이란 서버로 무의미한 요청을 쏟아부어서 부하를 일으키는 해킹 공격이다. S3의 경우 파일을 보관하는 공간이 하나 뿐이기 때문에 이런 공격을 받으면 비교적 쉽게 함락된다. 그러나 CloudFront는 CDN 서비스이기에 파일을 갖고 있는 서버가 분산되어 있다. 따라서 하나가 마비되어도 나머지가 살아서 사용자에게 서비스를 제공할 수 있다. (현재 회사에서는 해당 서비스를 이용하여 프론트단을 배포하고 있다.)
Route53 기능
Route53 = DNS(네임서버) + 모니터링 + L4 + GSLB 기능을 제공한다.
네임서버는 도메인 주소로 입력된 사이트의 IP 찾아 연결해주는 역할을 한다. Route53은 여기에 안정적인 서버 운영을 위한 추가적인 기능을 수행한다. 1) 모니터링: 특정 포트에 대한 모니터링이 가능하다. 2) L4: Failover 기능이 있다. *장애 극복 기능(영어: failover, 페일오버)은 컴퓨터 서버, 시스템, 네트워크 등에서 이상이 생겼을 때 예비 시스템으로 자동전환되는 기능이다. 3) GSLB(Global Server Load Balancing): 지역에 상관없이 부하를 분산시켜준다. 그 외에도 Act-Act(트레픽 조절, WRR), 지역별 유입 트레픽 조절(Gelolcation) 등의 기능이 수행된다.
Request Count
단위 시간당 서버로 들어온 요청 횟수. 단위 시간을 얼마로 할 것인지를 함께 정하는 경우가 있다.
Latency
하나의 요청 건을 처리하는데 걸리는 시간. '최대', '평균' 등 얼마를 기준으로 할 것인지 함께 정하기도 한다.
정해진 기준을 넘어서면 서버가 과부하되었다고 판단하여 elastic beanstalk 등이 자동으로 서버의 갯수를 늘린다.