AWS에서 인프라를 실행하기 위해 서버를 설정할 책임이 있다면 다양한 컴퓨팅 옵션을 사용할 수 있습니다. 어떤 서비스 를 어떤 사용 사례에 사용할지 알아야 합니다. 기본적인 수준에서는 가상 머신 VM , 컨테이너 서비스, 서버리스라는 3가 지 유형의 컴퓨팅 옵션을 사용할 수 있습니다.
AWS에서는 가상 머신을 Amazon Elastic Compute Cloud Amazon EC2라고 합니다. 백그라운드에서 AWS가 호스트 시스템과 하이퍼바이저 계층을 운영 및 관리합니다. 또한 AWS는 게스트 운영 체제라고 하는 가상 머신 운영 체제 를 설치합니다.
기본값으로 EC2 인스턴스는 기본 Amazon Virtual Private Cloud Amazon VPC 라는 네트 워크에 배치됩니다. 이 네트워크는 VPC를 생성 및 구성하는 방법을 배우지 않고도 Amazon EC2 를 쉽게 시작할 수 있도록 만들어졌습니다.
기본 VPC에 넣은 모든 리소스는 공개되고 인터넷에서 액세스할 수 있으므로 고객 데이터 또는 개인 정보를 이러한 VPC에 배치하면 안 됩니다.
AWS에서의 네트워킹에 익숙해지면 이 기본 설정을 변경하여 사용자 지정 VPC를 선택하고 추가 라 우팅 및 연결 메커니즘을 사용하여 액세스를 제한해야 합니다.
Amazon EC2에서 비용을 절감하는 방법 중 하나는 애플리케이션 실행 방식에 적합한 요금 옵션을 선택하는 것입니다. AWS는 EC2 인스턴스에 대한 3가지 주요 구매 옵션인 온디맨드, 예약, 스팟 인 스턴스를 제공합니다.
한가지 고려 사항은 스팟 인스턴스는 중단될 수 있다는 것입니다.예를들어 AWS에서 특정 스팟인스턴스에 대해 더 이상 용량을 제공할 수 없다고 결정하거나 스팟 가격이 사용자가 지불하려는 금액을 초과하는 경우 AWS는 인스턴스를 중 단하기 2분 전에 경고를 표시합니다. 즉, 스팟 인스턴스에서 실행되는 모든 애플리케이션 또는 워크로드가 중단 가능해 야 합니다.
ALB (Application Load Balancer)
Application Load Balancer는 OSI 7 LayerVisit Website에서 최상단 일곱 번째 계층에 해당하는 Application Layer를 다루는 로드밸런서 이다. 사용자와 직접 접하는 계층으로서 여러분이 브라우저를 통해 이 블로그를 접속할 수 있도록 사용하는 프로토콜 역시 Application Layer에 해당하는 HTTP/HTTPS인 것이다.
NLB (Network Load Balancer)
Netowrk Load Balancer(NLB)는 AWS에서 제공하는 4가지 로드밸런서 중 하나로 OSI 7 Layer에서 네 번째 계층에 해당하는 Transport Layer를 다루는 로드밸런서이다. 따라서 NLB는 TCP와 UDP를 사용하는 요청을 받아들여 부하분산을 실시한다. 그래서 NLB는 ALB보다 성능이 더 빠르기 때문에 고성능을 요구하는 환경에서의 부하분산에 적합한 솔루션이다. 낮은 레이턴시로 초당 수백만 건의 요청을 처리할 수 있으며 갑작스러운 트래픽 증대 및 변화에도 최적화 되어있다. 단, HTTP가 아닌 하위 Layer인 TCP Layer에서 처리하므로 HTTP 헤더를 해석하지 못한다.
v
파일 스토리지
파일 스토리지는 가장 일반적인 저장소 유형 중 하나입니다. 대부분의 사람들이 일상적인 컴퓨터 사용으로 이에 익숙합니다. 간단한 예를 생각해보세요.
오브젝트 스토리지
오브젝트 스토리지는 '오브젝트'로 불리는 각각의 데이터 단위가 개별 단위로 저장되는 데이터 저장소 유형입니다. 이러한 오브젝트는 PDF, 비디오, 오디오, 텍스트, 웹사이트 데이터나 기타 다른 파일 유형 등 사실상 거의 모든 데이터 유형이 될 수 있습니다.
블록 스토리지
오브젝트 스토리지와 파일 스토리지는 파일을 하나의 데이터 '단위'로 취급합니다. 블록 스토리지는 그 이름에서 알 수 있듯이, 데이터를 고정된 크기의 '덩어리' 또는 '블록' 시퀀스로 처리하여 각각의 파일이나 오브젝트를 여러 블록에 분산시킬 수 있습니다.
컨테이너와 가상 머신 VM 의 차이점
가상머신은 운영체제 및 커널이 있는 호스트와 동일한 운영체제 및 커널을 공유하지만 가상 시스 템에는 운영 체제가 포함되어 있습니다. 각 가상 머신은 운영 체제의 복사본을 유지 관리해야 하므 로 공간이 낭비됩니다.
컨테이너는 더 가볍습니다. 더 빠르게, 거의 즉각적으로 가동됩니다. 이러한 시작 시간의 차이는 입/출력 I/O 버스트 시 빠르게 크기를 조정해야 하는 애플리케이션을 설계할 때 중요한 역할을 합니다.
컨테이너는 속도를 제공할 수 있지만 가상머신은 운영체제의 전체강점과 패키지 설치,전용커널 등과 같은 더 많은 리소스를 제공합니다.
컨테이너 오케스트레이션
대부분의 기업 및 조직은 여러 가용 영역에 걸쳐 많은 EC2 인스턴스에서 많은 컨테이너를 실행합니다.
서버리스의 모든 정의는 다음과 같은 4가지 측면을 언급합니다.
서버리스를 사용하면 가용성 확보, 크기 조정, 서버 관리에 시간을 사용하는 대신 애플리케이션을 차별화하는 작업에 시간을 투자할 수 있습니다.
AWS에는 AWS Fargate, AWS Lambda 등 여러 서버리스 컴퓨팅 옵션이 있습니다. •
AWS Fargate는 컨테이너용으로 특별히 빌드된 서버리스 컴퓨팅 엔진입니다.
Fargate는 EC2 인스턴스를 추상화하여 사용자가 관리할 필요가 없습니다. 그러나 Fargate를 사 용하면 동일한 ECS 프리미티브, API 및 AWS 통합을 모두 사용할 수 있습니다.
EC2 인스턴스 또는 컨테이너를 관리할 필요 없이 워크로드 및 애플리케이션을 배포하려면 AWS Lambda를 사용할 수 있습니다.
데이터 처리, 실시간 스트림 처리, 기계 학습, WebSockets, IoT 백엔드, 모바일 백 엔드,기업디렉터리앱과같은웹앱을포함하여거의모든유형의애플리케이션또는백엔드서비 스에 대한 코드를 실행할 수 있습니다
AWS Lambda를 사용하면 사용자는 관리가 전혀 필요하지 않습니다.