AWS의 액세스 옵션 Management console(protected by password + MFA) CLI(protected by access keys) SDK(for code: protected by access keys) 위의 1, 2번에서 사용하는
IAM 계정에 대해 알아 보기 전에 다음 사항을 짚고 넘어가는 것이 좋을 것 같다.Q: AdministratorAccess 정책은 루트 계정에서의 권한과 같아 보이는데 굳이 IAM 계정을 만들 필요가 있을까?A: 루트 계정과 IAM admin 권한에는 가장 큰 차이점이
사용자가 원하는 대로 비밀번호 정책을 생성할 수 있다. \- 최소 패스워드 길이 \- 대문자, 소문자를 허용할 지 등등AWS에서 강력히 권고되는 필수 사항이다.MFA는 비밀번호의 조합을 이용한다. \- Password you know + Security dev
Billing은 루트 계정에서 접근 권한을 주지 않는 이상 admin 유저라 해도 확인이 불가능하다.따라서, 아래와 같이 루트 계정에서 My Account > IAM User and Role Access to Billing Information > Edit > Acti
EC2는 Elastic Compute Cloud의 약자이며, AWS의 Infrastructure as a Service를 그대로 실행하고 있다.Renting virtual machines \- EC2 인스턴스라 부른다.Virtual drive에 EBS 볼륨에 데이터
SSH로 접속하기 위해 다운로드 받은 pem key를 사용해야 한다.그 전에 생각해야 하는 점은 해당 key가 permission 0644라는 점이다. \- 이 경우 키가 개방되어 있어 개인키가 누출될 가능성이 있다. \- 이를 그대로 놔두면 bad permi
Elastic IPs 기본적으로, EC2 인스턴스를 시작하고 중지할 때 퍼블릭 IP는 변화한다. 만약 고정된 공공 IP를 사용하고 싶다면 Elastic IP를 사용할 수 있다. 이는 퍼블릭 IP이며 지우지 않는 이상 계속 갖고 있게 된다. 한 인스턴스 당 하나만 att
서버리스 새로운 패러다임으로, 개발자들은 서버리스를 사용할 때 더 이상 서버를 관리할 필요가 없어졌다. 즉, 서버가 없어지는 것이 아니라 더 이상 서버를 관리하지 않는 것 뿐이다. 함수를 배포하기만 하면 된다. 원래는 Function as a Service(FaaS)
완전 관리형 데이터베이스 고가용성이며 여러 AZ에 자동으로 복제된다.NoSQL 데이터베이스분산형 데이터베이스로 대규모 워크로드에 확장하기 좋아 수평 확장 가능성이 있다.많은 용량을 저장할 수 있다. \- 한 테이블 안에서 일 초 당 수백번의 요청을 할 수 있다.
IAM 허가 정책을 생성해 User 또는 Role에 attatch 하여 접근을 허가할 수 있다.그러면 API Gateway를 호출할 경우 IAM 허가를 증명할 수 있다.사용자의 인프라 내로 API 액세스를 제공하는 것이 좋다.IAM 자격 증명이 헤더에 있는 "sig v
이제부터 블로그를 하나 만든다고 가정해 보자. 블로그는 대부분 쓰기 요청보다 읽기 요청이 더 많다는 점을 기억하자. Serverless 인프라 이용해 블로그 만들기 정적 컨텐츠를 글로벌 하게 클라이언트에 제공하기 S3로부터 사진 데이터를 받아온다고 가정하면, 클라
API Gateway란? > API Gateway는 서버리스로 사용할 수 있으며 클라이언트에게 공유되고 접근 가능한 REST API를 생성할 수 있도록 만들어 준다. API Gateway는 람다 함수에 요청을 대리하는 역할을 할 수 있다. 특성 완전 관리형으로 관
Content Distribution Network(CDN)이다.읽기 능력을 향상시키기 위해 컨텐츠는 엣지에 캐시 된다.대략 200개 이상의 엣지가 전세계적으로 분포되어 있다.배포된 서비스를 거부하는 등의 공격으로부터 보호하기 위한 방화벽을 만들어 DDos 공격을 막는
아마존에서 제공하는 서비스는 3가지가 있다.ECS아마존의 자체 container 플랫폼이다.Fargate아마존의 serverless container 플랫폼이다.EKS아마존의 관리형 쿠버네티스이다(오픈소스 컨테이너 관리 플랫폼).ECS = Elastic Containe
아래의 예시에서는 service A가 두 개의 Task를 운영하고 있다.이 때, 유저가 접속하면 CPU Usage는 매우 부족한 상황이라 가정하자.Auto scaling을 설치하면 많은 유저가 service에 접속할 경우 특정 CPU 이상 사용하게 될 경우 CloudW
사용한 만큼 금액을 지불하며 컨테이너를 AWS에 저장, 관리, 배포하기 위해 사용한다.ECS와 통합해 사용이 가능하며 IAM으로 보안 설정을 할 수 있고 S3 지원이 가능하다.이미지 취약성 스캐닝, 버전 태그, 이미지 lifecycle 관리가 가능하다.배포 과정을 자동
RDBMS(SQL/ OLTP(OnLine Transaction Processing): RDS, Aurora \- RDS: Postgres, MySQL, MariaDB, ... \- Aurora: 엔터프라이즈급 데이터베이스 \- 웹사이트에 제공하기 좋으며
AWS KMS(AES-256 암호화)를 사용해 마스터와 읽기 복제본을 암호화 할 수 있다.인스턴스 시작시 암호를 정의한다.만약 마스터가 암호화 되지 않았다면 읽기 복제본도 암호화 될 수 없다.오라클과 SQL 서버를 위한 Transparent Data Encryption
클라우드에 최적화된 RDS이다.MySQL 보다 5배, PostgreSQL보다 3배 빠르다.15개까지 읽기 복제본을 가질 수 있으며 복제 속도가 RDS 보다 훨씬 빠르다.빠른 장애 대응을 하며 클라우드 네이티브이기 때문에 더 높은 가용성을 갖는다.RDS보다 20% 정도
자동화된 데이터베이스 인스턴스화와 실제 사용에 근거한 auto-scaling 기능을 제공한다.불연속적이며 간헐적인, 그리고 예측 불가능한 작업량을 가질 때 사용하기 좋다.초 단위로 금액을 지불하기 때문에 비용 측면에서 훨씬 효율적이다.클라이언트가 Proxy Fleet(
ElastiCache 관리된 Redis나 Memcached를 제공해 준다. 마치 RDS가 관리된 Relational Database를 제공해 주는 것과 마찬가지이다. RDS에서와 같이 aws에서 os 관리, 패칭, 최적화 등등의 작업을 관리해 준다. 캐시는
S3 위의 SQL layer라 볼 수 있다. \- S3의 데이터를 쿼리하기 위해 사용한다.완전한 서버리스 데이터베이스이다.얼마나 많은 쿼리를 사용했는 지에 따라 비용을 지불한다.쿼리 결과를 S3에 다시 적재할 수 있다.IAM을 통해 보안을 높일 수 있다.1회용 SQL
관리형 ETL(Extract + Transform + Load) 서비스이다.분석을 위해 데이터를 추출하고 변형하는 데 사용된다.서버리스 서비스이다.데이터의 카탈로그로, 메타데이터이다. \- 메타데이터는 데이터에 대한 정보를 가지고 있다.Glue 크롤러가 데이터베이스에
인스턴스가 동작하는 동안 네트워크 드라이브에 부착할 수 있는 볼륨(스토리지)이다.인스턴스가 종료된 뒤에도 데이터가 유지될 수 있도록 만들어 준다. \- 따라서, 인스턴스를 재시작 할 경우 해당 볼륨을 그대로 이용하면 데이터를 유지할 수 있다.한 번에 한 인스턴스에만
Encrypted volume 생성시 특징 \- 데이터는 볼륨 내에서 암호화 된다. \- 볼륨과 인스턴스 사이에서 전송 되는 데이터는 암호화 된다. \- 모든 스냅샷은 암호화 되며 해당 스냅샷으로부터 생성되는 볼륨도 암호화 된다.암호화 된다고 latenc
EFS는 많은 EC2 인스턴스에 탑재될 수 있는 Network File System(NFS)이다.EFS는 EBS와는 달리 multi-AZ에 마운트가 가능하다. \- 따라서, 모든 EC2 인스턴스가 EFS 드라이브의 같은 파일에 접근할 수 있다.고 가용성이지만 비싸다(
전세계적으로 유니크한 이름을 사용해야 한다.리전에 대해 buckets가 정의 된다.네이밍 규칙 \- No uppercase \- No underscore \- 반드시 소문자 또는 숫자로 시작해야 한다.Objects는 하나의 파일이며 이는 Key를 가지고
S3 암호화 SSE-S3 AWS에서 관리 되는 keys를 이용해 암호화 한다. SSE-KMS KMS를 이용해 암호화 한다. SSE-C 사용자에 의해 정의된 keys를 이용해 암호화 할 수 있다. Client Side Encryption 클라에서 암호화를 해결 한
IAM policies: 어떤 API 호출을 허용할 지에 대한 권한을 부여한다.Bucket Policies: S3 콘솔에서 정할 수 있는 버킷 정책으로, 교차 계정의 접근 허용 설정도 가능하다.Object Access Control List (ACL)Bucket Acc
origin은 scheme(protocol), host(domain), port로 이루어져 있다. \- ex) https://www.example.com: 이 주소는 origin이며 scheme은 HTTPS이고 host는 www.example.com이고 p
DNS(Domain Name System)는 사람에게 친숙한 표현인 호스트명을 기계에 익숙한 IP 주소로 변환해 주는 시스템을 말한다.ex) www.google.com => 172.217.18.36Domain Name System which translates the
TTL은 Route53의 Create record 에서 레코드 생성시 설정할 수 있다.높은 TTL(eg. 24hrs) \- Route53으로 가는 트래픽이 줄어든다. \- 클라이언트가 오래된 데이터를 받게 될 가능성이 있다.낮은 TTL(eg. 60s) \- Ro
Routing Policies는 Route53이 어떻게 DNS 쿼리에 응답할 지를 정의한다.라우팅이라는 이름 때문에 오해할 수가 있는데, 여기서 말하는 라우팅은 로드 밸런서가 트래픽을 라우팅 하는 것과는 다른 개념이다. \- 트래픽은 Route53을 통과하지 않으며
HTTP Health Checks는 퍼블릭 리소스에 대해서만 사용 가능하다.Health checks를 이용해 자동화된 DNS 장애 복구(failover)가 가능하다.Health checks는 아래 세 가지 기능을 할 수 있다. 1\. endpoint를 모니터링 할 수
Traffic flow는 생성하려는 레코드의 트래픽 구조가 크고 복잡한 경우 이용하기에 좋다.결정 트리에 각각 라우팅 하는 것을 시각적으로 볼 수 있도록 하는 visual editor가 제공 된다. \- 이를 통해 생성한 레코드는 Traffic flow policy로
도메인 명은 Domain Registrar에서 사거나 등록해서 매년 요금을 지불해 사용할 수 있다. \- Domain Registrar: GoDaddy, AmazonRegistrar, ... 등등Domain Registrar는 보통 DNS 레코드를 관리할 수 있도록
Load Balances란 트래픽을 여러 개의 서버(e.g., EC2 instances)로 보내는 것(downstream)을 말한다.부하를 여러 downstream 인스턴스로 분산할 수 있다.애플리케이션으로 향하는 단일 액세스 지점을 expose 할 수 있다.downs
Network Load Balancer(v2) NLB는 4계층 프로토콜인 TCP/UDP를 지원한다. 초 당 수백만 건의 요청을 처리할 수 있다. 100ms 정도의 낮은 지연 시간을 보인다(ALB의 경우 400ms 정도의 지연시간을 갖는다). NLB는 AZ 당
Classic Load Balancer(v1) TCP(4계층), HTTP/HTTPS(7계층) 프로토콜을 지원한다. TCP 또는 HTTP 기반의 health check를 지원한다. 고정된 호스트명을 갖는다. xxx.region.elb.amazonaws.com CLB
Sticky Sessions(Session Affinity) 동일한 유저가 동일한 인스턴스로 리다이렉팅 되도록 만드는 것을 stickiness라 한다. CLB & ALB에서 사용할 수 있다. stickiness를 위해서 cookie가 사용되는데, 이는 만료 날짜를 갖
SSL 인증서를 이용하면 클라이언트와 로드 밸런서 사이에서 데이터를 전송할 때 전송 중 암호화(in-flight encryption)가 가능하다. \- 따라서, 발신자와 수신자만 해독이 가능하다.SSL은 보안 socket 계층(Secure Sockets Layer)을
인스턴스가 등록 취소 또는 비정상적인 상태일 때 인스턴스에 어느 정도의 시간을 주어 in-flight 요청을 완료할 수 있도록 만들어 주는 기능이다.ELB 타입마다 부르는 이름이 다르다. \- Connection Draining: CLB에서 부르는 이름 \- Der
ASG를 통해 scale-out/scale-in 할 수 있으며 최소/최대 개수의 머신이 항상 작동하도록 할 수 있다. 또한, scale-out 하면 로드 밸런서에 자동으로 새로운 인스턴스가 등록 된다.Launch configuration \- EC2 instance를
Dynamic Scaling Policies Target Tracking Scaling 가장 간단하고 쉬운 방법이다. 예를 들면, ASG의 평균 CPU가 40% 언저리에 있도록 설정할 수 있다. Simple / Step Scaling CloudWatch 알람을 생성할
ASG의 종료 규칙 인스턴스가 종료되는 방식에는 규칙이 있다. 기본 규칙 ASG는 가용 영역 전체에 걸쳐 인스턴스 수의 균형을 맞추려 할 것이다. 간단한 버전의 규칙 ASG는 기본 종료 규칙이 있는데 이에 대한 더 간단한 버전의 규칙이 있다. 그 규칙은 다음과 같다.
소비자는 대기열에서 메시지를 폴링(poll) 하는데 이는 대기열에게 소비자 앞으로 온 메시지가 있는지 물어보는 것을 뜻한다.만약 대기열에 메시지가 있으면 소비자는 이 메시지를 폴링 해서 정보를 얻는다. 그러면 이 메시지를 처리한 후 대기열에서 삭제 한다.SQS Queu
아래와 같이 교차 계정에 대해 SQS를 사용할 수도 있다. 이럴 때는 EC2 인스턴스를 가진 계정을 허용하는 access policy를 SQS에 작성해야 한다. 아래의 경우, S3에 객체가 업로드 되자마자 SQS로 메시지를 전송하도록 한다. Condition에는 S3
Message Visibility Timeout 소비자가 특정 메시지를 폴링하면 해당 메시지는 다른 소비자들에게는 보이지 않는다. 이렇게 다른 소비자들에게 보이지 않는 시간은 30초(message visibility timeout)이기 때문에 해당 메시지를 폴링한 소비
Long Polling 소비자가 대기열에 메시지를 요청했을 때 대기열에 아무 것도 없다면 메시지 도착을 기다리면 되는데 이를 롱 폴링 이라고 한다. 즉, 계속 기다리고 있는 동안 메시지가 들어오면 그 때 해당 메시지를 받게 된다. 이렇게 하는 이유는 두 가지이다.
SQS with ASG 특별히 사용 가능한 지표가 없기 때문에 사용자 지정 지표 = 대기열 길이/ 인스턴스의 수 인 지표를 생성해야 한다. SQS to decouple between application tiers EC2 인스턴스에 다량의 요청이 들어오면 ASG가
만약 특정 서비스를 구매했을 때 다양한 채널로 알림을 보내고 싶을 때 직접 통합해 보내는 방법도 있지만 번거로운 방법이다. 이를 대체할 방법으로 Pub/ Sub 방식이 있다. 구매 서비스가 SNS topic으로 메시지를 전송해서 메시지를 게시하도록 만들 수 있다. 만약
Fan out pattern Fan out은 SNS 주제로 한 번 메시지를 전송하면 원하는 숫자 만큼의 SQS 대기열들이 SNS 주제를 구독하도록 해서 SNS로 전송된 모든 메시지를 수신할 수 있도록 하는 것이다. 예를 들어, 아래와 같이 구매 서비스가 두 개의 SQ
Kinesis를 이용하면 스트리밍 데이터를 실시간으로 쉽게 수집/처리/분석할 수 있다.Kinesis를 이용해 Application logs, Metrics, Website clickstreams 등을 처리할 수 있다.Kinesis는 네 가지 요소로 이루어져 있다. \
AWS 자격증 시험 준비 워크샵 내용 정리(시험에 잘 나오고 헷갈리는 내용 위주로 정리함)3가지 SSE-S3, SSE-KMS, SSE-C가 있다.SSE-S3: S3가 관리한다. \- 다른 리전에서도 복제된 데이터를 복호화 할 수 있다.SSE-KMS는 다른 리전으로
여러 상황에 따른 Solutions architecture로서의 해결책에 대해 알아 보도록 한다.어떤 회사에서 자주 접근하는 데이터를 S3에 저장하려고 하는 데 이 때 객체의 삭제 또는 생성이 일어날 경우 S3 버킷이 SQS에 알림을 보내도록 설정하고 싶다. 이 알림은
만약 어떤 회사에서 고객의 기밀 데이터를 보호하기 위해 authentication token을 통해 EC2 인스턴스에 대해 특정한 프로필 자격 증명(credentials)을 사용해서만 RDS 데이터베이스에 액세스할 수 있도록 하도록 설정해야 한다고 하자. 만약 이 회사
이 글은 Udemy의 AWS Certified Solutions Architect Associate Practice Exams를 공부하며 정리한 것입니다. 만약 어떤 회사가 Windows Server용 IIS(인터넷 정보 서비스)를 사용하는 웹 응용 프로그램을 가지고