AWS

송은우·2022년 1월 15일
0

제로 트러스트 모델 : 철저한 검증을 목표로 해서 각각에 권한에 걸맞는 인증 방법을 취하고 최소한의 권한만을 부여하는 것.(권한의 수평 이동이 없음)

AWS의 5원칙
보안
성능 효율성
안정성
운영 우수성
비용 최적화

보안 규정은 고객과 AWS 측 각자가 책임이 있음.
AWS 클라우드 서비스의 물리적 인프라, 소프트웨어 및 네트워킹 기능이 포함됩니다.
즉 서버 자체에 허점이나 네트워크 접근 같은 것들을 의미함
고객은 클라우드에서의 보안에 대한 책임이 있습니다. 여기에는 특정 클라우드 서비스의 구성, 애플리케이션 소프트웨어 및 민감한 데이터 관리가 포함
즉 서버에 올릴 프로그램의 구조, 권한 허용 같은 부분을 의미함.

IAM은 시스템에서 ID 및 액세스를 추적하는 서비스. 이것을 통해 제로 트러스트 모델을 적용함.
액세스는 AWS 내에서 에이전트에 대한 액세스 경계를 적용하는 IAM 정책을 사용함.

IAM의 3요소
1. 주체는 권한이 제공되는 대상을 지정합니다.
2. 작업은 수행되는 것을 지정합니다.
3. 리소스는 액세스되는 속성을 지정합니다.

IAM 정책은 AWS 주체, 리소스에 적용할 수 있음. 주체와 연관된 정책을 ID 기반 정책이라고 합니다. 리소스와 연관된 정책을 리소스 기반 정책이라고 합니다. 일부 서비스(예: S3, KMS, SES)에만 리소스 기반 정책이 적용됨에 유의하십시오.

IAM 정책 유형으로는 권한 경계, 조직 서비스 제어 정책, 엑세스 제어목록, 세션정책이 있다.

네트워크 수준 보안

프로비저닝 : 사용자와 시스템에서 사용할 수 있도록 시스템 자원을 할당, 배치해뒀다가 바로 쓸수 있도록 하는 것

데이터 암호화
데이터에 제로 트러스트 모델을 적용하는 것은 모든 곳에 있는 전송 중 및 저장 중 데이터 모두를 암호화하는 것 전송중도 암호화 한다는게 있음.
저장 중 암호화는 AWS 서비스 대부분에 기본적으로 지원되어 추가 비용이 없다고 한다.
여러 서비스는 KMS(Key Management Service)로 통합됨.
이 서비스는 CMS(Customer Management Key)의 역할을 수행함.
사용자 지정 키 저장소, AWS CloudTrail 과 통합되어 암호화된 리소스에 대한 감사, 추적, 생성 및 자동 키 회전 적용 등이 있음

성능 효율성 : 과거의 비슷한 계열의 서버를 구매해 설정하는 것이 일반적이었다. 이로 인해 다른 시스템을 주문하고 프로비저닝 하는 것이 번거롭다. 애완동물에 비유
소 모델은 단순히 단위로 접근해 처리하는 방식으로 조금 간단하게 됨.

선택의 자유(SELECT) AWS는 24개의 범주에서, 175개 이상의 서비스 종류가 있는 것을 이용함. 큰 4범주
1. 컴퓨팅 : 데이터 처리 서비스(가상머신)
2. 스토리지 : 데이터를 정적으로 저장하는 서비스(객체 저장)
3. DB : 관계가 있는 데이터를 저장하는 방식(SQL)
4. 네트워크 : 데이터 전송 방법(콘텐츠 전송 네트워크)

고려할 사항.

1. 서비스 종류 : VM기반, 컨테이너 기반, 서버리스 기반

VM 기반 : 가장 친숙한 운영체제 기반임. 비용과 유지 관리가 힘들 수 있음

컨테이너(OS 없이 실행할 수 있는 단위 유닛을 자동화 한 것) 기반 컴퓨팅을 사용하면 워크로드를 세밀하게 분할하고 빠르게 확장할 수 있지만, 추가적인 구성 및 오케스트레이션(컨테이너들의 흐름을 자동화 한 것) 복잡성이 나타날 수 있다.

bytesequence 컴퓨터가 이해하는 문자열
S3 :
객체 스토어는 많은 수의 클라이언트가 액세스해야 하는 데이터의 대규모 Blob
S3가 스토리지에 적합
평평한 구조로 저장됨(객체 아님) 앞부분에 바이트 시퀀스로 저장 방식을 다룸. 확장성이 크고 내구성이 좋다

EBS :
단일 EC2 인스턴스에서 제공되는 데이터를 유지하는 데 적합
EBS가 가상머신용 드라이브를 설정
데이터를 동일한 사이즈의 블록으로 저장(계층형 구조). 실제 파일과 유사한 형태. 독립적인 스토리지가 아닌 EC2와 같이 사용해야 한다. 확장성이 좋지 않다. (확장시 더큰 볼륨 스토리지 구매 후 데이터 이동)

ebs의 3종류
범용 볼륨 : 3 IOPS/GB의 기본 성능과 최대 10,000 IOPS의 버스트 가능. 많은 읽기/쓰기 작업이 필요한 AWS 데이터베이스에 적합.
프로비저닝 된 IOPS 볼륨 : 대역폭 병목현상을 확장하여 볼륨 용량에 관계없이 필요에 따라 읽기/쓰기 작업을 구매 가능.
동일한 SSD로 백업 되지만, 30 IOPS/GB에서 최대 20,000 IOPS까지의 높은 워크로드를 위해 설계 됨.
여러 프로비저닝 된 IOPS 볼륨을 스트라이핑하여 최대 48,000 IOPS 또는 800MBps의 처리량을 보장할 수 있음
마그네틱 볼륨 : EC2 테스트 및 개발 환경에서 사용할 수 있는 저렴한 볼륨.
많은 읽기/쓰기 작업이 필요없는 응용프로그램과 함께 사용가능.
SSD 대신 자기 HDD를 기반으로 함. (100~수백IOPS)

EFS :
동일 데이터에 다중 클라이언트 액세스를 제공
확장 가능한 스토리지와 비교적 빠른 출력이 필요한 높은 워크로드로 Application을 실행하려면 EFS를 추천.

S3 glacial:
자주 수정, 삭제가 안 되는 그냥 방치되는 빙하같은 덩어리가 있음.

관계형 데이터베이스, 비관계형 데이터베이스, 데이터 웨어하우스 솔루션(페타 바이트 수준을 분석, 빅데이터 분석), 데이터 인덱싱 및 검색 솔루션(다양한 데이터 데이터 인덱싱)

2. 관리 수준

유형이 정해지면 서비스 종류를 줄여야 한다. 일부 경우 AWS는 특정 서비스 유형에서 여러 서비스를 제공하기도 합니다. 동일한 유형의 서비스 중 여러 AWS 서비스 간의 주된 차이점은 관리 정도입니다.

컴퓨팅 서비스를 사용하며 VM 유형을 결정한 경우에는 EC2, Lightsail 및 Elastic Beanstalk 중에서 선택해야 합니다. EC2를 사용하면 제어 수준이 가장 높지만 관리 수준은 가장 낮은 반면, Lightsail의 경우 매우 향상된 관리형 경험을 위한 사용자 지정이 가능합니다. Elastic Beanstalk은 EC2와 Lightsail 사이의 관리 수준을 제공하며, 서비스 아키텍처를 위한 독자적인 프레임워크를 제공하지만 구성을 통해 사용자 지정하는 것이 가능합니다.

스토리지 서비스를 사용하는 경우에는 지정된 유형에 1개의 서비스만 제공되는 경향이 있으므로 서비스를 편리하게 선택할 수 있습니다(예: 객체 저장의 경우 S3, 파일 저장의 경우 EFS).

데이터베이스 서비스를 사용하며 관계형 유형을 결정한 경우에는 RDS와 Aurora 중에서 선택해야 합니다. RDS는 기본 데이터베이스에 대한 향상된 제어 수준을 제공하며 대부분의 관계형 데이터베이스에서 사용할 수 있습니다. Aurora는 특정 MySQL 및 PostgreSQL 버전에서만 동작하지만, 기본 스토리지에 대한 관리 수준이 향상되고 내장 클러스터가 지원됩니다.

마지막으로 특정 서비스의 선택은 기본 기술에 대한 지식 및 원하는 관리형 경험의 수준에 따라 달라질 수 있습니다.

구성

컴퓨팅 메모리, 컴퓨팅 요구 사항을 봐야 함.
VM 기반 컴퓨팅 : 메모리, cpu는 인스턴스 크기, 인스턴스 패밀리에 영향을 받음
컨테이너 기반 컴퓨팅 : 메모리와 cpu 개별적으로 설정
서버리스 컴퓨팅 : 메모리만 직접 설정 가능함

스토리지 서비스 : 대기시간, 처리량(IOPS)을 고려 해야함
블록 스토리지 : 대기 시간은 볼륨 유형(하드 디스크, SSD), 처리량은 볼륨 크기에 비례, IOPS는 볼륨 크기에 비례
파일 시스템 서비스는 대기시간, IOPS는 성능 모드에 영향을 받음, 처리량은 프로비저닝 처리량 사용 여부에 영향을 받음
객체 스토어 : 대기시간은 버킷 엔드포인트까지 지리적 거리에 영향을 받음, 처리량은 멀티파트 업로드 등과 같이 처리량에 최적화된 API의 사용 여부에 의해 영향을 받습니다.
IOPS는 구성할 수 없습니다.
객체와, 아카이브형은 IOPS를 구현할 수 없음

수평 확장 : 인스턴스 수가 증가됨. 구현 측면에서 추가적인 오버헤드(사전 처리를 하는데 필요한 작업들)가 필요함, 서비스에 접근하기 위한 트래픽 라우팅 이 필요함. 불량 인스턴스 제거를 위한 체크도 해야되고, 워크로드에 맞는 라우팅 알고리즘을 선택해야함.
결과는 확장성이 훨신 좋아진다는 것.

수직 확장 : 그냥 단순하게 인스턴스의 크기를 확장하는 것. t3.small=>t3.large 같은 방식으로 구현은 간단하지만 확장성이 낮고, 가용성(특정 시간에 접근할 수 있는 것)위험이 있음.

Right Sizing

Serverless
Reservations
Spot Instances

용어

IOPS(초당 입출력 작업/초당 수행 가능한 읽고 쓰기 수)
볼륨 : 하나의 스토리지 덩어리(컴퓨터의 C드라이브, D드라이버)
스트라이핑 : 하나 이상의 물리적으로 연결된 디스크를 논리적으로 결합해 스토리지의 성능 향상을 위해 병렬적으로 사용할 수 있는 것.
하나의 디스크 보다 빠르게 IO가 가능함. 여러 디스크로 분산처리해서
미러링 : 서로 다른 디스크를 이용해 데이터를 복제해 지속적으로 업데이트하고, 실시간 복사본을 만드는 것
on-premises: 기업 내에 db놓고 직접 운영하는 방식
provisioning : 데이터를 꺼내기 직전까지 만들어 놓는 것

profile
학생의 마음가짐으로 최선을 다하자

0개의 댓글