AWS 18

AWS Certified Developer (DVA-C02) 합격 후기

응시한 계기KB국민은행 부트캠프 최종 프로젝트를 하면서 서버를 배포해야 하는 상황이 왔었다. 우리 팀 중에서 아무도 인프라 관련 해서 배포를 해본 적이 없다고 했었다..그래서 여기 저기 다른 팀들한테 물어보고.. 또 Docker 관련 인터넷 강의도 봐 보면서 정말 간단하고 보안을 신경 쓰지 않은 시스템 아키텍처를 구성했었다. 이후 다른 팀의 시스템 아키텍처를 보면서 나도 저런 아키텍처를 만들어 보고 싶고 또 Docker와 우리가 만든 서버를 직접 배포해 보니 내 Application이 인터넷에 배포되고 다른 사람들이 서비스를 이용한다는 게 너무 재밌었다. 그래서 안정적인 운영도 하고 싶고 , 클라우드 공부도 필요할 것 도 많이 느껴서 공부도 하면서 자격증도 따면 좋을 것 같아서 응시했다AWS 자격증 종류..

X - X-RAY

X-RAY수동 계측과 자동 게 측수동 계측→ 어떤 필드를 기록할지 , 어떤 메타데이터를 제외할지 , 어떤 HTTP/HTTPS를 Mask 할지 세밀한 제어자동 계측 → 프레임 워크가 자동으로 HTTP, 메타데이터, 필드 다 자동으로 가져온다→ 그래서 내가 필요 없는 것도 다 가져온다X-RAY 결과 필터링 → X-RAY에서 결과를 필터링하려면 Annotation을 이용해야 한다

S - SQS/SNS,S3,SAM,StepFunction,SecretManager,SSM Parameter

SQS / SNS기본 스펙 → MessageRetentionPeriod = 큐에 머물 수 있는 보존 기간→ source Queue와 DeadLetter Queue는 유형이 일치해야 한다 → Queue의 최대 크기 = 256KB→ Queue의 특징인 현재 메시지가 몇 개 있는지, 누가 가져갔는지 만 알지 지금이 몇 시인지 , 몇 번 호출했는지는 모른다Maximum Concurrency , Provisioned Concurrency → Provisioned Concurrency = 최소 보장 실행 수→ Maximum Concurrency = 최대 보장 실행 수 Timeout(SQS) → 기본 타임 아웃 = 30초→ 최대 타임 아웃 = 12시간 S3X-amz-acl → 객체를 업로드 할때 업로드할 객체에..

L - Lambda, Log

Lambda람다 실행 역할→ 람다 실행 역할은 람다가 접근해야 하는 리소스 접근 권한을 제어한다 → 즉 람다를 호출하는 주체를 제한 못한다 람다와 CloudWatch → 람다의 모든 실행 로그 (코드 실행 로그 포함) 전부 CloudWatch로 전송된다 Iterator Age → Iterator Age가 증가한다 = 스트림에 쌓인 Message를 람다가 제때 처리 못하고 있다람다와 ENI → 람다를 VPC 에 사용하려면 ENI를 Subnet에 생성해야 한다 → 이 ENI가 EC2 리소스 이기 때문에 EC2 권한이 필요하다 Visibility Time 과 CloudWatch→ Visibility Time 은 Message의 처리 실패율을 알려주지 않는다 → CloudWatchLog에서 로그를 확인하면 일부..

K - KMS

KMS키 종류 AWS 소유키AWS 관리형 키고객 관리형 키 고객 제공 키키 생성AWSAWS고객고객키 관리AWSAWS고객고객IAM 제어X제한OX자동 회전XOOX키 정책 XXOXCloudTrail감사 로그XOOX 2. 이미 존재하는 로그 그룹에 KMS로 암호화하는 방법 → 이미 존재하는 로그 그룹에 KMS 키를 연결해야 한다 → aws logs associate-kms-key 명령어를 통해 arn으로 지정 → 이후 수집 되는 로그는 자동 암호화 된다3. KMS Cross Account → KMS Key 정책에 다른 계정에 사용할 프로덕션 arn 추가

I - IAM Role

IAM RoleIAM Policy와 IAM RoleIAM Policy→ 권한(무엇을 할 수 있는지)을 정의 → 역할, 사용자 그룹에 연결IAM Role→ 권한을 부여할 수 있는 AWS Identity→ 지역이 다르면 IAM 역할이나 리소스 기반 정책을 통해 위임할 수 없다IAM Role 신뢰 정책IAM 정책은 2가지를 만족해야한다권한 정책→ 이 역할로 뭘 할 수 있는데?신뢰 정책→ 이 역할을 누가 사용할 건데?IAM 그룹과 IAM Role → 그룹 정책 : 정책을 사용자 그룹에 사용자에게 전부 적용시킨다→ IAM Role : 정책을 맡아서 쓰는 임시 권한 → 그룹에 IAM Role을 적용할 수 없다여러 계정에 IAM 권한 부여 (중앙 집중화) → 권한을 줄 계정에서 IAM 역할을 만들고 AssumeRol..

E - EC2, ECS/ECR, EventBridge

EC2NACL과 보안 그룹 → 보안 그룹 : 요청이 들어오는 것을 허용하면 나가는 응답은 자동 허용 된다→ 네트워크 : 들어오는 트래픽과 나가는 트래픽은 별개다 즉 들어오는 트래픽 허용 했다 해서 나가는 트래픽이 자동으로 허용되는 게 아니다 EC2 이벤트를 타 계정으로 보내기 → EC2 서비스의 이벤트를 타계정에 직접적으로 보낼 순 없다 →EC2 이벤트를 보낼려면 EventBridge 필요 ECS/ECR동기화 문제 → 컨테이너를 종료 했지만 클러스터에 계속 남아 있는 경우의 원인은→ 정지 상태 일때 컨테이너 인스턴스를 종료하면 이런 동기화 문제가 발생한다ECR 기본 이미지 스캔 → 이미지가 ECR 로 Push 될 때, Scan 될 때 취약점을 검사해준다EventBridgeEC2 Target → EC2는..

D - DynamoDB

DynamoDBQuery/GetItem/GetBatchItem → Query : 파티션 기준으로 항목 검색 → GetItem : 단일 항목으로 가져오기 → GetBatchItem : 여러 항목 가져오기기본 암호화→DynamoDB의 기본 암호화는 AWS 소유키를 사용한다최종 일관성 읽기 , 강력한 일관성 읽기 → 최종 일관성 읽기 : LSI, GSI 둘 다 가능 → 강력한 읽기 일관성 : LSI 만 가능 DB Stream 과 SNS → DB Stream은 직접적으로 SNS에 연결할 수 없다 대신 Lambda를 중간에 껴서 연결해야 한다

C - CloudWatch/Formation/Front , CodePipeline/Deploy, Cognito,Cache, CDK

CloudWatch상세 모니터링 & Insight → 상세 모니터링 : EC2, ELB 같은 AWS 리소스 전용→ Insight : 수동 분석, 사후 분석용 CloudWatch Evidently → 실험 : 여러 버전의 할당량을 random으로 설정해 실험→ 기능 재정의 : 랜덤으로 하기 싫으면 특정 사용자 조건에 따라 특정 버전을 강제한다 고해상도 알람→ 10초/30초 단위 평가→ 빠르게 상태 변화 감시→ SNS 로 즉시 알람 전송CloudFormation삭제 정책 → DeletionPolicy:Retain : 리소스가 스택에서 삭제되더라도 해당 리소스는 삭제하지 말고 남겨 둔다 CloudFrontus-east-1 인것들 → 인증서 → 람다 Edge도메인→ CloudFront의 도메인을 사용하려면..

A- APIGateway,ALB,AppConfig

APIGatewayREST API와 SDK → SDK로 호출을 하면 자동 재시도, 지수 백오프, 네트워크 검사 을 자동으로 해줌 라우트 구현 ? → 특정 요청이 들어오면 어떤 걸 실행할 건지 결정하는 것 AWS::ApiGateway::Deployment → 리소스/메서드가 바뀌어도 기존 Deployment는 자동 갱신 안 한다 (이전 Deployment를 계속 참조한다) 람다를 비동기 호출 하는 법 → X-Amz-Inovaction-Type : Event 헤더를 사용해 람다를 비동기 호출 한다HTTP 통합 → APIGateWay에서 타사 API를 호출할 때 필요한 헤더, 쿼리파라미터, 경로매핑을 추가해서 호출해준다502ErrorCode → Lambda는 실행했는데 APIGateWay가 응답을 이해 못 할..