# Q&A for Coupang
###### AWS: QnA
- 이 자료는 2023년 4월 25일-27일 Audrey Kim이 진행하는 Architecting on AWS 과정을 수강하신 분들만 열람하실 수 있으며, 해당 자료를 클래스 외부로 공유 혹은 배포하는 것은 금지되어있습니다.
- 해당자료는 AWS Korea의 공식자료가 아니며, AWS Technical trainer인 Audrey Kim이 Class를 수강하신 고객분들의 학습을 돕기 위해 작성한 자료입니다.
#### [실습 진행 시 참고사항!]
- 실습3-7 엔진유형- aurora-mysql호환 만 선택하시고 엔진 버전 등은 기본 설정을 사용해주십시오
- (엔진 버전을 바꾸시면 인스턴스 유형이 제한됩니다.)
### QnA. RDS 쓰면 DB 업데이트를 자동으로 해주는 것 같았는데요. 그 때도 Failover 관련해서 말씀해주신 것처럼 RDS instance들을 AWS에서 순차적으로 재부팅하면서 업데이트하는 것으로 이해하면 될까요??
- 여기서 말하는 자동업데이트는 DB엔진 마이너 업데이트 만을 의미합니다. DB메이저 버전 업데이트를 위해서는 엔진버전을 수동으로 업데이트 해주셔야하고 이때 Multi-AZ를 활용하셨다면 Secondary DB엔진의 버전을 수동으로 수정한 뒤에 리부팅 해주실 수 있겠습니다.
- [DB인스턴스 업데이트](https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Upgrading.html)
### QnA. RDS의 writer instance endpoint는 DB 마스터, reader instance endpoint는 DB 슬레이브들의 로드 밸런서의 endpoint로 이해하면 될까요? 마스터에도 로드 밸런서가 있나요?
- 리더 인스턴스의 엔드포인트는 리더 인스턴스들과 연결된 도메인주소로 읽기 전용 연결 시 로드 밸런싱을 지원합니다.
- 마스터 (라이터 엔드포인트=클러스터 엔드포인트)는 쓰기요청, DDL문을 지원하는 엔드포인트입니다. db클러스터에 대해 읽기/쓰기 장애 발생 시 auto failover를 지원합니다. 즉 master 엔드포인트(dns)에 연결된 primary db ip주소의 매핑을 자동으로 변경해주는 기능을 한다고 보시면 됩니다.
- [DB엔드포인트](https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.Endpoints.html)
### QnA. 캐시 eviction policy도 설정가능한가요?
- 네, 가능합니다. Redis의 경우 기본 옵션은 lru 가장 최근에 접근 빈도를 기반으로 least recently used 를 선택해서 우선적으로 eviction 을 실행하게되지만 이 설정을 변경하실 수 도 있습니다.
- [eviction policy](https://docs.aws.amazon.com/whitepapers/latest/database-caching-strategies-using-redis/evictions.html)
### QnA. EKS로 오케스트레이션하는 환경이라고하면 그 밑에 컨테이너 호스팅은 Fargate로 되어있다고 보면 되나요?
### QnA. 람다 유즈케이스는 어떻게 되나요 ?
### QnA.서버리스 컴퓨팅이 사용자가 느끼기엔 서버리스인데, 실제 AWS 에선 호스팅이 할당되어 작동되는거죠?
### QnA. LB랑 Lambda랑 연결해서 사용할 수도 있는거죠?
### QnA. 그러면 언제 API gateway, 언제 lb를 써야할까요? 기준이 있나요??
### QnA. 재해복구 파일럿 라이트 케이스에서 궁금한 점이 있는데요. EC2를 무한정 정지해놓을 수 있나요? 혹시 인스턴스가 일정 시간 이후에는 자동으로 release 된다던지 하는 것이 있나 해서요.
## 모듈 1: Amazon Web Services 소개
- [AWS 클라우드를 사용하는 6가지 이점 by Andy Jassy, AWS CEO](https://www.youtube.com/watch?v=yMJ75k9X5_8&t=20s)
### **AWS Global Infra**
- [AWS Global Infra 안내](https://aws.amazon.com/ko/about-aws/global-infrastructure/)
- [AWS Global Infra 시각화 사이트](https://www.infrastructure.aws/)
### **AWS IAM**
- [AWS 책임공유 모델(공동책임 모델)](https://aws.amazon.com/ko/compliance/shared-responsibility-model/)
- [AWS IAM FAQ](https://aws.amazon.com/ko/iam/faqs/?nc=sn&loc=5)
- [IAM Policy simulator](https://policysim.aws.amazon.com/home/index.jsp): IAM 정책 권한을 확인해보는 시뮬레이터
- [Policy generator](https://awspolicygen.s3.amazonaws.com/policygen.html): IAM 정책 생성을 좀 더 쉽게 할 수 있도록 도와주는 툴
- [AWS STS 공식 설명서](https://docs.aws.amazon.com/ko_kr/STS/latest/APIReference/Welcome.html): AWS Security Token Service 설명서. 현재 영어만 지원
### FAQ. 리전별로 생성한 EC2, ECS 인스턴스를 다른 리전으로 복사/배포 하는 것도 가능한건가요?
- 네, 가능합니다. EC2의 틀인 AMI와, Container Image를 리전간 복제하여 다른 리전으로 각각의 리소스를 복제/배포할 수 있습니다.
- AMI 리전간 복제
- [https://aws.amazon.com/ko/premiumsupport/knowledge-center/copy-ami-region/](https://aws.amazon.com/ko/premiumsupport/knowledge-center/copy-ami-region/)
- 컨테이너 프라이빗 이미지 리전간 복제
- [https://docs.aws.amazon.com/ko_kr/AmazonECR/latest/userguide/replication.html](https://docs.aws.amazon.com/ko_kr/AmazonECR/latest/userguide/replication.html)
## 모듈 4: AWS 컴퓨팅
### **Amazon EC2**
- [Amazon EC2 FAQ](https://aws.amazon.com/ko/ec2/faqs/): Amazon EC2의 가장 기본적인 특징에 대해 살펴볼 수 있는 공식 FAQ 사이트
- [Amazon Machine Image(AMI) 공식 설명서](https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/AMIs.html)
- [Lifecycle](https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html): EC2의 수명 주기에 대한 AWS 공식 설명서
- [Intance type comparison](https://www.ec2instances.info/): EC2 인스턴스 타입별 성능과 비용 등을 한 눈에 비교할 수 있게 만든 비공식 사이트
- [CloudPing.info(EC2 ping time check)](https://www.cloudping.info/): AWS의 리전들에 http ping을 날렸을 때 응답 속도를 확인할 수 있는 비공식 사이트
- [Instance Userdata & Meta data](https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ec2-instance-metadata.html): EC2인스턴스의 사용자데이터 & 메타데이터 공식 설명서
- [Pricing: EC2 인스턴스의 구입 옵션에 대한 공식 설명서](https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/instance-purchasing-options.html)
- [On-demand](https://aws.amazon.com/ko/ec2/pricing/on-demand/)
- [Spot instance](https://aws.amazon.com/ko/ec2/spot/pricing/)
- [Reserved Instance(예약 인스턴스)](https://aws.amazon.com/ko/ec2/pricing/reserved-instances/)
- [전용 호스트 & 전용 인스턴스](https://aws.amazon.com/ko/ec2/dedicated-hosts/)
### Container
- 컨테이너 이미지 생성 시, 이미지 크기 작게 만들어서 성능 효율성 극대화 시키기
- [https://docs.docker.com/develop/develop-images/dockerfile_best-practices/](https://docs.docker.com/develop/develop-images/dockerfile_best-practices/)
- 멀티 스테이지 빌드
- [https://docs.docker.com/develop/develop-images/multistage-build/](https://docs.docker.com/develop/develop-images/multistage-build/)
### Lambda
- AWS Lambda 모범 사례[https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html)
- AWS Lambda 컨텍스트 재사용[https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html)
- AWS re : Invent 2018 | AWS Lambda의 새로운 기능 – 모든 프로그래밍 언어 사용 및 공통 구성 요소 공유 : [https://aws.amazon.com/blogs/aws/new-for-aws-lambda-use-any-programming-language-and-share-common- 구성 요소 /](https://aws.amazon.com/blogs/aws/new-for-aws-lambda-use-any-programming-language-and-share-common-components/)
- AWS Lambda 요금 계산기 : [https://s3.amazonaws.com/lambda-tools/pricing-calculator.html](https://s3.amazonaws.com/lambda-tools/pricing-calculator.html)
## 모듈 3: AWS 네트워크
- [FAQ](https://aws.amazon.com/ko/vpc/faqs/)
- [VPC & Subnet 공식 설명서](https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/VPC_Subnets.html)
- [VPC 보안 및 필터링](https://aws.amazon.com/ko/vpc/faqs/#Security_and_Filtering)
## 모듈 5: AWS 스토리지
### **Amazon S3**
- [S3 FAQ](https://aws.amazon.com/ko/s3/faqs/)
- [S3 Storage class](https://aws.amazon.com/ko/s3/storage-classes/)
- [S3 Glacier](https://aws.amazon.com/ko/glacier/faqs/?nc=sn&loc=6)
### **Amazon Elastic Block Store**
- [EBS FAQ](https://aws.amazon.com/ko/ebs/faqs/)
- [EBS 볼륨 유형](https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ebs-volume-types.html)
- [Instance storage 공식 설명서](https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/InstanceStorage.html)
- [동영상: 인스턴스 스토어와 EBS는 어떤 차이가 있습니까?(!영어!)](https://aws.amazon.com/ko/premiumsupport/knowledge-center/instance-store-vs-ebs/)
- [인스턴스 재부팅, 중지, 최대 절전 모드 및 종료의 차이](https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html#lifecycle-differences)
## 모듈 6: 데이터베이스
### **Amazon RDS**
- [RDS FAQ](https://aws.amazon.com/ko/rds/faqs/)
- [Multi-AZ 배포](https://aws.amazon.com/ko/rds/features/multi-az/)
### **Amazon DynamoDB**
- [DynamoDB FAQ](https://aws.amazon.com/ko/dynamodb/faqs/)
- [pricing](https://aws.amazon.com/ko/dynamodb/pricing/)
### QnA. RDS 쓰면 DB 업데이트를 자동으로 해주는 것 같았는데요. 그 때도 Failover 관련해서 말씀해주신 것처럼 RDS instance들을 AWS에서 순차적으로 재부팅하면서 업데이트하는 것으로 이해하면 될까요??
- 여기서 말하는 자동업데이트는 DB엔진 마이너 업데이트 만을 의미합니다. DB메이저 버전 업데이트를 위해서는 엔진버전을 수동으로 업데이트 해주셔야하고 이때 Multi-AZ를 활용하셨다면 Secondary DB엔진의 버전을 수동으로 수정한 뒤에 리부팅 해주실 수 있겠습니다.
- [DB인스턴스 업데이트](https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Upgrading.html)
### QnA. RDS의 writer instance endpoint는 DB 마스터, reader instance endpoint는 DB 슬레이브들의 로드 밸런서의 endpoint로 이해하면 될까요? 마스터에도 로드 밸런서가 있나요?
- 리더 인스턴스의 엔드포인트는 리더 인스턴스들과 연결된 도메인 주소입니다. 이 엔드포인트는 읽기 전용 연결 시 로드 밸런싱을 지원합니다.
- 마스터 (라이터 엔드포인트=클러스터 엔드포인트)는 쓰기요청, DDL문을 지원하는 엔드포인트입니다. db클러스터에 대해 읽기/쓰기 장애 발생 시 auto failover를 지원합니다. 즉 master 엔드포인트(dns)에 연결된 primary db ip주소의 매핑을 자동으로 변경해주는 기능을 한다고 보시면 됩니다.
-
- [DB엔드포인트](https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.Endpoints.html)
### QnA. 캐시 eviction policy도 설정가능한가요?
- 네, 가능합니다. Redis의 경우 기본 옵션은 lru 가장 최근에 접근 빈도를 기반으로 least recently used 를 선택해서 우선적으로 eviction 을 실행하게되지만 이 설정을 변경하실 수 도 있습니다.
- [캐시 eviction policy](https://docs.aws.amazon.com/whitepapers/latest/database-caching-strategies-using-redis/evictions.html)
## 모듈 7: 모니터링, 최적화 및 서버리스
### **Amazon Elastic Load Balancing**
- [ELB FAQ](https://aws.amazon.com/ko/elasticloadbalancing/faqs/)
- [종류별 특징 비교표](https://aws.amazon.com/ko/elasticloadbalancing/features/?nc=sn&loc=2#Product_comparisons)
### **Amazon CloudWatch**
- [CloudWatch FAQ](https://aws.amazon.com/ko/cloudwatch/faqs/)
### **EC2 Autoscaling**
- [EC2 Auto scaling](https://aws.amazon.com/ko/ec2/autoscaling/faqs/)
## 모듈 7: 과정 요약
- 자격증 시험 정보
- [자격증 시험 전반적인 정보](https://www.notion.so/Q-A-for-Coupang-1-7af20d9483464111a8e481a641634314)
- 이번 과정과 연관된 자격증 - [AWS Certificed Cloud Practitioner](https://aws.amazon.com/ko/certification/certified-cloud-practitioner/?ch=cta&cta=header&p=2)
- **형식**
- 65개 문항, 객관식 또는 복수 응답 / 90분
- [시험 안내서](https://d1.awsstatic.com/ko_KR/training-and-certification/docs-cloud-practitioner/AWS-Certified-Cloud-Practitioner_Exam-Guide.pdf)
- [샘플 문항](https://d1.awsstatic.com/ko_KR/training-and-certification/docs-cloud-practitioner/AWS-Certified-Cloud-Practitioner_Sample-Questions.pdf)
- 연관된 디지털 과정
- [AWS Cloud Practitioner Essentials 한국어 강의](https://explore.skillbuilder.aws/learn/course/external/view/elearning/13522/aws-cloud-practitioner-essentials-korean-na-hangug-eo-gang-ui)
- [AWS Technical Essentials 한국어 강의](https://explore.skillbuilder.aws/learn/course/external/view/elearning/15366/aws-technical-essentials-korean-na-hangug-eo-gang-ui)
# 축약어 목록
### AWS
- Amazon Web Services
### M/C
- AWS Management Console: Browser로 접근할 수 있는 Graphic 기반의 AWS 서비스를 사용하기 위한 FrontEnd
- AWS 관리 콘솔
### CLI
- Command Line Interface
### SDK
- Software Development Kit
### IDE
- integrated development environment: Code를 직접 작성하는 곳
- 통합 개발 환경
### IAM
- Identity and Access Management
### ACL
- Access Control List
- 권한 제어 목록
### S3
- Simple Storage Service
### ARN
- Amazon Resource Name
### CORS
- Cross Origin Resource Sharing
### RDS
- Relational Database Service
### RCU
- Read Capacity Unit
- 읽기 용량 단위
### WCU
- Write Capacity Unit
- 쓰기 용량 단위
### GSI
- Global Secondary Index
- 글로벌 보조 인덱스
### LSI
- Local Secondary Index
- 로컬 보조 인덱스
### DAX
- DynamoDB Accelerator
### GUI
- Graphic User Interface
### CRUD
- Create 생성
- Read 읽기
- Update 수정
- Delete 삭제
### VM
- Virtual Machine
- 가상 머신
### ECR
- Elastic Container Registry: Container Image를 저장하는 Repository
### REST API
- Representational state transfer application programming interface: 사람이 이해할 수 있는 URL을 통해, 요청(Request)과 응답(Response)을 받을수 있게 한 약속
### DDD
- Domain Driven Development
### STS
- Security Token Service
### Idp
- Identity Provider
### SAM
- Serverless Application Model