Cloud/AWS

클라우드 스터디 정리
Cloud/AWS

[SAA] Bastion 호스트 고가용성

High Availability for a Bastion Host 고가용성 요새 호스트를 만드는 법 VPC와 가용 영역 두 개가 있으며 각 가용 영역에는 공용 서브넷과 사설 서브넷이 존재 요새 호스트는 사설 서브넷 내의 EC2 인스턴스에 SSH 접속할 수 있게 하는 것을 뜻함 이를 위해서는 공용 인터넷인 클라이언트가 공용 서브넷에 배포된 요새 호스트에 액세스할 수 있어야 함 포트 22에서 요새 호스트에 SSH 접속을 하면 요새 호스트에서 사설 서브넷으로 SSH 접속을 하게 됨 또한 다른 가용 영역의 사설 서브넷에 있는 EC2 인스턴스에도 요새 호스트를 이용해 직접 SSH 접속을 할 수 있음 이를 위해서는 요새 호스트를 고가용성으로 만들어야 함 요새 호스트를 고가용성으로 만들기 위해서는 다른 가용 영역에 ..

Cloud/AWS

[SAA] EC2 인스턴스 고가용성

Creating a highly available EC2 instance EC2 인스턴스는 기본적으로 하나의 가용 영역에서만 실행되므로 가용성이 그리 높지 않지만 가용성을 높일 수 있음 웹 서버를 가동하고 있는 공용 EC2 인스턴스가 있고 웹 서버에 액세스하려고 한다면 EC2 인스턴스에 탄력적 IP를 연결하고 사용자가 탄력적 IP를 통해 웹사이트에 곧장 액세스하게 해야 함 그러면 사용자는 EC2 인스턴스에서 직접 작업할 수 있고 웹 서버에서 결과를 받게 됨 고가용성 EC2 인스턴스를 만드는 방법 1) 대기 인스턴스 + CloudWatch Events or 경보 이 경우, 만약 일이 잘못된 경우를 대비해 대기 인스턴스를 만들어 EC2 인스턴스의 가용성을 높일 수 있음 뭔가 잘못됐다는 것을 알려면 모니터링이..

Cloud/AWS

[SAA] AWS의 고성능 컴퓨팅 (HPC)

High Performance Computing (HPC) 고성능 컴퓨팅이라고 불리는 HPC는 많은 리소스를 단시간에 생성 가능하게 할 수 있는 클라우드에서 실행하기에 최적이며 리소스를 추가해서 결과 추출 시간을 단축할 수 있으며 사용량에 대해서만 비용을 지불 작업이 끝나고 나면 전체 인프라를 파괴해서 요금이 나오지 않도록 할 수 있음 인스턴스가 수행하는 수많은 작업을 처리할 수 있음 유전체학, 컴퓨터 화학, 금융 위험 모델링, 기상 예측 등에 사용되며 머신 러닝, 딥 러닝, 자율 주행 등에도 사용됨 Data Management & Transfer HPC의 작업을 돕는 AWS의 서비스 중, 데이터를 어떻게 관리하고 AWS로 보낼지 Direct Connect을 사용해 사설 보안 네트워크를 통해 클라우드로 ..

Cloud/AWS

[SAA] AWS에서 IP 주소 차단

Blocking an IP address 클라이언트로부터 요청을 받았을 때 애플리케이션까지 가는 과정에서 때로는 IP 주소를 클라이언트로부터 막고 싶어할 수 있으며 이 때 애플리케이션에 액세스를 시도할 때의 방어선을 알아야 함 VPC의 보안 그룹에서 인스턴스는 공용 IP를 써서 공용 액세스가 가능하고 클라이언트들도 EC2 인스턴스에 접근 가능함 그러므로 클라이언트 차단을 원한다면 VPC 레벨에서 VPC의 네트워크 ACL (NACL) 방어가 첫 번째 방어선이고 이 네트워크 ACL에서는 차단 규칙을 만들 수 있음 이는 클라이언트 IP에 대해 아주 간단하고 빠르며 저렴하게 만들 수 있고 클라이언트를 내보내게 됨 이 때 EC2 인스턴스의 보안 그룹에는 차단 규칙을 만들 수 없고 허용 규칙만 가능하므로 EC2 인..

Cloud/AWS

[SAA] AWS의 캐싱 전략

Caching Strategies API Gateway 앞에 CloudFront가 있으며 애플리케이션 로직 앞에 EC2나 Lambda가 있을 수 있음 애플리케이션은 데이터베이스에서 데이터를 저장하고 쓰며 Redis, Memcached 혹은 DAX 등의 내부 캐시를 쓸 수 있음 그럴 경우 동적 콘텐츠와 동적 라우팅이 실행되게 되며 CloudFront로 가는 클라이언트나 CloudFront가 S3에서 데이터를 소싱하는 경우 정적 콘텐츠 라우팅도 할 수 있음 CloudFront는 두 개가 있으며, 하나는 엣지에서 캐싱을 하므로 사용자와 최대한 가까이에서 캐싱을 함 CloudFront에서 캐싱을 허용하면 캐시를 히트하는 모든 사용자들이 즉시 응답을 빠르게 얻을 수 있음 하지만 엣지에 있기 때문에 백엔드에서 변화..

Cloud/AWS

[SAA] AWS의 이벤트 처리

Lambda, SNS & SQS SQS와 Lambda를 사용하면 SQS 대기열과 람다 함수가 있으며 이벤트들은 SQS 대기열로 가게 되고, Lambda 서비스가 SQS 대기열을 poll하게 됨 이 때 메시지를 다시 SQS 대기열에 보내고 poll을 재시도한다는 문제가 발생하여 무한 반복될 수 있으며 그러면 메시지에 큰 결함이 발생할 경우 메시지를 보내기 위해 SQS를 만들어 5번 정도 시도해서 데드 레터 대기열로 보내게 됨 SQS FIFO와 Lambda도 사용 가능하며 메시지가 순서대로 처리될 때 람다 함수가 대기열로부터 메시지를 얻으려는 시도 및 재시도를 하게 되며 순서대로 처리하기 때문에 메시지 하나가 중간에 걸리면 전체 대기열의 처리가 막히게 되므로 각 겨웅에 역시 데드 레터 대기열을 만들어 메시지..

Cloud/AWS

[SAA] AWS 백업

AWS Backup 완전히 관리되는 백업 서비스이며 주로 중앙에서 관리하고 AWS 서비스 간의 백업을 자동화하므로 사용자 지정 스크립트나 메뉴얼을 만들 필요가 없으며 백업 서비스에서 모든 것이 직접 관리됨 AWS의 많은 서비스들을 지원하는데 FSx, EFS, DynamoDB, EC2 인스턴스, EBS, 모든 DB엔진에 대한 RDS, Aurora, Volume Gateway를 위한 Storage Gateway도 지원 리전 간 백업과 계정 간 백업도 지원하므로 AWS에 백업 구성에 핵심적인 서비스 지정 시간 복구(PITR)을 지원하며 온디맨드와 예약된 백업을 지원 태그 기반으로 백업을 생성할 수 있으므로 EC2 인스턴스나 EBS 볼륨을 올바르게 태그하면 태그를 기반으로 한 백업 정책을 갖게 됨 백업 정책을 ..

Cloud/AWS

[SAA] 대규모 데이터 세트를 AWS로 전송

Transferring large amount of data into AWS 대규모 데이터를 AWS로 전송하는 방법과 여러 제약에 따른 최적의 방식 데이터를 보내는 방법에는 데이터셋의 크기에 따라 달라짐 일회성 전송 예) 200TB의 데이터를 클라우드로 옮기고 싶으며 현재 인터넷 연결 속도는 100Mbp일 때, 여러 방법이 존재 방법1) 공용 인터넷을 사용하거나 공용 인터넷을 사용해 사이트 간 VPN (Site-to-Site VPN) 을 설치하는 방법 장점은 설치가 빠르고 바로 연결이 가능함 200(TB)*1000(GB)*1000(MB)*8(Mb)/100 Mbps = 16000000s = 185일 걸리므로 반 년이 걸림 데이터의 크기에 따라 적합할 수도 아닐 수도 있음 방법2) Direct Connect..