반응형
Route53
대분류 | 소분류 | 내용 |
---|---|---|
개요 | AWS에서 제공하는 DNS(Domain Name Service) | |
일반 DNS의 이해 | 도메인을 IP로 변환하여 IP 네트워크 통신하여 목적지 IP를 찾아가는 과정 (http://naver.com > 202.222.xxx.xxx) |
|
일반 DNS와 Route53의 차이점 | Route53에서 네임서버 등록 시, 순서가 다름 | 일반적으로 도메인 등록 시 네임서버를 지정하는데 Route53에서는 할당 후 네임서버 정보를 도메인 등록 대행기관(가비아, 아이네임즈 등) 사이트에 접속해 네임서버를 지정 |
Route53은 Public host zone과 Private host zone이 있음 | public은 일반 네임서버로 글로벌하게 동작, private은 aws내에서만 동작 | |
Route53은 특이 레코더, ALIAS가 있음 | 도메인 자체에 별칭 부여 가능 | |
기능 | 개요 | DNS + 모니터링 + L4 + GSLB 기능 제공 |
모니터링 | 특정 포트에 대해 모니터링 가능 | |
L4 | 네트워크 장비 넷스케일러, 파운드리, 파이오링크와 같은 Failover 기능 (failover => 장비나 시스템, 네트워크에 이상이 생겼을 때 예비 시스템으로 자동전환되는 기능. 수동으로 할 경우 스위치 오버라 부름) |
|
GSLB(Global Server Load Balancing) | region에 상관없이 부하를 분산해주는 기능. 특정 IDC에 의존적이지 않도록 함 기능 상세
|
|
주의점 | S3 버켓 이름과 CloudFront 도메인 네임은 DNS 이름과 반드시 같아야 한다. | |
사용자 이점 | GUI 제공 | |
네임서버 자체 안정성 증대(Anycast network + 4개의 네임서버 + ddos로부터 안전 => 가용성 증대) | ||
글로벌 서비스 가능(GSLB를 이용한 속도 개선) | ||
S3 (Simple Storage Service)
대분류 | 소분류 | 내용 |
---|---|---|
개요 | 파일 서버의 역할을 하는 서비스. 일반적인 파일서버는 트래픽이 증가함에 따라 장비 증설이 필요한데 S3는 이와 같은 것을 대행하여 트래픽에 따른 시스템적인 문제를 걱정할 필요가 없어진다. 또 파일에 대한 접근 권한을 지정할 수 있어 서비스를 호스팅 용도로 사용하는 것을 방지할 수 있다. | |
특징 | 많은 사용자가 접속을 해도 이를 감당하기 위해서 시스템적인 작업을 하지 않아도 된다. | |
저장할 수 있는 파일 수의 제한이 없다. | ||
최소 1바이트에서 최대 5TB의 데이터를 저장하고 서비스 할 수 있다. | ||
파일에 인증을 붙여서 무단으로 엑세스 하지 못하도록 할 수 있다. | ||
HTTP와 BitTorrent 프로토콜을 지원한다. | ||
REST, SOAP 인터페이스를 제공한다. | ||
데이터를 여러 시설에서 중복으로 저장해 데이터의 손실이 발생할 경우 자동으로 복원한다. | ||
버전관리 기능을 통해서 사용자에 의한 실수도 복원이 가능하다. | ||
정보의 중요도에 따라서 보호 수준을 차등 할 수 있고, 이에 따라서 비용을 절감 할 수 있다. (RSS) | ||
관련 개념 및 용어 | 객체(Object) | S3에 데이터가 저장되는 기본 단위로써 파일과 메타데이터로 이루어져있다. 객체 하나의 크기는 1Byte부터 5TB까지 허용되며 메타데이터는 MIME 형식으로 파일 확장자를 통해 자동으로 설정되며 사용자 임의로도 지정 가능하다. |
버킷(bucket) | 객체가 파일이라면 버킷은 연관된 객체들을 그룹핑한 최상위 디렉토리라고 할 수 있다. 버킷 단위로 region을 지정할 수 있고, 버킷에 포함된 모든 객체에 대해 일괄적으로 인증과 접속 제한을 걸 수 있다. S3에서 생성할 수 있는 최상위 디렉토리의 개념으로 S3 region 중에서 유일해야 한다. 계정별로 100개까지 생성 가능하며 버킷에 저장할 수 있는 객체수와 용량은 무제한 | |
표준스토리지 | S3 서비스 수준 계약으로 객체에 대해 99.999999999%의 내구성을 보장하며 99.99%의 가용성을 제공한다. 하지만 높은 내구성을 보장해야 하는 만큼 비용이 높으므로 유실되면 안되는 원본 데이터, 민감정보, 개인정보 등의 중요한 데이터를 저장하는 것이 알맞다. | |
버전관리 | S3에 저장된 객체들의 변화를 저장. 각각의 변화를 모두 기록하기 때문에 실수가 발생했을 때 되돌릴 수 있다. | |
RSS(Reduced Redundancy Storage) | 표준 스토리지보다 저렴한 비용으로 일반 S3 객체에 비해서 데이터가 손실될 확률이 높은 형태의 저장 방식. 대신에 가격이 저렴하기 때문에 복원이 가능한 데이터, 이를테면 섬네일 이미지와 같은 것을 저장하는데 적합하다. 그럼에도 불구하고 물리적인 하드 디스크 대비 400배 가량 안전하다는 것이 아마존의 주장 | |
Glacier | 영어로는 빙하라는 뜻으로 매우 저렴한 가격으로 데이터를 저장 할 수 있는 아마존의 스토리지 서비스 | |
CloudFront
대분류 | 소분류 | 내용 |
---|---|---|
개요 | AWS에서 제공하는 CDN 서비스(Content Delivery Network) 지리적 제약 없이 전 세계 사용자에게 빠르고 안전하게 컨텐츠를 전송할 수 있는 기술 |
|
특징 | 엣지 로케이션이라고 하는 데이터 센터의 전 세계 네트워크를 통해 콘텐츠를 제공 | |
사용자가 콘텐츠를 요청하면 지연 시간이 가장 낮은 엣지 로케이션으로 요청이 라우팅되므로 가능한 최고의 성능으로 콘텐츠가 제공 | ||
장점 |
캐싱 | 캐싱을 통해 CDN을 통해 전 세계 각 지역에 효율적인 속도로 컨텐츠 제공 |
부하 분산 | CloudFront에 배치되지 않은 원본 서버를 오리진 서버라고 하는데, 오리진 서버에서만 컨텐츠를 받아올 경우 트래픽이 한 곳에 몰리는 문제 발생할 수 있음 |
API Gateway
대분류 | 소분류 | 내용 |
---|---|---|
개요 | REST 및 WebSocket API를 생성, 게시, 유지, 모니터링 및 보호하기 위한 AWS 서비스. | |
API 개발자는 AWS 또는 다른 웹 서비스를 비롯해 AWS 클라우드에 저장된 데이터에 액세스하는 API를 생성할 수 있습니다. | ||
API Gateway API 개발자는 자체 클라이언트 애플리케이션에서 사용할 API를 생성할 수 있습니다. 또는 타사 앱 개발자가 API를 사용하도록 제공할 수도 있습니다. | ||
특징 | 뛰어난 확장성 제공 및 API를 만들고 운영하고 모니터링 가능 | |
모니터링은 CloudWatch 로그를 통해 확인 | ||
BackEnd 서비스(웹 애플리케이션, EC2)에 들어있는 데이터 접근 허용 | ||
Pay As You Go | 계속 비용을 지불하는 것이 아니라 API를 사용할 때 오래걸리는지, 얼마나 많은 데이터를 처리하는지에 대해 비용 지불 | |
아키텍쳐 | API Gateway는 최대 수십만 개의 동시 API 호출 허용 및 처리에 관련된 모든 작업을 다룹니다. 여기에는 트래픽 관리, 권한 부여 및 액세스 제어, 모니터링, API 버전 관리가 포함 | |
API Gateway는 애플리케이션이 EC2에서 실행 중인 워크로드, AWS Lambda에서 실행 중인 코드, 웹 애플리케이션, 실시간 통신 애플리케이션과 같은 백엔드 서비스에서 데이터, 비즈니스 로직 또는 기능에 액세스할 수 있게 해주는 “정문” 역할 | ||
API 생성 | RESTful API 생성 | HTTP 기반 |
상태 비저장 클라이언트-서버 통신 활성화 | ||
표준 HTTP 메서드(get, post, put, patch, delete)를 구현 | ||
Websocket API 생성 | 클라이언트-서버 간의 상태를 저장하는 전이중 통신을 지원하는 WebSocket 프로토콜 준수 | |
수신 메시지를 메시지 콘텐츠에 따라 라우팅 | ||
RESTful API | 개요 |
|
관리의 힘든 점 |
|
|
기능 | 일반 기능 |
|
호스팅 기능 |
|
|
Admin 기능 |
|
|
API 종류 | REST API | 백엔드 HTTP 엔드포인트, Lambda 함수 또는 기타 AWS 서비스와 통합되어 있는 HTTP 리소스와 메서드의 모음입니다. 이 모음을 하나 이상의 스테이지로 배포할 수 있습니다. 일반적으로 API 리소스는 애플리케이션 로직에 따른 리소스 트리로 정리되어 있습니다. 각 API 리소스는 API Gateway에서 지원하는 전용 HTTP 동사가 있는 API 메서드를 하나 이상 표시할 수 있습니다. |
HTTP API | 백엔드 HTTP 엔드포인트 또는 Lambda 함수와 통합된 라우팅 및 메서드의 모음입니다. 이 모음을 하나 이상의 스테이지로 배포할 수 있습니다. 각 라우팅은 API Gateway에서 지원되는 고유의 HTTP 동사를 가진 API 메서드를 하나 이상 노출할 수 있습니다. | |
WebSocket API | 백엔드 HTTP 엔드포인트, Lambda 함수 또는 기타 AWS 서비스와 통합되어 있는 WebSocket 경로와 경로 키의 모음입니다. 이 모음을 하나 이상의 스테이지로 배포할 수 있습니다. API 메서드는 프런트 엔드 WebSocket 연결을 통해 호출되며, 이 엔드포인트를 등록된 사용자 지정 도메인 이름과 연결할 수 있습니다. |
Lambda
- https://seoyeonhwng.medium.com/aws-lambda%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80-44df535d5487
대분류 | 소분류 | 내용 |
---|---|---|
개요 | AWS에서 제공하는 서버리스 컴퓨팅 플랫폼. 서버리스란, 서버가 없다는 의미가 아니고 개발자가 서버의 존재를 신경쓸 필요 없이 AWS에서 처리해준다는 의미(서버가 정상적으로 구동중인지, 개수와 사양이 적당한지 등등) 사용한 컴퓨팅 시간이나 용량에 대해서만 비용 지불 | |
특징 | 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행 | |
모든 유형의 애플리케이션이나 백엔드 서비스에 대한 코드를 별도의 관리 없이 실행 가능 | ||
코드를 업로드하면 Lambda에서 높은 가용성으로 코드를 실행 및 확장하는 데 필요한 부분을 처리함 | ||
다른 AWS 서비스에서 코드를 자동으로 트리거하도록 설정하거나 웹 또는 모바일 앱에서 직접 코드를 호출할 수 있음 | ||
프로비저닝이란 | 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것을 말합니다. 서버 자원 프로비저닝, OS 프로비저닝, 소프트웨어 프로비저닝, 스토리지 프로비저닝, 계정 프로비저닝 등이 있고 수동으로 처리하는 '수동 프로비저닝'과 자동화 툴을 이용해 처리하는 '자동 프로비저닝'이 있습니다. | |
장점 | 인프라에 대한 걱정 없이 코드 실행 가능 -> NoOps 실현 |
|
트리거를 이용해 애플리케이션을 자동으로 확장/축소 가능. | ||
코드가 병렬로 실행되고 각 트리거는 개별적으로 처리되어 정확히 워크로드 규모에 맞게 조정됨. | ||
100ms 단위로 코드가 실행되는 시간 및 코드가 트리거되는 회수를 측정하여 요금을 부과하고, 코드가 실행되지 않을 때는 요금이 부과되지 않음. | ||
언제 쓰면 좋은가 | 코드를 계속 실행시키기 보다 특정한 시기에만 실행시키는 경우 사용하면 유용 | |
단점 | 코드 용량이 최대 250MB | |
함수 실행 시간은 최대 15분 | ||
처음 함수 호출 시, Cold Start를 하게 되고 초기 지연시간 발생 | ||
비쌈 | ||
사용 예제 | 실시간 파일 처리 | Amazon S3를 사용하여 업로드하는 즉시 데이터를 처리하도록 AWS Lambda를 트리거할 수 있음. Lambda를 사용하여 실시간으로 이미지를 썸네일하고, 동영상을 트랜스코딩하고, 파일을 인덱싱하고, 로그를 처리하고, 콘텐츠를 검증하고, 데이터를 수집 및 필터링할 수 있음 |
실시간 스트림 처리 | AWS Lambda 및 Amazon Kinesis를 사용하여 애플리케이션 활동 추적, 트랜잭션 주문 처리, 클릭 스트림 분석, 데이터 정리, 지표 생성, 로그 필터링, 인덱싱, 소셜 미디어 분석, IoT 디바이스 데이터 텔레메트리 및 측정을 위한 실시간 스트리밍 데이터를 처리할 수 있음. | |
추출, 변환, 로드 | AWS Lambda를 사용하여 DynamoDB 테이블의 모든 데이터 변경에 대한 데이터 검증, 필터링, 정렬 또는 기타 변환 작업을 수행하고 변환된 데이터를 다른 데이터 스토어로 로드할 수 있음. | |
IoT 백엔드 | AWS Lambda 및 Amazon Kinesis를 사용하여 사물 인터넷(IoT) 디바이스 데이터 텔레메트리 및 분석을 위한 백엔드를 구축할 수 있음. | |
모바일 백엔드 | AWS Lambda 및 Amazon API Gateway를 사용하여 API 요청을 인증 및 처리하도록 백엔드를 구축할 수 있음. | |
웹 애플리케이션 | AWS Lambda를 다른 AWS 서비스와 결합하면, 확장성, 백업 또는 여러 데이터 센터 중복에 필요한 별도의 관리 작업 없이 개발자가 자동으로 확장 및 축소되고 여러 데이터 센터에 걸쳐 가용성이 높은 구성에서 실행되는 강력한 웹 애플리케이션을 구축할 수 있음. |
SQS (Simple Queue Service)
- Message Queue 개념(https://12bme.tistory.com/176 )
- https://devocean.sk.com/blog/techBoardDetail.do?ID=163290
- https://lannstark.tistory.com/88
- https://sabarada.tistory.com/119
대분류 | 소분류 | 내용 |
---|---|---|
개요 | 말그대로 간단한 큐 서비스로, 다른 MessageQueue에 존재하는 message routing, fan-out, distribution lists등을 지원하지 않는다. 메시지 생산자가 만들어낸 메시지를 메시지 소비자가 가져갈 수 있게 해주는 것이 전부 | |
특징 | 분산 시스템 및 서버리스 어플리케이션 분리, 확장을 위한 완젼 관리형 메시지 대기열 서비스 | |
MOM(Message Oriented Middleware) 에 대한 완전관리 | ||
AWS 콘솔, CLI, SDK 등을 활용하여 서비스 가능 | ||
리젼 단위 이용, (다른 리전간 SQS 공유 불가) | ||
메시지 보관 기간 (1분 ~ 14일까지) | ||
메시지 크기 (1kb ~ 256kb), 더 큰 크기의 메시지는 SQS 확장 클라이언트 이용 (최대 2Gb) | ||
inflight 메시지 수(메시지가 삭제되지 않은 개수)
|
||
2가지 타입 (Standard, FIFO) 로 구성 가능
|
||
장점 | 관리 오버헤드 제거 | 가용성, 확장성, 완젼관리형 |
메시지 전달 안정성 | 메시지 손실 없이 전달 가능 | |
시스템간 커플링 해소 | ||
메시지 복제본 저장 | ||
데이터 안전성 유지 | KMS 이용한 안전한 메시지 관리 | |
CloudTrail 키사용 내역 기록 | ||
탄력적, 비용효율적 | 동적확장 지원 | |
용량계획, 사전 프로비저닝 고민 필요 없음 | ||
동작 과정 | 메시지 SQS에 전송 → 소비하는 쪽에서 메세지를 SQS에서 가져오고 다른 서버가 중복으로 읽지 못하도록 visibility timeout 사용(처리 후 삭제 요청이 있기 전까진 메세지 삭제 안됨) → 처리 후 메세지 삭제 요청 → SQS에서 메세지 삭제 | |
용어 | Delivery Delay | 프로듀싱서버에서 SQS로 메시지를 전달했을 때 Queue에 바로 넣을지 아니면 조금 시간을 두고 넣을지를 정하는 설정입니다. sync 등의 이유로 Queue의 메시지를 바로 컨슘하면 안될 때 사용할 수 있습니다. Retention이라는 것은 SQS에 메시지가 머무를 수 있는 최대시간을 말합니다. 해당 시간이 지나면 메시지는 삭제됩니다. |
Visibility Timeout | 중복 처리를 막기위해 컨슈밍서버 한대가 컨슘했을 때 다른 서버들은 컨슘할 수 없게하는 대기시간을 말합니다. 다른 서버에서 컨슘하기 위해서는 Visibility Timeout을 기다릴 수 밖에 없습니다. Polling Message Count란 컨슈밍서버에서 한번의 요청으로 SQS에 있는 데이터를 가져올 수 있는 숫자입니다. |
|
Long Time Polling과 Short Time Polling | 컨슈밍서버에서 컨슘했을 때 만약 queue가 비어있다면 얼마나 대기할 건지에 대한 부분입니다. Short Time Polling은 Receive message wait time이 0초이며 나머지는 Long Time Polling으로 정의하고 있습니다. |
IAM (Identity Access Management)
- https://snepbnt.tistory.com/451
- https://brunch.co.kr/@topasvga/481
- https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/introduction.html
대분류 | 소분류 | 내용 |
---|---|---|
개요 | 최초에 주어지는 ROOT 계정이 있고, IAM 계정을 생성하여 계정의 보안을 관리하는 서비스 | |
AWS의 리소스에 대해 개별적으로 접근할 수 있도록 제어와 권한을 가질 수 있고, 한 루트 계정에 여러 개의 IAM 계정을 만들어(기본적으로 1인 1계정 원칙) 각 계정마다 접근 가능한 서비스에 제한을 둘 수 있다. | ||
기능 | 계정에 대한 공유 엑세스 | 암호나 엑세스 키를 공유하지 않고도 AWS 계정의 리소스를 관리하고 사용할 수 있는 권한을 다른 사람에게 부여 가능 |
세분화된 권한 | 리소스에 따라 여러 사람 또는 EC2 인스턴스에서 실행되는 애플리케이션에 안전하게 제공 | |
멀티 팩터 인증(MFA) | 계정 작업을 위해 암호나 엑세스 키 뿐안 아니라 OTP같은 특별히 구성된 디바이스 코드 제공(루트계정은 필히 설정해놔야함) | |
자격 증명 연동 | 기업 네트워크나 인터넷 자격 증명 공급자와 같은 다른 곳에 이미 암호가 있는 사용자에게 AWS계정에 대한 임시 엑세스 권한 부여 가능 | |
IAM 엑세스 방식 | AWS Management Console, AWS 명령줄 도구(CLI, Window용 PowerShell), AWS SDK, IAM HTTPS API | |
특징 | 접근키(Access Key), 비밀키(Secret Access Key) | 터미널 혹은 api를 통하여 접근키와 비밀키를 가지고 AWS 서비스를 원격에서 사용 가능 |
디테일한 접근 권한 부여 기능 | 개별 IAM 유저별로 다르게 권한 부여 가능 | |
비밀번호를 수시로 변경 가능 | 각 유저마다 보안을 위해 한달 혹은 분기별로 AWS 사용자들의 비밀번호를 일괄적으로 업데이트하도록 설정 가능 | |
다중 인증 기능(Multi-Factor Authentication) | AWS 외부 계정을 통해 사용자 인증을 요구하는 강화된 보안 가능 | |
유니버설(Universal) | IAM은 지역 연결이 필요하지 않고 유니버셜함(전세계 여러 서버에 데이터 복제되어 보관됨. 설정 등이 바뀌면 이 작업이 수행되므로 어느정도 시간 소요) |
Cognito
대분류 | 소분류 | 내용 |
---|---|---|
개요 | 웹 및 모바일 앱에 대한 인증, 권한 부여 및 사용자 관리를 제공합니다. 사용자는 사용자 이름과 암호를 사용하여 직접 로그인하거나 Facebook, Amazon, Google 또는 Apple 같은 타사를 통해 로그인 가능 | |
기능 | 사용자 풀 | 사용자 풀에서 사용자는 cognito 혹은 서드 파티 자격 증명 공급자를 통해 로그인 할 수 있다. 사용자 풀의 모든 멤버는 디렉토리 프로필을 보유하며 SDK를 통해 엑세스 가능 제공사항
|
자격 증명 풀 | 사용자는 임시 AWS 자격증명을 얻어 S3, DynamoDB 등의 다른 AWS 서비스에 액세스 가능. 지원되는 공급자
|
SES (Simple Email Service)
- https://docs.aws.amazon.com/ko_kr/ses/latest/dg/Welcome.html
- https://dev.classmethod.jp/articles/beginner-amazone-ses-send-email/
대분류 | 소분류 | 내용 |
---|---|---|
개요 | 사용자의 이메일 주소와 도메인을 사용해 SMTP방식과 API방식으로 이메일을 보내고 받기 위한 경제적이고 손쉬운 방법을 제공하는 아마존의 이메일 플랫폼 | |
작동방식 |
|
|
이메일 형식 |
|
VPC (Virtual Private Cloud)
대분류 | 소분류 | 내용 |
---|---|---|
개요 |
|
|
개념 | 서브넷 | VPC의 IP 주소 범위 |
CIDR블록 | 클래스 없는 도메인 간 라우팅. 인터넷 프로토콜 주소 할당 및 라우팅 집계 방법 | |
라우팅 테이블 | 네트워크 트래픽을 전달할 위치를 결정하는데 사용하는 라우팅이라는 이름의 규칙 집합 | |
DHCP 옵션 세트 | VPC 서브넷으로 시작될 때 EC2 인스턴스로 전달되는 구성 정보(eg. 도메인 이름, 도메인 이름 서버) | |
인터넷 게이트웨이 | VPC의 리소스와 인터넷 간의 통신을 활성화하기 위해 VPC에 연결하는 게이트웨이 | |
서브넷
대분류 | 소분류 | 내용 |
---|---|---|
개요 | VPC의 IP 주소 범위. EC2 인스턴스와 같은 AWS 리소스를 특정 서브넷으로 시작할 수 있다. 서브넷을 만들 때 해당 서브넷에 대한 IPv4 CIDR 블록을 지정하고 이는 VPC CIDR 블록의 서브넷이다. 각 서브넷은 단일 가용 영역 내에서만 존재해야 하며, 여러 영역으로 확장은 불가. 별도의 가용 영역에서 인스턴스를 시작함으로써, 단일 영역에서 장애가 발생할 경우 앱을 보호할 수 있다. | |
IP 유형 | Pv4 전용 | 서브넷 내에서 시작된 모든 EC2 인스턴스는 IPv4전용으로 통신 |
듀얼스택(IPv4 및 IPv6) | 서브넷 내에서 시작된 모든 인스턴스는 서브넷의 IP를 통해 통신 | |
IPv6 전용 | 서브넷 내에서 시작된 모든 인스턴스는 IPv6 전용으로 통신 | |
구성 방법 | 퍼블릭 서브넷 | 퍼블릭 인터넷에 연결 가능 |
프라이빗 서브넷 | 퍼블릭 인터넷이 연결 불가능 | |
VPN 전용 서브넷 | Site-to-Site VPN 연결을 위한 가상 프라이빗 게이트웨이로 라우팅 | |
ECS (Elastic Container Service)
- https://docs.aws.amazon.com/ko_kr/AmazonECS/latest/developerguide/Welcome.html
- https://dev.classmethod.jp/articles/contaier-doceker-and-ecs-for-beginner-kr/#fn-767962-3
- https://wooono.tistory.com/133
대분류 | 소분류 | 내용 |
---|---|---|
개요 | 컨테이너화된 애플리케이션의 손쉬운 배포, 관리 및 조정에 도움이 되는 완전관리형 컨테이너 오케스트레이션 서비스 | |
ESC를 이용하여 EC2 인스턴스의 관리형 클러스터 혹은 AWS Fargate를 통한 서버리스 환경에서 애플리케이션을 손쉽게 실행 가능 | ||
컨테이너 관련 | 컨테이너화 | 컨테이너는 애플리케이션의 코드, 구성 및 종속성을 하나의 객체로 패키징하는 표준화된 방식을 제공. 컨테이너는 서버에 설치된 운영 체제를 공유하며 리소스가 격리된 프로세스 형태로 실행되므로 환경에 상관없이 빠르고 안정적이며 일관된 배포를 보장 |
컨테이너 특징 |
|
|
도커의 작동 방식 |
|
|
컨테이너의 생성과 배포 |
|
|
여러 개의 서버 혹은 서버 클러스터링이 필요할 경우 서버 간의 컨테이너 관리를 어떻게 해야할까? |
|
|
오케스트레이션 툴이 제공하는 일반적인 기능 |
|
|
사용 이점 | 다양한 AWS의 서비스 연계 | AWS에서 제공하고 있는 다양한 서비스들과 옵션들을 연계하여 더욱 효율적으로 컨테이너를 관리할 수 있습니다. |
제어 플레인 또는 노드 관리 불필요 | AWS Fargate를 통해 서버리스 환경을 이용할 수 있으며 제어 플레인 또는 노드를 관리, 인스턴스 패치 및 조정이 불필요하므로 운영에 소요되는 시간이 줄어듭니다. | |
컴퓨팅 비용 절감 | 클라우드 서비스라서 물리적 서버에 대한 요금을 절약할 수 있습니다. 또한 ECS는 프로비저닝 및 자동 조정을 자율적으로 처리하므로 컴퓨팅 비용을 최대 50%까지 절감할 수 있습니다. | |
보안 및 규제 요구 사항 충족 | ECS는 AWS 관리 및 거버넌스 솔루션과 기본적으로 통합됩니다. 따라서 전 세계 거의 모든 규제 기관의 보안 및 규정 준수 표준을 충족할 수 있습니다. | |
관련서비스 | AWS ECR(Elastic Container Registry) | 컨테이너 이미지 저장소 |
AWS Fargate | 종량제 서버리스 컴퓨팅 엔진입니다. ECS와 EKS 둘 다 호환 가능 | |
AWS ELB(Elastic Load Balancer) | 로드밸런서 입니다. ALB와 함께 사용하여 동적 포트를 지정할 수 있습니다. | |
AWS VPC | ECS의 사용에 필요한 네트워크 리소스를 제공하는 서비스 | |
AWS IAM | 클러스터나 서비스 등 다양한 작업의 권한을 설정하는 서비스 | |
AWS CloudWatch | 컨테이너의 각 지표와 로그 등을 확인할 수 있습니다. 컨테이너형 애플리케이션 및 마이크로 서비스에 대한 모니터링, 트러블 슈팅 및 알람을 위한 서비스인 Container Insight도 제공하고 있습니다. | |
구성요소 | Task(작업) | Task ECS 의 최소 단위는 task. 그리고 1개 이상의 컨테이너가 task에 구성 |
Task Definition(작업 정의) | Task의 구성요소는 task definition에 json 형식으로 작성되어 있음. 작성된 내용을 참고로 task가 구성 task definition에서 작업 및 컨테이너가 참고할 이미지, 사용할 리소스 양, 시작 유형, 로깅 구성 등 다양한 매개변수 정의 가능 |
|
Service(서비스) | task definition을 참고하여 task가 실행되는데 원하는 수의 task를 유지, 관리하는 스케쥴러 역할 선택적으로 로드 밸런서 뒤에서 실행하여 로드 밸런싱과 오토 스케일링 가능 |
|
Continer Instacne(컨테이너 인스턴스) | ECS 컨테이너 에이전트를 실행하고 cluster에 등록된 EC2 인스턴스를 의미 리눅스, 윈도우 OS를 지원하며 온프레미스 VM 등의 다른 OS도 지원 Fargate 시작 유형을 사용하는 task는 서버리스로 배포되므로 container instance는 적용되지 않음 |
|
Cluster(클러스터) | 컨테이너 인스턴스의 논리적 그룹 | |
작업 순서 |
|
|
비고 | ECR/ECS와 AWS code 시리즈와 함께 활용하여 코드의 커밋부터 배포까지 자동화를 하거나 ECS task를 위한 다양한 옵션(AWS Wavelength, AWS Outposts)등과 함께 사용하면 더욱 효율적이고 능동적인 컨테이너 생태계를 구축할 수 있습니다. |
EC2 (Elastic Compute Cloud)
- https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/concepts.html
- https://seoyeonhwng.medium.com/aws-ec2%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80-acf6b7041908
- https://dev.classmethod.jp/articles/for-beginner-ec2-explanation/
대분류 | 소분류 | 내용 |
---|---|---|
개요 | AWS EC2는 안전하고 크기 조정이 가능한 컴퓨팅 용량을 클라우드에서 제공하는 웹서비스 단시간에 여러가지 프로세서, 스토리지, 네트워킹, 운영체제, 구매모델을 선택하여 생성할 수 있고 사양변경이나 삭제도 쉽게 실행할 수 있는 서비스 |
|
AMI (Amazon Machine Images) | EC2 인스턴스를 시작하는데 필요한 정보가 들어있는 이미지. 가상 OS 환경 설정이라고 보면 될 듯..? | |
사용할 수 있는 OS |
|
|
성능 옵션 | 범용 인스턴스 | 균형 있는 컴퓨팅, 메모리 및 네트워킹 리소스를 제공하며, 다양한 여러 워크로드에 사용할 수 있습니다. 웹 서버 및 코드 리포지토리와 같이 이러한 리소스를 동등한 비율로 사용하는 애플리케이션에 적합합니다. |
컴퓨팅 최적화 인스턴스 | 고성능 프로세서를 활용하는 컴퓨팅 집약적인 애플리케이션에 적합합니다. 배치 처리 워크로드, 미디어 트랜스코딩, 고성능 웹 서버, HPC(고성능 컴퓨팅), 과학적 모델링, 전용 게임 서버 및 광고 서버 엔진, 기계 학습 추론 및 기타 컴퓨팅 집약적인 애플리케이션에 매우 적합합니다. |
|
메모리 최적화 인스턴스 | 메모리에서 대규모 데이터 세트를 처리하는 워크로드를 위한 빠른 성능을 제공하기 위해 설계되었습니다. | |
과속화된 컴퓨팅 인스턴스 | 하드웨어 액셀러레이터 또는 코프로세서를 사용하여 부동 소수점 수 계산이나 그래픽 처리, 데이터 패턴 일치 등의 기능을 CPU에서 실행되는 소프트웨어보다 훨씬 효율적으로 수행합니다. | |
스토리지 최적화 인스턴스 | 로컬 스토리지에서 매우 큰 데이터 세트에 대해 많은 순차적 읽기 및 쓰기 액세스를 요구하는 워크로드를 위해 설계되었습니다. 애플리케이션에 대해 지연 시간이 짧은, 수만 단위의 무작위 IOPS(초당 I/O 작업 수)를 지원하도록 최적화되었습니다. |
|
보안그룹 | 가상의 방화벽을 만들 수 있는 설정. EC2 인스턴스의 인바운드, 아웃바운드의 허용 트래픽과 포트, IP주소를 설정하여 제한 가능 | |
탄력적 IP | 인스턴스에서 제공되는 IP는 중지하면 사라지게 되어 IP를 다시 확인해야하는 불편함을 줄이기 위해 주소를 취득하여 인스턴스에 연결하여 사용 가능. 이 경우 중지하고 다시 시작해도 IP 주소는 유지되므로 DNS에 설정하여 웹서버 등에 이용 가능 | |
추가기능 | EC2는 로드밸런싱을 통해 트래픽을 분산시키거나 오토스케일링을 통해 서버를 확장하여 안전한 환경을 유지하는 등이 가능 | |
요금옵션 | 온디맨드 | 선결제 금액이나 장기 약정 없이 저렴하고 유연하게 Amazon EC2를 사용하기 원하는 사용자 단기의 갑작스럽거나 예측할 수 없는 워크로드가 있으며, 중단되어서는 안 되는 애플리케이션 Amazon EC2에서 처음으로 개발 또는 시험 중인 애플리케이션 |
스팟 인스턴스 | 시작 및 종료 시간이 자유로운 애플리케이션 컴퓨팅 가격이 매우 저렴해야만 수익이 나는 애플리케이션 대량의 서버 용량 추가로 긴급히 컴퓨팅 파워가 필요한 사용자 |
|
Savings Plans | 1년 또는 3년 기간의 일정 사용량 약정을 조건으로 EC2 및 Fargate 사용량에 대해 저렴한 요금을 제공하는 유연한 요금 | |
예약 인스턴스 | 수요가 꾸준한 애플리케이션 예약 용량이 필요할 수 있는 애플리케이션 총 컴퓨팅 비용을 절감하기 위해 1년 또는 3년 동안 EC2를 사용하기로 약정할 수 있는 고객 |
|
전용 호스팅 | EC2에서 Microsoft 및 Oracle 같은 공급업체의 적격 소프트웨어 라이선스를 사용할 경우 기존의 물리적 서버에서 EC2를 사용할 경우 온디맨드로 구매 가능(시간당). 온디맨드 요금과 비교하여 최대 70% 할인된 예약 인스턴스로 구매 가능. |
|
초당 결제 | 온디맨드, 예약 및 스팟 형태 모든 리전 및 가용 영역 Amazon Linux 및 Ubuntu |
EKS (Elastic Kubernetes Service)
대분류 | 소분류 | 내용 |
---|---|---|
개요 | AWS 에서 만든 관리형 Kubernetes Service. EKS 를 사용하면 Kuberenetes 설치부터 운영까지 EKS가 해주기 때문에 직접 Kubernetes Cluster 를 구성하고 관리하는 것보다 쉽게 Kubernetes 를 사용할 수 있음. Amazon EKS는 오픈소스 kubernetes 의 최신버전을 실행하므로 kubernetes 의 모든 plugin과 tool을 사용할 수 있음 | |
Kubernetes Master Node | AWS EKS가 직접 관리. EKS에서 Master Node를 Control Plane 이라 부름 |
|
Kubernetes Worker Node | AWS EKS Node Groups가 관리. EKS에서 Worker Node를 Data Plane 이라 부름 |
|
이점 | 무중단 서비스를 제공한다. 점진적 업데이트를 제공하여 서비스를 중단하지 않고도 애플리케이션을 업데이트 할 수 있다. 또한 자가회복 기능이 있어 특정 컨테이너에 갑작스러운 장애가 발생하더라도 곧바로 복제 컨테이너를 생성해서 서비스를 유지할 수가 있다. |
Bastion Host
대분류 | 소분류 | 내용 |
---|---|---|
개요 | 내부 네트워크와 외부 네트워크 사이의 게이트웨이 | |
VPC 내의 모든 인스턴스에 public ip를 부여할 수는 없기 때문에, 하나의 instance에만 public ip를 부여하고 bastion host를 해당 인스턴스로 연결. | ||
외부에서는 bastion host로 접속하고, host를 통해 내부 네트워크의 사설 ip로 되어있는 instance에 접근 가능 |
ECR (EC2 Container Registry)
- https://docs.aws.amazon.com/ko_kr/AmazonECR/latest/userguide/what-is-ecr.html
- https://bluese05.tistory.com/51
대분류 | 소분류 | 내용 |
---|---|---|
개요 | Docker Container의 이미지를 저장하는 Repository 서비스. EC2에서 동작하는 Docker 이미지를 저장하고 공유할 수 있도록 제공하는 공간. IAM과 결합하여 Private Repository를 구성할 수 있다. |
반응형
댓글