# 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