## 서비스 ### IaaS, PaaS, SaaS - Iaas는 인프라를 대여해주는 서비스다. EC2 서비스와 같이, 인프라를 포함해 설정할 수 있는 컴퓨팅 모델을 빌려주기 때문에 IaaS 문제는 항상 EC2와 함께 기억해야 한다. [[클라우드 컴퓨팅 모델#^676148]] - PaaS는 플랫폼인데, 정확히 이해가 되지는 않는다. 기억할 것은 AWS Elastic Beanstalk 서비스다. 애플리케이션을 업로드하면 용량 프로비저닝, 로드밸런싱 등을 모두 자동으로 처리한다. 하드웨어와 운영체제를 제공해주기 때문에 이것을 생각할 필요 없이 애플리케이션 배포 및 관리만 신경쓴다. [[클라우드 컴퓨팅 모델#^2e46b7]] - SaaS는 웹메일을 생각하면 된다. 서비스를 통으로 빌려준다. 서비스의 업데이트, 인프라에 대해 생각할 필요가 없다. ### AWS SDK - 소프트웨어 개발 기트. 선호하는 프로그래밍 언어를 사용해 AWS 서비스를 만들 수 있음 ### AWS Service Catalog - 조직에서 미리 만들어둔 템플릿을 배포해서 동일하게 사용할 때 유용하다. 예를 들어, Linux의 특정 버전, 설정을 정해놓는다. 중앙에서 이걸 배포해서 쓰도록 한다. IaC(Infrastructure as Code)로고 관리할 수 있다. [[AWS 개발자 도구#^e78cb6]] - [[Practice Exam 06 KR#21.다음 중 리소스를 더 쉽게 분류, 관리 및 필터링할 수 있는 것은 무엇입니까?]] ### AWS-Managed Services & Customer-managed Services - AWS 관리형 서비스는 하드웨어 프로비저닝, 소프트웨어 설정, 패치, 백업 등을 자동화한다. AWS에서 관리함으로 빠른 성능, 고가용성, 보안이 좋다. - Amazon RDS, DynamoDB, Redshift, CloudFront, CloudSearch가 있다. - 고객 관리형 서비스는 고객이 완전히 관리하는 IaaS 서비스이다. EC2 인스턴스를 배포할 때, 운영체제, 애플리케이션 업데이트, 방화벽 등을 전부 고객이 관리해야 한다. - Amazon EC2, VPC, IAM이 있다. ### AWS CloudTrail - 무슨 문제가 발생했을 때, 누가 접속해서 문제를 발생시킨 것인지를 확인할 수 있다. 누가, 무엇을 어디서 전화를 걸었는지 등 API 및 사용자 활동을 기록한다. - [[Practice Exam 01 KR#^ca5cff]] ### Amazon CloudWatch - CloudTrail은 사용자를 추적하는 거라면, CloudWatch는 클라우드 리소스와 애플리케이션을 모니터링하는 서비스다. 나이트 워치 처럼 AWS의 인스턴스들의 움직임과 리소스를 보는 거라고 생각하면 덜 헷갈리겠다. - [[AWS 관리 및 거버넌스#^d46e1d]] - [[Practice Exam 06 KR#21.다음 중 리소스를 더 쉽게 분류, 관리 및 필터링할 수 있는 것은 무엇입니까?]] ### AWS Trusted Advisor - CloudTrail, CloudWatch와 함께 자주 등장하는 문제다. Trusted Advisor는 AWS 모범사례를 제시하여 지침을 제공해준다. 비용 최적화, 보안, 내결함성, 성능, 서비스 제한 이 5가지 범주에 대해 모범사례와 권장사항을 제공한다. - [[AWS 관리 및 거버넌스#^204972]] ### AWS CloudFormation - 클라우드 포메이션은 프로그래밍 언어, 텍스트 파일을 통해서 사용하고 있는 모든 리소스에 자동으로 프로비저닝, config를 할 수 있다. - 개별 리소스를 보고, 종속 관계를 파악할 필요 없이 템플릿으로 모든 리소스를 관리할 수 있게 된다. - [[AWS 관리 및 거버넌스#^07dba9]] - RDS에 새로운 인스턴스를 생성할 수 있다.[[오답노트(AWS CPA)#^76ea30]]] - [[Practice Exam 03 KR#^c0357f]] 여기에서 CloudFormation이 운영 우수성과 관련되는 지점을 확인하자. 코드로 관리하고, 일괄적으로 보낼 수 있다. - [[오답노트(AWS CPA)#^9f23a4]] 같이 확인하기 ### AWS Config - AWS 리소스의 구성을 평가, 감시할 수 있는 서비스다 - [[AWS 네트워킹 및 콘텐츠 전송#^d1f116]] ### Amazon Comprehend - 기계학습을 사용, 텍스트의 자연어 처리 서비스다. - [[AWS 보안, 자격 증명 및 규정 준수#^6a4736]] ### Amazon S3 - 현재까지 접한 문제에서는 S3 Standard, S3 Intelligent -Tiering, S3 Gracier Flexible Retrival, S3 Glacier Deep Archive, S3 One Zone - Infrequent Access가 나왔음 - 이들을 선택하는 주요한 결정 요인은, 빠르게 검색 또는 접근이 가능한지, 장기 보관에 대한 비용이 저렴한지이다. - Intelligent-Tiering은 액세스 패턴을 알 수 없을 때 쓴다. - 자주 접속할 일은 없지만, 접속 시 빠르게 검색을 해야 한다면, Standard-IA와 S3 One Zone-IA를 고려할 수 있는데, 비용을 생각한다면, S3 One Zone-IA가 더 저렴하다. 0.0025USD 가 더저렴하다. - S3 Glacier의 구분에서는 IR, FR, DA가 있는데, IR은 검색속도가 10밀리초 미만이라서 고성능이다. FR과 DA는 그 정도는 아니지만, DA는 최소 검색시간 12시간이므로 정말 일년에 1,2번 정도 쓰는 경우에 사용. FR은 1분에서 12시간 정도로 다양함.(굳이 쓸 필요가 있을까?) - [[Amazon S3 서비스 종류 및 설명]]을 참고해서 정확한 비용과 설명 확인 ### AWS Transit Gateway - VPC와 온프레미스 네트워크를 연결하는데 쓰는 네트워크 전송 허브. - [[Practice Exam 03 KR#^7833e3]] - VPC와 VPC 사이에서도 유용하다. 여러 개의 VPC, 온프렘이 있다고 했을 때, 서로를 연결해주는 게 아니라 각각의 네트워크를 AWS Transit Gateway에 연결만 하면 서로 접속이 가능하게 된다. - [[Practice Exam 03 KR#^ab6626]] ### AWS PrivateLink - VPC와 제3자 애플리케이션을 연결하려고 할 때, 보안상 VPC가 노출되어 위험할 수 있다. 이때 AWS PrivateLink를 사용하여 AWS 백본에서 연결을 한다. 퍼블릭 인터넷을 거치지 않으므로 안전하다. - [[Practice Exam 03 KR#^87edad]] ### AWS Migration Hub - 온프레미스, 데이터센터를 AWS Cloud로 보내기 위해서 사용한다. - 비즈니스 사례를 구축, 마이그레이션을 계획하고, 추적한다. 애플리케이션을 리팩터링하며, 메인프레임 애플리케이션을 현대화한다. - 여정은 다음과 같으며, 각 서비스를 대략 기억해두자. [Migration Hub](https://ap-northeast-2.console.aws.amazon.com/migrationhub/home?region=ap-northeast-2#) - 검색 - 온프레미스 리소스 세부 정보 가져오기: AWS Discovery Agent 또는 Agentless Collector를 사용하여 상세한 검색을 한다. (세부 요소를 파악) - Amazon Athena를 통해서 수집한 데이터를 분석, 서버의 서응, 연결 세부 정보, 실행죽인 프로세스 유형, 네트워크 종속성을 파악할 수 있다. - 평가 - Migration Evaluator를 통해 비즈니스 사례를 얻고 올바른 의사결정을 할 수 있다. - [[Practice Exam 03 KR#^22f8f0]] - 계획 - 서버네트워크를 시각화하여 종속성을 식별하고, 대규모 마이그레이션 전략을 수립한다. - 마이그레이션 및 현대화 - AWS Migration Hub Refactor Spaces 등을 통해 리팩터링을 실시 ### AWS Cloud Directory - 확장성이 뛰어난 클라우드 네이티브 고성능 디렉토리 서비스. 사용자, 그룹, 위치, 디바이스, 정책 등 모든 애플리케이션 리소스를 관리하고 구성할 수 있는 웹 기반 디렉토리를 제공한다. - 다층 구조로 되어 있어서, 여러 조직의 피벗과 관계를 지원할 수 있음-> 이게 핵심! - AWS Directory와 다르다(SSO 하는 기능) ## AWS Cloud Development Kit(AWS CDK) - AWS 클라우드 개발 키트 (AWS CDK) 는 최신 프로그래밍 언어를 사용하여 클라우드 인프라를 코드로 정의하고 AWS CloudFormation을 통해 배포하기 위한 오픈 소스 소프트웨어 개발 프레임워크입니다. - [[Practice Exam 04 KR#^d99e05]] JSON, YAML과 같은 선언형 언어를 쓰지 않고, 개발자라 쓰고 싶은 프로그래밍 언어로 수행할 수가 있음 ## AWS Direct Connect - AWS와 데이터 센터(온프레미스) 간의 프라이빗 연결 설정시 사용 ### AWS WAF - Amazon CloudFront 배포, 아마존 API 게이트웨이 REST API, 애플리케이션 로드 밸런서, AWS AppSync GraphQL API로 전달되는 HTTP, HTTPS 요청을 모니터링할 수 있는 웹 애플리케이션 방화벽이다. - AWS WAF를 사용하여 SQL 인젝션 및 XSS (크로스 사이트 스크립팅) 공격과 같은 일반적인 웹 익스플로잇으로부터 API Gateway API를 모니터링하고 보호할 수 있습니다 - AWS WAF를 Amazon CloudFront에 배포하여 엣지 로케이션의 리소스와 콘텐츠를 보호할 수도 있습니다 - WAF는 aws에서 호스팅 되지않는 서비스의 방화벽도 가능 [[Practice Exam 06 KR#54.다음 중 AWS에 호스팅되지 않은 웹 사이트를 보호하는 데 사용할 수 있는 것은 무엇입니까?]] ### AWS Elastic Beanstalk - Elastic Beanstalk는 인프라의 프로비저닝부터 웹애플리케이션의 코드 배포를 한 번에 할 수 있도록 해주는 서비스다. 다양한 프로그래밍 언어, Docker로 만든 웹 애플리케이션을 아파치, Nginx 등에 배포하한다. 개발자는 코드 개발만 생각하면 되고, 인프라와 프로비저닝을 생각할 필요가 없다. - CodeDeploy도 코드를 배포해주는 서비스인데, 코드를 배포하는 방식을 일괄, 점진, 롤백 등 다양하게 할 수 있다. 두 서비스가 비슷해 보이는데, 차이점은, CodeDeploy는 온프레미에서도 배포가 가능하다는 점이다. 대신 용량 프로비저닝 등은 불가능하다. ### AWS CloudHSM - 하드웨어 보안 모듈이라는 데 뭘까 싶어서 찾아보니, 높은 보안이 필요한 곳에서는 아래의 장치를 통해 암호화키를 생성하고 관리하는데 사용한다. - AWS CloudHSM은 이러한 하드웨어 보안 모듈을 클라우드에서 사용할 수 있도록 제공해주는 거다. 굳이 사용자가 이 장비를 가지고 있지 않아도, AWS가 이 장비를 가지고 있기 때문에 사용할 수 있도록 제공해주는 것이다. ![[hsm.webp]] ### AWS X-Ray - CloudWatch에서 작동한다. 웹 애플리케이션의 아키텍처를 분석해서, 시각화하여 병목현상이 일어나는 부분까지 보여준다. 서비스와 리소스의 관계를 보여주고, 지연시간의 분포를 보여줘서 문제가 어디에 있는지, 어떻게 해결할 수 있는지를 자세히 보여준다. - 웹 애플리케이션의 아키텍처에서는 다음 개념이 있다. - 기능모듈: 결제 모듈, 인증 모듈, 검색 모듈 등과 같이 특정한 기능을 수행하기 모인 코드의 집합이다. 이러한 모듈을 여러개를 묶어서 마이크로서비스 아키텍쳐로 구성한다. - 이러한 기능들 중에서 서로 비슷한 것끼리 묶어서 서비스를 구성한다. - 서비스: 검색 서비스, 결제 서비스, 주문 서비스, 조회 서비스 등. 하나의 서비스에는 여러 기능 모듈이 들어가 있다. - X-Ray가 하는 게 바로 이러한 아키텍처를 분석해서 리소스와의 관계를 보여주고, 지연시간을 보여줌으로써 문제를 찾아내느 거다. ### Amazon ElastiCache - 1밀리초 미만의 지연시간을 제공하는 초고속 인메모리 데이터스토어 - Redis용과 Memcached 두가지 엔진을 AWS에서 지원함 - 인메모리 데이터터 저장으 ㄹ위해서 키-값(Key-Value)쌍으로 저장함 - **인메모리 데이터 저장**: Redis는 메모리 내에서 데이터를 저장하므로 매우 빠른 읽기 및 쓰기 속도를 제공합니다. 이는 주로 캐싱, 세션 관리, 랭킹, 메시징 및 대기열 등과 같은 작업에 유용합니다. - **다양한 데이터 구조 지원**: Redis는 단순한 문자열 이외에도 해시, 리스트, 집합, 정렬된 집합 등 다양한 데이터 구조를 지원합니다. 이러한 구조들은 데이터를 효율적으로 조작하고 쿼리할 수 있도록 해줍니다. - ### Amazon CloudFront - CDN 역할만 한다고 생각했지만, 최전선에서 DDoS공격을 방어하기 위해 AWS Shield, WAF와 통합하여 운영됨 [[Practice Exam 06 KR#38.다음 중 네트워크 및 애플리케이션 계층 DDoS 공격으로부터 보호하기 위해 AWS Shield 및 AWS 웹 애플리케이션 방화벽 (AWS WAF) 과 통합되는 AWS 서비스는 무엇입니까?]] - 과금 비에 대해서 파악하자.트래픽 분배,요청수, 아웃바운드 전송 데이터 양은 과금 기준이다. - - [[Practice Exam 06 KR#^dda3f4]] ### **Amazon EventBridge** - [[Practice Exam 06 KR#^20a440]] - ### Application Discovery Service - 마이그레이션을 할 때 대규모 워크로드에서 앱 간의.종속성을 자동으로 조사해주는서비스 - [[Practice Exam 06 KR#^2a8585]] ### AWS Global Acceleration - AWS Global Accelerator는 글로벌 사용자에게 제공하는 애플리케이션의 가용성과 성능을 개선하는 네트워킹 서비스입니다. 오늘날 공용 인터넷을 통해 전 세계 사용자에게 애플리케이션을 전송하면 사용자가 여러 공용 네트워크를 통해 애플리케이션에 도달할 때 가용성과 성능이 일관되지 않을 수 있습니다. 이러한 공용 네트워크는 혼잡할 수 있으며 각 홉은 가용성 및 성능 위험을 초래할 수 있습니다. AWS Global Accelerator는 가용성이 높고 정체가 없는 AWS 글로벌 네트워크를 사용하여 사용자의 인터넷 트래픽을 AWS의 애플리케이션으로 전달하므로 사용자 경험이 더욱 일관됩니다. 애플리케이션의 가용성을 개선하려면 애플리케이션 엔드포인트의 상태를 모니터링하고 정상 엔드포인트로만 트래픽을 라우팅해야 합니다. AWS Global Accelerator는 애플리케이션 엔드포인트의 상태를 지속적으로 모니터링하고 가장 가까운 정상 엔드포인트로 트래픽을 라우팅하여 애플리케이션 가용성을 개선합니다. - S3 Transfer Acceleration 과 헷갈리지 않기 ### Network ACL - Security Group과 헷갈림 - **_"네트워크 ACL"이 잘못되었습니다. _** 네트워크 액세스 제어 목록 (네트워크 ACL) 은 하나 이상의 서브넷에서 들어오고 나가는 트래픽을 제어하는 방화벽 역할을 하는 VPC의 선택적 보안 계층입니다. - **참고: 네트워크 ACL은 서브넷 수준에서 작동하지만 보안 그룹은 인스턴스 수준에서 작동합니다.** --- ## 원칙 ### Reliability - 신뢰성 또는 안정성. 서비스가 중단되지 않고, 장애 발생시 자동으로 빠르게 복구하는 능력이다. 가용성과도 연결되는 개념으로 보인다. - 이 원칙을 수행하기 위해, 가용성, 탄력성 이 두 개념이 필요하다. - [[클라우드 컴퓨팅의 이점#^835498]] ### 고가용성(High-availability) - eliminating single points of failure. 단일 장애 지점을 제거한다. 마이크로서비스로 설계한다. 문제가 생겼을 때도 정상적으로 작동이 가능하다. ### AWS Well-Architected Framework 6 Pillar - 각각 요소는 다음과 같음 - [[운영 우수성(operational excellence)]] - [[보안 원칙(Security Pillar)]] - [[안정성 원칙(Reliability Pillar)]] - [[성능효율성 원칙(Performance Efficiency Pillar)]] - [[비용 최적화 원칙(Cost Optimization Pillar)]] - [[지속 가능성 원칙(Sustainabilit Pillar)]] - 관련 개념을 이해하고 있어야 답을 고를 수 있다. - [[AWS 모범 사례 및 설계 원칙#^93769c]] - 운영 우수성에 관한 문제가 자주 나온다. [[Practice Exam 03 KR#^3e2571]] 반드시 익혀놔야 맞춘다. - [[Practice Exam 03 KR#^8d852f]] 이 문제가 이해가 되면, 이제 거의 온 거다. ### AWS Cloud Adoption Frameworkd - 각각 요소는 다음과 같음 - **Business perspective** helps ensure that your cloud investments accelerate your digital transformation ambitions and business outcomes. - **People perspective** serves as a bridge between technology and business, accelerating the cloud journey to help organizations more rapidly evolve to a culture of continuous growth, learning, and where change becomes business-as-normal, with focus on culture, organizational structure, leadership, and workforce. - **Governance perspective** helps you orchestrate your cloud initiatives while maximizing organizational benefits and minimizing transformation-related risks. - **Platform perspective** helps you build an enterprise-grade, scalable, hybrid cloud platform, modernize existing workloads, and implement new cloud-native solutions. - **Security perspective** helps you achieve the confidentiality, integrity, and availability of your data and cloud workloads. - **Operations perspective** helps ensure that your cloud services are delivered at a level that meets the needs of your business. - 클라우드를 선택해야 하는 이유를 각각의 관점에서 설명하는 것으로 보인다. 기능적으로 관련된 이해관계자가 클라우드 전환 여정에서 소유하거나 관리하는 기능들로 구성된다. - [[AWS 모범 사례 및 설계 원칙#^89f5e8]] - 다음으로 클라우드로 전환하기 위한 단계가 4단계가 있다. Cloud Transformation. - 1. **구상단계(The envision phase)**: 클라우드가 비즈니스에 어떤 도움을 주는지, 기술혁신, 프로세스 혁신, 조직혁신, 제품 혁신이라는 4가지 영역에서 기회를 식별, 우선순위를 지정해준다. - 2. **조정단계(The Align Phase)**: 역량격차, 조직간 종속성 식별, 이해관계자 우려와 과제 해결 등 - 3. **출시단계(The Launch Phase)**: 프로덕션 환경에서 파일럿 이니셔티브를 제공하여 비즈니스 가치를 입증한다. - 4. **규모조정 단계(The Scale Phase)**: 파일럿을 원하는 규모로 확장 - [[Practice Exam 03 KR#^868024]] - --- ## 개념 ### AWS Shared Control - 공동 책임 모델에서 나오는 문제다. 고객과 AWS가 함께 책임을 지는 부분을 설명하는 건데, 다음의 보기 중에서 2가지가 함께 책임을 진다. - 데이터 센터 운영 - VPC 관리 - IAM 관리 - 패치 관리 - 구성 관리 - 데이터 센터 운영은 AWS, VPC와 IAM은 고객이 관리하고 책임을 진다. 패치와 구성은 책임이 나뉜다. 패치는 OS 패치, 애플리케이션 패치는 고객이 하지만, 인프라 패치는 AWS가 한다. 구성 또한 애플리케이션 구성은 고객이, 인프라 구성은 AWS가 한다. ### AWS 관리형 서비스 - 전반적으로 DB는 AWS에서 관리한다. DynamoDB나 EMR은 DB에 해당하는데 이런 DB는 복잡한 연산과 탄력적인 프로비저닝이 필요하기 때문에 그러는 것으로 보인다. 또한 문제의 발생을 막기 위해서 자동으로 고가용성 있기 백업이 이뤄지는 등의 작업을 AWS에서 진행하는 것으로 보인다. - 마찬가지로 RDS, Redshift, S3도 AWS에서 전반적으로 관리하는 서비스이다. 다만, 운영과 유지관리는 AWS에서 해도, 보안과 구성, 관리 작업은 고객이 해야 한다. - AWS에서 관리하는 데이터베이스의 예로는 아마존 RDS (아마존 오로라, PostgreSQL, MySQL, MariaDB, 오라클 데이터베이스, 마이크로소프트 SQL 서버), 아마존 넵튠, 아마존 도큐멘트DB, 아마존 레드시프트, 아마존 다이나모DB 등이 있습니다. ### 클라우드 컴퓨팅의 장점 - **1- 자본을 가변 비용으로 교환하세요:** 데이터 센터와 서버를 어떻게 사용할 것인지 알기 전에 많은 투자를 할 필요 없이 컴퓨팅 리소스를 소비할 때만 비용을 지불하고 사용한 양에 대해서만 비용을 지불할 수 있습니다. AWS를 사용하면 인프라 비용이 사용한 만큼만 지불하는 모델로 전환됩니다. 이 모델에서는 소비한 리소스에 대해 고객에게 요금이 부과되고 이러한 비용은 자본 지출이 아닌 운영 비용으로 발생합니다. - **2- 대규모 경제의 이점:** 클라우드 컴퓨팅을 사용하면 혼자서 얻을 수 있는 것보다 낮은 가변 비용을 달성할 수 있습니다. 수십만 고객의 사용량이 클라우드에 집계되기 때문에 Amazon Web Services와 같은 공급업체는 규모의 경제를 높이고 종량제 요금을 낮출 수 있습니다. - **3- 용량을 추측하지 마세요:** 인프라 용량 요구 사항을 추측하지 마세요.애플리케이션을 배포하기 전에 용량을 결정할 때 값비싼 유휴 리소스를 사용하게 되거나 제한된 용량에 시달리는 경우가 많습니다. 클라우드 컴퓨팅을 사용하면 이러한 문제가 해결됩니다. 필요한 만큼 많이 또는 적게 액세스하고 단 몇 분 만에 필요에 따라 규모를 늘리거나 줄일 수 있습니다. - **4- 속도 및 민첩성 향상:** 클라우드 컴퓨팅 환경에서는 클릭 한 번으로 새로운 IT 리소스를 이용할 수 있습니다. 즉, 개발자가 이러한 리소스를 사용할 수 있도록 하는 데 걸리는 시간을 몇 주에서 단 몇 분으로 줄일 수 있습니다. 그 결과 실험과 개발에 드는 비용과 시간이 크게 줄어들기 때문에 조직의 민첩성이 크게 향상됩니다. - **5- 데이터 센터 운영 및 유지 관리에 돈을 쓰지 마세요.** 인프라가 아닌 비즈니스를 차별화하는 프로젝트에 집중하세요.클라우드 컴퓨팅을 사용하면 서버를 랙에 설치하고, 쌓고, 전원을 공급하는 번거로운 작업 대신 고객에게 집중할 수 있습니다. - **6- 몇 분 만에 전 세계로 진출:** 단 몇 번의 클릭으로 전 세계 여러 지역에 애플리케이션을 쉽게 배포할 수 있습니다. 즉, 최소한의 비용으로 간단하게 지연 시간을 줄이고 고객에게 더 나은 경험을 제공할 수 있습니다. ### 애플리케이션을 온프레미스 서버에 배포 - 애플리케이션을 온 프레미스 서버에 배포하기 위해서는 AWS CodeDeploy와 AWS OpsWorks가 가능하다. 일반적으로 아는 AWS Elastic Beanstalk, AWS CloudFormation으로는 온프레미스 서버에 배포할 수 없다. - [[Practice Exam 04 KR#^4554b5]] ### AWS Serverless - **컴퓨팅:** AWS 람다, AWS 파게이트 - **메시징:** 아마존 SNS, 아마존 SQS - **데이터베이스:** 아마존 DynamoDB, 아마존 오로라 서버리스 - **오케스트레이션:** AWS 단계 함수