#### **AWS** **장점** 서버, 데이터베이스, 스토리지, 상위 수준 애플리케이션 구성 요소를 몇초만에 시작 가능 일시적이고 처분 가능한 리소스로 취급할 수 있으므로 고정적이고 유한한 IT 인프라라는 비융통성과 제약에서 해방 --- #### **알아두어야 할 AWS의 특성** - 민첩성 (Agility) - 속도 (Speed): 막대한 투자 필요 없이 전세계 네트워크에 빠르게 배포 가능 - 실험 (Experimentation): 클라우드 환경을 통해 실험을 자주 할 수 있음, 빈번한 실험을 통해 새로운 구성과 혁신 탐색 가능 - 혁신의 문화 (Culture of innovation) - CloudFormation을 통해 일관적이고 템플릿화된 개발 환경 구축 가능 - 내결함성 - 시스템 구성 요소에 장애가 발생하더라도 시스템이 작동 가능 상태를 유지하는 능력 (애플리케이션 구성 요소의 기본적인 중복성) - 고가용성 - 사용자 개입 없이 시스템이 항상 작동하고 액세스 가능하며 가동 중지가 최소화되도록 하는 능력 - 탄력성 - 간편하게 컴퓨팅 리소스의 규모를 확장 또는 축소할 수 있는 능력 --- 고객이 데이터가 실제로 위치하는 리전에 대한 모든 제어권 및 소유권을 보유하여 지역별 규정 준수 및 데이터 상주 요구 사항을 용이하게 충족할 수 있다. 클라우드 컴퓨팅 이전에는 인프라 보안 감사가 정기적으로 실시되는 수동 방식의 프로세스였으나, AWS 클라우드는 고객의 IT 리소스에 대한 구성 변경 사항을 지속적으로 모니터링할 수 있는 거버넌스 기능을 제공 ## AWS 글로벌 인프라 (AWS 호스팅) #### 리전 - 2개 이상의 가용 영역을 호스팅하는 지리 영역 - 리전은 서로 완전히 독립된 엔터티 - 한 리전의 리소스는 다른 리전으로 자동 복제되지 않음 #### 가용 영역 (AZ) - 특정 리전 내에 존재하는 데이터 센터들의 모음 - 각 가용 영역들은 서로 격리되어 있지만 지연 시간이 짧은 링크로 연결 - 물리적으로 구분된 독립적 인프라 - 물리적, 논리적 분리 - 별도의 무정전 전원 공급 장치 (UPS), 현장 예비 발전기, 냉각 장비, 네트워킹 및 연결 수단 - 독립적인 전력 회사의 서로 다른 전력망을 통해 전력 공급 - 여러 티어1 전송 서비스 공급자를 통해 연결 - 다중 AZ에 걸쳐 프로비저닝할 것을 권장 #### 엣지 로케이션 - CloudFront라고 하는 CDN 호스팅 - 여러 엣지 로케이션과 리전으로 구성된 글로벌 네트워크를 활용하면 보다 빠른 컨텐츠 전송 가능 - 리전 및 가용 영역들과 비슷하게 인구 밀도가 높은 지역에 위치 --- ## VPC #### 기본 정보 - AWS의 네트워킹 서비스 - 온프레미스 네트워크와 동일한 여러 가지 개념 및 구성을 사용하는 클라우드 내 프라이빗 네트워크 생성 가능 - 제어, 보안 및 유용성을 저해하지 않고도 네트워크 설정의 복잡성이 상당 부분 추상화되어 있음 - IP 주소 공간, 서브넷, 라우팅 테이블과 같은 일반 네트워킹 구성 항목 정의 가능 - EC2, RDS 등 여러 서비스와 통합 #### 기능 - 리전 및 가용 영역의 AWS 글로벌 인프라를 기반으로 함 - 리전 내에 있으며 여러 가용 영역에 걸쳐 확장 가능 - 다중 VPC 생성 가능 - 여러 서브넷에 의해 분할되는 하나의 IP 주소 공간 정의 가능 - 서브넷과 인터넷 사이의 트래픽을 제어하기 위해 서브넷에 대한 라우팅 테이블 구성 가능 - VPC 내 모든 서브넷은 서로 통신 가능 --- ## AWS Direct Connect #### 기본 정보 - 온프레미스에서 AWS로의 전용 네트워크 연결 --- ## 보안 그룹 #### 기본 정보 - 내장 방화벽과 같은 개념으로 인스턴스에 대한 접근성을 완벽하게 제어 - 보안 그룹 규칙을 구성하여 어떤 트래픽을 허용/거부할 것인지 제어 - 해당 인스턴스를 100% 프라이빗 또는 퍼블릭 상태로 유지하거나 혹은 그 중간 수준의 상태로 유지하는 등 다양한 구성 가능 - 인바운드, 아웃바운드, 트래픽 유형, 프로토콜, 포트 범위 및 소스 별 구성 가능 - 사용 중인 인스턴스에 필요한 트래픽이 무엇인지 파악하고 그 트래픽만 특별히 허용할 것을 권장 --- ## Amazon Lightsail #### 기본 정보 - 가상 프라이빗 서버를 시작하고 관리할 때 사용할 수 있는 가장 간편한 방법으로 설계 - 프로젝트 착수에 필요한 모든 것이 포함되어 있음 - 가상 머신 - SSD - 데이터 전송 - DNS 관리 - 고정 IP 주소 --- ## AWS Batch #### 기본 정보 - 수 많은 배치 컴퓨팅 작업을 효율적으로 실행 가능 - 제출된 배치 작업의 볼륨 및 특정 리소스 요구 사항에 따라 최적의 수량 및 유형의 컴퓨팅 리소스를 동적으로 프로비저닝 --- ## AWS Lambda #### 기본 정보 - 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행할 수 있는 컴퓨팅 서비스 - 필요할 때에만 코드 실행 - 초당 수천 건의 요청으로 자동 확장 - 코드가 실행되지 않는 시간에 대해서는 비용 발생하지 않음 - 모든 애플리케이션, 백엔드 서비스에 대한 코드 실행 가능 - 고가용성 컴퓨팅 인프라에서 코드 실행 - 서버 및 운영 체제 유지 관리, 용량 프로비저닝, Auto Scaling, 코드 모니터링, 로깅 등 모든 관리 기능 제공 - 다양한 프로그래밍 언어 지원 - AWS CodePipeline, AWS CodeDeploy를 통해 자동 배포 가능 - 마이크로 서비스 아키텍처 구축 #### 옵션 - 최대 512MB 디스크 공간 - 메모리 128MB ~ 3,008MB - 최대 15분까지만 실행 - 최대 6MB의 요청 및 응답 - 최대 128KB의 이벤트 요청 본문 #### 사용 예 - 백업 자동화 - S3에 업로드된 객체의 처리 - 이벤트 중심의 로그 분석 - 이벤트 중심의 변환 - IoT - 서버리스 웹사이트 운영 - Amazon Kinesis를 통한 실시간 스트리밍 데이터 처리 - 애플리케이션 활동 추적 - 트랜잭션 주문 처리 - 클릭스트림 분석 - 데이터 정리 측정치 - 생성 로그 필터링 - 소셜 미디어 인덱싱 분석 - 디바이스 데이터 원격 측정 및 모니터링 --- ## Elastic Beanstalk #### 기본 정보 - PaaS - Java, .NET, PHP, Node.js, Python, Ruby, Go, Docker를 사용하여 Apache, Nginx, Passenger, IIS 같은 친숙한 서버에서 개발된 웹 애플리케이션 및 서비스를 배포하고 확장하는 서비스 - 전체 시스템을 완벽하게 제어 가능 - 용량 프로비저닝 - 로드 밸런싱 (HTTPS 활성화 가능) - Auto Scaling - 애플리케이션 상태 모니터링 - 사용 중인 애플리케이션 업데이트 가능 - 서버 로그 파일 액세스 가능 --- ## Application Load Balancer Classic Load Balancer에 몇 가지 중요한 기능 및 개선 사항 추가 #### 향상된 기능 - 지원되는 요청 프로토콜 추가 (HTTP/2, WebSocket) - 지표 및 액세스 로그 개선 - 상태 확인 대상 확대 #### 추가 기능 - 경로 기반 라우팅 - 요청 내 URL을 기반으로 대상 그룹으로 라우팅하는 규칙 생성 - 호스트 기반 라우팅 - 동일한 로드 밸런서가 여러 도메인을 지원 - 요청된 도메인을 기반으로 요청을 대상 그룹으로 라우팅 가능 - 요청 추적: 클라이언트에서 대상까지 요청 추적 - ECS 예약 컨테이너 사용 시 동적 호스트 포트 설정 가능 - VPC에서 IPv6 기본 지원 - AWS 웹 애플리케이션 통합 #### 사용 시나리오 - 컨테이너를 사용하여 마이크로 서비스를 호스트하고 단일 로드 밸런서로부터 이러한 애플리케이션으로 라우팅 - 서로 다른 요청을 동일한 인스턴스로 라우팅하되 포트에 따라 다른 경로 지정 가능 - 다양한 포트에서 수신대기 하는 여러 컨테이너가 있을 경우 라우팅 규칙을 설정하여 원하는 백엔드 애플리케이션으로만 트래픽 분배 가능 --- ## Auto Scaling #### 기본 정보 - 애플리케이션의 로드를 처리할 수 있는 적절한 수의 EC2 인스턴스를 유지 - 향후 특정 시점에서 워크로드 요구 사항을 충족하기 위해 몇 개의 EC2 인스턴스가 필요할지 추측할 필요가 없어짐 - CloudWatch를 통해 EC2 인스턴스의 워크로드 성능을 모니터링 #### 자동 조정 구성 요소 - 시작 구성 생성 - WHAT - Auto Scaling이 시작할 인스턴스 정의 - 사용할 AMI, 인스턴스 유형, 보안 그룹, 역할 등 - Auto Scaling 그룹 생성 - WHERE - 배포가 이루어지는 위치와 배포에 대한 제한을 정의 - 어느 VPC가 인스턴스를 배포할지, 어느 로드 밸런서에서 상호 작용할지 - 인스턴스의 최소/최대 개수 - Auto Scaling 정책 정의 - WHEN - 언제 EC2 인스턴스를 시작/종료할지 지정 - CloudWatch 경보를 통한 이벤트 설정 --- ## EBS #### 기본 정보 - EC2 인스턴스의 저장 단위 - 사용한 만큼 지불 - 내구성과 가용성 위주로 설계 - 블록 수준 복제로 인해 HDD, SSD보다 내구성이 훨씬 좋음 - 스냅샷 생성을 통해 높은 수준의 내구성 제공 - 스냅샷으로부터 새로운 볼륨 생성 가능 - 스냅샷을 공유하거나 다른 리전에 복사 가능 - 스냅샷을 암호화하여 다른 리전 공유 가능 - 추가 비용 없이 암호화 가능 --- ## Amazon EFS (Elastic File System) #### 기본 정보 - EC2 인스턴스에 사용할 수 있는 확장 가능한 파일 스토리지 - 파일을 추가/제어할 때마다 스토리지 용량이 탄력적으로 확장/축소 - 여러 EC2 인스턴스에서 EFS에 동시 액세스 가능 - 공통 데이터 소스 제공 가능 - VPC를 AWS Direct Connect에 연결하면 EFS를 온프레미스 데이터 센터 서버에 탑재 가능 --- ## AWS Storage Gateway #### 기본 정보 - 온프레미스 환경과 AWS 양쪽을 넘나들며 하이브리드 스토리지를 원활하게 사용 가능 --- ## S3 #### 기본 정보 - 데이터 저장 및 검색을 위해 간단한 API를 제공해주는 완전 관리형 스토리지 서비스 - 이미지, 동영상, 서버 로그 등 모든 유형의 파일을 객체로 처리 - 수 테라바이트인 객체까지 지원 - 데이터베이스 스냅샷도 객체로 저장 가능 - IAM을 통한 데이터 액세스 가능자 관리 가능 - 데이터 암호화 가능 - 버킷 이름은 전 세계적으로 고유해야 하며 DNS를 준수해야 함 - 리전 간 교차 복제 가능하게 구성하여 가용성 및 재해 복구 성능 향상 가능 - 스토리지와 성능 조절이 가능하기 때문에 다양한 빅 데이터 도구를 사용하여 분석하고자 하는 데이터의 스테이징 또는 장기 저장에 적합 - Redshift에 로드 - EMR에서 처리 - Athena를 통한 쿼리 - Snowball를 통한 import/export - PUT, COPY, POST, LIST, GET 요청에 대해 과금 --- ## Glacier #### 기본 정보 - 저비용으로 장기간 보관할 수 있도록 설계되어 가끔씩 액세스되는 데이터 보관에 적합 - 복수의 시설에 각 시설에서도 여러 디바이스에 다중 저장하기 때문에 높은 내구성 제공 - 수명 주기 정책을 통해 S3에서 자동으로 보관 가능 - S3의 버전 관리 기능을 통해 버전을 기준으로 데이터를 보관하는 수명 주기 정책 설정 가능 - 업로드 및 검색 요청에 대해서만 과금 - 모든 데이터 아카이브가 기본적으로 암호화됨 #### 핵심 용어 - 아카이브 (Archive) - 사진, 동영상 파일, 문서 등과 같이 Glacier에 저장하는 임의의 객체 - 기본 스토리지 단위 - 자체 고유 ID와 설명 부여 가능 - 저장소 (Vault) - 아카이브를 저장하는 컨테이너 - 액세스 정책을 통해 접근 가능 사용자 관리 가능 - 잠금 정책을 통해 저장소 변경 방지 가능 #### 데이터 복원 - 분 및 시간 단위의 데이터 검색 제공 - 액세스 횟수 및 비용이 각기 다른 세 가지 옵션 제공 - 대량 - 가장 저렴 - 5~12시간 소요 - 표준 - 3~5시간 소요 - 고속 검색 - 가장 비쌈 - 1~5분 소요 --- ## RDS #### 기본 정보 - 운영 체제 설치 및 패치 - 데이터베이스 소프트웨어 설치 및 패치 - 자동 백업 및 고가용성 유지 관리 - 리소스 규모 조정 - 전력 및 서버 관리 - 유지 관리 수행 - RDS의 기본 빌딩 블록은 데이터베이스 인스턴스 - 데이터베이스 인스턴스는 여러 데이터베이스가 포함 가능 - MySQL, Amazon Aurora, MS Sequel Server, PostgreSQL, MariaDB, Oracle 등 6개 데이터베이스 지원 - 다중 가용 영역 배포로 높은 가용성 구현 - 마스터 데이터베이스 장애 발생 시 자동으로 예비 데이터베이스 인스턴스를 새 마스터로 가동 - 읽기 전용 복제본 생성 지원을 통한 성능 향상 - 읽기 전용 복제본은 마스터 데이터베이스와 다른 리전에 생성 가능 --- ## DynamoDB #### 기본 정보 - 완전 관리형 NoSQL 데이터베이스 서비스 - 테이블에 저장할 수 있는 항목의 수에 사실상 제한이 없음 - 동일한 테이블에 있는 항목의 속성이 다를 수 있음 - 애플리케이션이 진화함에 따라 유연하게 속성 추가 가능 - 스키마 마이그레이션 없이 동일 테이블 내에서 단계적으로 기존 형식 대신 새 형식의 데이터 저장 가능 - 모든 데이터는 SSD에 저장 - 단순한 쿼리로 지연 시간이 일관적으로 짧고, 높은 쿼리 성능 제공 - 스토리지 규모 조정 뿐만 아니라 테이블 읽기/쓰기 처리량의 프로비저닝 가능 - 수동 프로비저닝 - Auto Scaling을 통한 자동 프로비저닝 - 이를 통해 클라이언트의 성능을 일관적으로 유지 가능 #### 데이터 검색 방법 - 쿼리 시 효과적으로 분할을 활용하고 기본 키를 사용하여 데이터 검색 - 키가 아닌 속성에 대한 조건을 대조하여 데이터 검색 테이블의 모든 항목을 검색하기 때문에 덜 효율적 --- ## ElastiCache #### 기본 정보 - 클라우드에서 인 메모리 캐시를 손쉽게 배포, 운영 및 조정할 수 있게 해주는 웹 서비스 - 두 가지 오픈 소스 인 메모리 캐시 엔진 지원 - Redis - Memcached --- ## AWS Application Discovery Service #### 기본 정보 - 온프레미스의 애플리케이션, 관련 종속성 및 성능 프로파일을 식별하여 시스테 통합 사업자(SI)가 빠르고 안정적으로 마이그레이션할 수 있게 해주는 서비스 - 서버, 스토리지, 네트워킹 장비에서 구성 및 사용량 데이터를 수집하여 마이그레이션의 복잡성과 소요 시간을 줄이는데 사용할 수 있는 문서 제공 --- ## AWS Database Migration Service #### 기본 정보 - 데이터베이스를 AWS로 간편하고 안전하게 마이그레이션하는 서비스 - 마이그레이션 중 소스 데이터베이스가 변함없이 운영되어 기존 서비스의 가동 중지 시간을 최소화 함 - Oracle에서 Oracle로의 동종 마이그레이션뿐 아니라 이기종 데이터베이스 플랫폼 간의 마이그레이션도 지원 - 고가용성을 유치한 채 지속적인 데이터 복제 작업에 사용 가능 --- ## AWS Server Migration Service #### 기본 정보 - 에이전트 없는 서비스로 수천 개의 온프레미스 워크로드를 AWS로 쉽고 빠르게 마이그레이션하는 서비스 --- ## AWS Snowball #### 기본 정보 - 페타바이트 규모의 데이터 전송 솔루션 - 고속 인터넷 비용의 1/5 정도로 저렴 - 코드 작성, 하드웨어 구매 불필요 - 데이터 보안 및 완전한 연계 보관성 보장을 위해 다중 보안 계층 사용 - 변조 방지 엔클로저 - 256비트 암호화 - 업계 표준 TPM (Trusted Platform Module) --- ## Redshift #### 기본 정보 - 속도가 빠른 완전 관리형 데이터 웨어하우스 - 표준 SQL 및 기존 비즈니스 인텔리전스 도구를 통해 모든 데이터를 간편하고 비용 효율적으로 분석 가능 - 고성능 JDBC, ODBC 커넥트 제공 - 정교한 쿼리 최적화 - 고성능 로컬 디스크에 대한 열 형식 저장 - 방대한 병렬 쿼리 실행 - 페타바이트 규모의 구조화 데이터를 대상으로 복잡한 분석 쿼리 실행 - 대부분의 결과가 수 초 이내에 반환 - 시간당 25센트 ~ 테라바이트당 연간 천 달러 - 전통적인 데이터 웨어하우스에 비해 1/10 수준의 비용 - Redshift Spectrum을 사용하면 엑사바이트 규모의 데이터에 대해 S3에서 직접 쿼리 가능 - 저장 및 전송 중 암호화 기능 --- ## Aurora #### 기본 정보 - 고성능 상용 데이터베이스의 성능과 가용성 - 오픈 소스 데이터베이스의 간편성과 비용 효율성 - MySQL 관계형 데이터베이스 엔진 - 종량제 서비스로서 실제 사용하는 서비스와 기능에 대해서만 요금 지불 - 관리형 서비스로 AWS Database Migration Service 및 AWS Schema Conversion Tool과 같은 기능과 통합되어 데이터 세트를 Amazon Aurora로 이전 가능 - MySQL보다 다섯 배 뛰어난 성능 - 규모 조정 - 쉬운 가용성 확보 - 자동으로 수행되는 백업 관리 및 패치 작업 #### Amazon EC2 인스턴스에서 가동되는 데이터베이스에서는 아래의 작업들을 대신 수행 - 앱 및 쿼리 최적화 - 하드웨어 구성 - 패치 - 네트워킹 설정 - 전력 설정 - HVAC #### 그럼에도 불구 하고 아래 작업은 직접 수행 필요 - 운영 체제 패치 - 전반적인 소프트웨어 및 백업 운영 업무 #### Amazon Aurora만의 장점 - 데이터 복사본 6개를 세 곳의 가용 영역에 걸쳐 저장 - S3에 대한 지속적인 백업 수행 - 최대 15개의 읽기 전용 복제본 사용 가능 - 문제 발생 시 즉각적인 장애 복구 가능하도록 설계 - 장애 발생 시 최근 체크포인트로부터 Redo 로그를 재현할 필요 없음 - 대신 읽기 작업 시 마다 이를 수행함 - 장애 발행 후 DB 재시작 시간이 60초 이하로 감소 - 데이터베이스 프로세스에서 버퍼 캐시를 분리하여 재시작 즉시 사용할 수 있도록 함 - 캐시가 다시 채워질 때까지 액세스를 제한할 필요가 없어 중단이 방지 됨 --- ## Trusted Advisor #### 기본 정보 - 모범 사례를 제공하고 계정의 모든 리소스를 검사하여 각 리소스가 모범 사례에 부합하는지 확인하는 도구 - 보안, 내결함성, 성능, 비용 최적화 #### 동작 방법 - 계정 리소스를 기존 모범 사례와 비교하여 검사 형식으로 데이터 전송 - 모범 사례를 콘솔이나 API 형태로 나타냄 - 특정 검사 실패 시 조치를 취할 수 있도록 알림 수신 가능 - CloudWatch Event, Lambda와 같은 서비스를 통합하여 자동 작업을 수행하고 리소스 최적화를 자동화할 수 있음 --- ## AWS CodeCommit #### 기본 정보 - 완전 관리형 소스 제어 서비스 - 안전하고 확장성이 뛰어난 프라이빗 Git 리포지토리 호스팅 가능 --- ## AWS CodeBuild #### 기본 정보 - 완전 관리형 빌드 서비스 - 컴파일, 테스트 수행, 배포 준비 완료된 소프트웨어 패키지 생성 - 지속적 확장을 통해 여러 빌드를 동시에 처리 --- ## AWS CodeDeploy #### 기본 정보 - EC2 인스턴스와 온프레미스 인스턴스를 비롯 모든 인스턴스에 코드를 배포하는 자동 배포 서비스 - 배포하는 동안 가동 중지 시간을 줄일 수 있음 --- ## AWS Codepipeline #### 기본 정보 - 애플리케이션, 인프라를 빠르고 안정적으로 업데이트할 수 있는 지속적 통합 및 지속적 전송 서비스 - 사용자가 정의한 릴리즈 프로세스 모델에 따라 코드가 변경될 때마다 코드를 구축, 테스트, 배포 수행 --- ## AWS X-Ray #### 기본 정보 - 개발자가 애플리케이션을 분석하고 디버그하는데 도움을 주는 서비스 - 애프리케이션과 그 기본 서비스가 어떻게 작동하는지 이해함으로써 작동 관련 문제 및 오류의 근본 원인을 알아내 해결 가능 - 요청이 애플리케이션을 통과함에 따라 요청에 대한 엔드 투 엔드 뷰를 제공 - 애플리케이션의 기본 구성 요소를 맵으로 보여줌 - 3-티어 애플리케이션부터 수천 개의 서비스로 구성된 복잡한 마이크로 서비스 애플리케이션까지 개발 중인 애플리케이션과 프로덕션에 적용된 애플리케이션 모두 분석 가능 --- ## Amazon CloudWatch #### 기본 정보 - 모니터링 서비스 - 지표 수집 및 추적 - 로그 파일 수집 및 모니터링 - 경보 설정 - AWS 리소스 변경에 자동 대응 - AWS 리소스 뿐만 아니라 애플리케이션과 서버에서 생성된 사용자 정의 지표 및 애플리케이션에서 생성된 모든 로그 파일 모니터링 가능 - 시스템 전반의 리소스 사용률, 애플리케이션 성능, 운영 상태 파악을 통해 문제에 대응하고 애플리케이션 실행을 원활하게 유지 가능 --- ## AWS CloudFormation #### 기본 정보 - AWS 리소스 모음을 생성 및 관리하고 순서에 따라 예측 가능한 방식으로 프로비저닝하고 업데이트 가능 - 샘플 템플릿을 사용하거나 사용자 고유 템플릿을 생성하여 애플리케이션 실행에 필요한 AWS 리소스와 이와 관련된 모든 종속성 또는 런타임 파라미터에 대해 기술 가능 - AWS 서비스 프로비저닝 순서나 이러한 종속성 적용을 위한 세부 요소 파악을 대신 처리 - 배포 후 버전 관리 소프트웨어 적용하는 것과 같은 방버으로 AWS 리소스 제어 및 예측 가능한 방식으로 수정, 업데이트 가능 - 드래그 드랍 인터페이스로 템플릿을 다이어그램으로 시각화, 편집 가능 --- ## AWS CloudTrail #### 기본 정보 - 계정에 대한 AWS API 호출을 기록하고 로그 파일을 사용자에게 전달하는 웹 서비스 - API 호출자의 자격 증명 - API 호출 시간 - API 호출자의 소스 IP 주소 - 요청 파라미터 및 AWS 서비스가 반환한 응답 요소와 같은 정보 기록 - API 호출을 포함한 계정에 대한 AWS API 호출 이력 확인 가능 - API 호출 내역을 통한 보안 분석, 리소스 변경 사항 추적 및 규정 준수 감사 수행 가능 --- ## AWS Config #### 기본 정보 - AWS 리소스 인벤토리, 구성 기록, 구성 변경 알림을 제공하여 보안 및 거버넌스를 실현하는 완전관리형 서비스 - Config Rules을 통해 AWS Config가 기록하는 AWS 리소스의 구성을 자동으로 점검하는 규칙 생성 가능 - 규정 준수 감사, 보안 분석, 리소스 변경 추적, 문제 해결 등 수행 가능 --- ## AWS OpsWorks #### 기본 정보 - 구성 관리 서비스 - 서버 구성을 코드로 취급하는 자동화 플랫폼인 Chef 사용 - EC2 인스턴스 또는 온프레미스 환경 전반에 걸쳐 서버 구성, 배포, 관리하는 작업을 자동화 --- ## AWS Inspector #### 기본 정보 - AWS에 배포된 애플리케이션의 보안 및 규정 준수를 개선하는데 도움이 되는 자동 보안 평가 서비스 - 애플리케이션의 취약점, 모범 사례와의 차이를 평가 - 상세 보안 평가 결과 제공 --- ## AWS Certificate Manager #### 기본 정보 - SSL/TLS 인증서 프로비저닝, 관리 및 배포 서비스 - 인증서를 ELB나 CloudFront에 신속히 배포 가능 - 무료 --- ## AWS CloudHSM #### 기본 정보 - 클라우드 내의 전용 하드웨어 보안 모듈 어플라이언스를 사용하여 데이터 보안을 위한 기업, 계약 및 규제 준수 요건을 충족 --- ## AWS Key Management Service #### 기본 정보 - 데이터 암호화에 사용하는 암호화 키를 쉽게 생성하고 제어할 수 있게 해주는 관리형 서비스 - HSM을 사용하여 키의 보안을 유지 - CloudTrail과도 통합되어 모든 키 사용에 관한 로그를 제공 - 각종 규제 및 규정 준수 요구 사항 충족 --- ## AWS Organizations #### 기본 정보 - AWS 계정 그룹을 생성을 통해 보안 및 자동화 설정을 더 쉽게 관리 - 여러 계정을 중앙에서 관리 가능 --- ## AWS WAF #### 기본 정보 - 웹 애플리케이션 방화벽 - 사용자 지정 웹 보안 규칙을 통해 웹 애플리케이션에 대한 액세스를 허용/차단 - SQL 명령어 주입, 교차 사이트 스크립팅 등 일반적인 공격 패턴 차단 --- ## Amazon Athena #### 기본 정보 - 표준 SQL을 사용하는 S3 데이터 분석 서비스 - 서버리스 서비스 - 실행한 쿼리에 대해서만 비용 지불 --- ## Amazon EMR #### 기본 정보 - EC2 인스턴스 전반에 걸쳐 대량의 데이터를 쉽고 빠르게 비용 효율적으로 처리할 수 있도록 지원하는 관리형 하둡 프레임워크 제공 - Apache Spark, HBase, Presto, Flink와 같은 분산 프레임워크 실행 가능 --- ## Amazon Kinesis #### 기본 정보 - 스트리밍 데이터를 위한 플랫폼 - 스트리밍 데이터를 쉽게 로드 및 분석할 수 있는 서비스 제공 #### Amazon Kinesis Firehose - 스트리밍 데이터를 AWS에 로드하는 완전 관리형 서비스 - 데이터 처리량에 따라 자동 확장 #### Amazon Kinesis Analytics - SQL을 통한 실시간 스트리밍 데이터 처리 제공 - 수신 데이터의 볼륨과 처리량 속도에 맞춰 자동 확장 #### Amazon Kinesis Streams --- ## AWS Data Pipeline #### 기본 정보 - AWS 컴퓨팅 및 스토리지 서비스 뿐 아니라 온프레미스 데이터 소스 간에 지정된 간격으로 데이터를 안정적으로 처리하고 이동할 수 있도록 지원하는 웹 서비스 - 내결함성이 있고, 반복 가능하며, 가용성이 높고, 복잡한 데이터 처리 워크로드를 손쉽게 생성 가능 --- ## AWS Glue #### 기본 정보 - 데이터 스토어 사이에 데이터를 쉽게 이동시킬 수 있는 완전 관리형 ETL 서비스 --- ## AWS Lex #### 기본 정보 - 음성과 텍스트를 사용하는 애플리케이션에 대화형 인터페이스를 구축하는 서비스 - Amazon Alexa에 사용된 것과 동일한 딥러닝 기술을 제공 - 정교한 자연어 대화형 봇(챗봇)을 쉽고 빠르게 구축 가능 --- ## AWS Polly #### 기본 정보 - 텍스트 to 음성 변환 서비스 --- ## AWS Rekognition #### 기본 정보 - 이미지 분석 서비스 - 이미지에서 피사체, 장면, 얼굴 분석 - 얼굴 검색 및 비교 - 정교한 딥러닝 기반 시각 검색 및 이미지 분류 기능 추가 가능 --- ## AWS Mobile Hub #### 기본 정보 - 모바일 앱 백엔드 기능을 빠르게 생성 및 구성 가능 - 앱 분석 - 앱 콘텐츠 전송 - 클라우드 로직 - NoSQL 데이터베이스 - 푸시 알림 - 사용자 데이터 스토리지 - 사용자 로그인 - 커넥터 - 대화형 봇 - 사용자 참여 --- ## AWS Cognito #### 기본 정보 - 모바일, 웹앱에서 사용자 인증 기능을 쉽게 구현 --- ## AWS Pinpoint #### 기본 정보 - 지정된 대상에 대한 캠페인을 쉽게 실행하여 모바일 앱에서 사용자 참여를 유도할 수 있다. --- ## AWS Step Functions #### 기본 정보 - 시각적 워크플로를 통해 분산 애플리케이션 및 마이크로 서비스의 구성 요소를 손쉽게 조정 --- ## AWS API Gateway #### 기본 정보 - API를 쉽게 생성, 게시, 유지 관리, 모니터링 및 보안할 수 있게 해주는 완전 관리형 서비스 - EC2 워크로드, Lambda 등 기능에 액세스 가능 - 트래픽 관리, 권한 부여 및 액세스 제어, 모니터링 및 API 버전 관리 등 최대 수십만 개의 동시 API 호출을 수신 및 처리하는데 관계된 모든 작업 처리 --- ## AWS SQS #### 기본 정보 - 빠르고 안정적이며 확장 가능한 완전 관리형 메시지 대기열 서비스 - 클라우드 애플리케이션의 구성 요소를 간단하고 비용 효율적으로 분리할 수 있게 해줌 --- ## AWS SES #### 기본 정보 - 비용 효율적인 이메일 서비스 ## AWS 보안 소개 #### AWS에서 제공하는 보안 이점 - 규정 준수 요건 충족 - 안전한 글로벌 인프라 - 비용 절감: 자체 시설 운영 없이 가장 높은 보안 표준 유지 가능 - 빠른 확장: AWS 클라우드 사용에 따라 보안이 확장됨 #### AWS에서 제공하는 보안 기능과 서비스 - AWS 내에서 프라이빗 네트워크 생성할 수 있는 내장 방화벽 - 인스턴스 및 서브넷에 대한 네트워크 액세스 제어 기능 - 모든 서비스에서 TLS로 전송되는 암호화 - 온프레미스 환경에서 프라이빗 또는 전용 연결을 활성화하는 연결 옵션 - Auto Scaling 또는 컨텐츠 전송 전략의 일부인 DDoS 완화 기술 #### AWS 클라우드 리소스가 조직의 표준 및 모범 사례를 준수하도록 지원하는 도구 - 조직 표준에 따라 AWS 리소스의 생성 및 폐기를 유지 관리하기 위한 배포 도구 - AWS 리소스를 식별하고 시간 경과에 따라 해당 리소스의 변경 사항을 추적하고 관리하기 위한 인벤토리 및 구성 관리 도구 - EC2 인스턴스에 대해 미리 구성된 강력한 표준 가상 머신을 생성하기 위한 템플릿 정의 및 관리 도구 #### 데이터에 대한 보안 계층 (EBS, S3, RDS, Redshift) - 데이터 암호화 기능 - 유연한 키 관리 옵션 (AWS에서 암호화 키를 관리할지, 고객이 직접 제어할지 선택 가능) - 규정 준수 요구 사항을 충족하도록 지원하는 전용 하드웨어 기반 암호화 키 스토리지 옵션 #### 사용자 액세스 정책 - IAM - 하드웨어 기반 인증자 용 옵션을 포함하여 권한 있는 계정에 대한 멀티 팩터 인증 (MFA) - 기업 디렉터리와의 통합 및 연동 #### AWS 환경에서 발생하는 상황을 확인할 수 있는 도구와 기능 - 호출을 수행한 대상, 호출 항목, 호출 위치를 비롯한 API 호출에 대한 깊은 가시성 - 로그 집계 및 옵션 - 조사 및 규정 준수 보고 간소화 - 특정 이벤트가 발생하거나 임계값을 초과할 경우의 알림 전송 --- ## AWS 공동 책임 모델 클라우드 자체의 보안: AWS 클라우드 내부의 보안: 고객 - 클라우드 인프라는 AWS에 의해 보안이 유지되지만, 클라우드 내부에 배치하는 모든 요소의 보안에 대한 책임은 고객이 갖는다. #### “클라우드에서의 보안”의 예 - AWS에 저장하기로 결정한 컨텐츠 - 컨텐츠와 함께 사용되는 AWS 서비스 - 컨텐츠가 저장되는 국가 - 컨텐츠의 형식과 구조 및 마스크, 익명화 또는 암호화 여부 - 컨텐츠에 액세스할 수 있는 사용자 - 그러한 액세스 권한을 부여, 관리 및 취소하는 방법 AWS Service Catalog를 사용하여 가상 머신 이미지, 서버, 소프트웨어, 데이터베이스 등 AWS에서 사용하도록 승인한 IT 서비스의 카탈로그를 만들고 관리하여 다층적 애플리케이션 아키텍처를 완성할 수 있음. 고객이 공통적으로 배포되는 IT 서비스를 중앙에서 관리하도록 하며, 사용자가 자신에게 필요한 승인된 IT 서비스만 빠르게 배포하도록 하는 한편, 고객이 일관된 거버넌스를 달성하고 규정 준수 요구 사항을 충족하도록 도와줌 EC2, VPC처럼 IaaS 범주의 서비스들은 고객이 전적으로 제어할 수 있으며 필요한 모든 보안 구성과 관리 작업을 직접 수행해야 한다. --- ## AWS 액세스 제어 및 관리 IAM을 통해 AWS 리소스를 사용할 수 있는 사용자(인증)와 리소스를 사용하는 방법(권한 부여)을 제어 #### IAM 사용자 및 액세스 관리 - 사용자 생성 - 개별 보안 자격 증명(액세스 키, 암호, MFA 디바이스) 할당 - 임시 보안 자격 증명 요청 #### IAM 역할 및 해당 권한 관리 - 역할 생성 - 역할을 가정하는 엔티티 또는 AWS 서비스로 수행할 수 있는 작업을 제어하는 권한 관리 #### 연합된 사용자 및 해당 권한 관리 - 기업 디렉터리에서 기존 자격 증명으로 AWS Management Console에 액세스하고 API를 호출하며 리소스에 액세스할 수 있음 #### 루트 사용자 - AWS 계정을 처음 생성하면 계정의 모든 AWS 서비스 및 리소스에 대한 완전한 액세스 권한을 가진 단일 로그인 자격 증명(루트 사용자)으로 시작하게 됨 - 루트 사용자 액세스 키 삭제를 권장 - 관리자 수준의 권한이 필요한 경우 전체 관리자 액세스 권한을 부여한 IAM 사용자를 생성 #### IAM 모범 사례 - AWS 루트 계정 액세스 키는 AWS 리소스에 대한 무제한 액세스를 제공하므로 삭제 - 대신 IAM 사용자 액세스 키 또는 임시 보안 자격 증명 사용 - AWS 루트 계정에 대해 MFA 활성화 - IAM 사용자를 생성하고 필요한 권한만 부여 - IAM 그룹을 사용하여 IAM 사용자에게 권한을 할당해서 계정의 권한을 간편하게 관리하고 감사할 수 있음 - IAM 암호 정책을 적용하여 IAM 사용자가 강력한 암호를 만들고 주기적으로 교체하도록 요구 - EC2 인스턴스에서 실행되는 애플리케이션에 역할 사용 - 자격 증명을 공유하기 보다는 역할을 사용하여 위임 - 자격 증명을 주기적으로 교체 - 불필요한 사용자와 자격 증명 제거 - 보안 강화를 위해 정책 조건 사용 - AWS 계정 내 활동을 모니터링 --- ## AWS 보안 규정 준수 프로그램 #### AWS는 다음과 같은 방법으로 고객과 관련된 보안 및 제어 환경을 알려준다. - 산업 인증 미 독립적인 타사 인증 획득 - 백서와 웹 사이트 컨텐츠를 통한 AWS 보안 및 규제 관행에 대한 정보 공개 - NDA 체결 후, AWS 고객사에 인증서, 보고서 및 기타 문서 직접 제공 (필요한 경우) #### AWS 위험 및 규정 준수 프로그램의 구성 요소 - 위험 관리 - 제어 환경 (규제 환경) - 정보 보안 #### AWS 고객이 지속적으로 유지해야할 적절한 거버넌스 - 필요한 규정 준수 목표 및 요건 이해 - 그러한 목표와 요건을 충족하는 제어 환경 구성 - 조직의 위험 허용 범위에 따라 필요한 확인 이해 - 제어 환경의 운영 효과 검증 #### 강력한 고객 규정 준수와 거버넌스에 포함된 기본 접근법 - AWS에서 제공하는 정보와 기타 정보를 함께 검토하여 전체 IT 환경을 최대한 이해한 다음 모든 규정 준수 요건을 문서화 - 대기업의 규정 준수 요건을 충족하는 제어 목표를 수립하고 구현 - 외부 당사자가 소유한 제어 기능을 식별하고 문서화 - 모든 제어 목표가 달성되었으며 모든 주요 제어 환경이 효과적으로 설계 및 운영되고 있는지 확인 --- ## AWS 보안 리소스 #### AWS가 클라우드에서 데이터를 보안하는 지침으로 고객에게 제공하는 것 - AWS Trusted Advisor - 모범 사례를 따르도록 리소스를 구성할 수 있도록 도와주는 온라인 도구 - 보안 격차 개선 - 비용 절감 - 시스템 성능 개선 - 안정성 향상 - AWS 계정 팀 - 연락 지점을 제공하여 배포 및 구현 과정을 안내하고 직면할 수 있는 보안 문제를 해결하기 위한 최적의 리소스를 알려줌 - AWS Enterprise Support - 15분의 응답 시간 제공 - 전담 기술 계정 관리자와 함께 전화, 채팅, 이메일을 통한 24시간 연중 무휴 - AWS Professional Services 및 AWS 파트너 네트워크 - 충분히 검증된 설계를 기반으로 보안 정책과 절차를 개발 - 고객의 보안 설계가 내외부 규정 준수 요건을 충족하도록 지원 - AWS 자문 및 게시판 - 현재의 취약성 및 위협에 대한 자문 제공 - AWS 보안 전문가와 협력하여 침해 사례, 취약성 및 침투 테스트와 같은 문제를 해결할 수 있게 함 ## Well-Architected Framework - 보안 - 안정성 - 성능 효율성 - 비용 최적화 - 운영 우수성 #### 보안 - 핵심 요소 - IAM: 권한이 올바르게 부여되고, 인증된 사용자만 리소스에 접근할 수 있도록 보장 - 탐지 제어: 로그 캡처, 분석, 감사 제어 통합 등을 통해 잠재 보안 사고 식별 - 인프라 보호 - 데이터 보호: 데이터 분류, 암호화, 보관된 혹은 전송 중인 데이터 보호, 백업, 복제 및 복구 - 사고 대응: 보안 사고에 대응하고 그 영향을 완화하기 위한 사고 대응 프로세스 - 설계 원칙 - 모든 계층에 보안 적용 - 추적 기능 활성화 - 최소 권한의 원칙 - 보안 모범 사례 자동화 #### 안정성 - 핵심 요소 - 기반 - 변경 관리 - 장애 관리 - 안정성 설계 원칙 - 복구 절차 테스트 - 장애로부터 자동 복구 - 수평 확장을 통한 고 가용성 지향 #### 성능 효율성 - 핵심 요소 - 선택: 아키텍처를 최적화할 가장 적합한 솔루션 선택 - 검토: 지속적인 혁신, 새롭게 사용 가능한 기술 및 접근 방식 활용 - 모니터링: 아키텍처 구현 후 성능 모니터링 (CloudWatch, Kinesis, SQS, Lambda) - 트레이드오프 (상반 관계): 일관성, 내구성 및 공간을 위해 시간 또는 지연 시간을 절충하여 높은 성능을 제공 - 설계 원칙 - 고급 기술의 대중화 - 서버리스 아키텍처 사용 - 더 자주 실험하기 - 기계적 동조: 달성하려는 목표에 가장 부합하는 기술 접근 방식을 사용 #### 비용 최적화 - 핵심 요소 - 비용 효율적인 리소스 - 수요와 공급의 균형 - 지출 인식 - 시간에 따른 최적화 - 설계 원칙 - 소비 모델 - 전반적인 효율성 측정 - 데이터 센터 운영에 필요한 비용 지출 중단 - 지출을 분석하고 부과 - 관리형 서비스 사용 #### 운영 우수성 --- ## 내결함성 및 고가용성 #### 고가용성 서비스 - ELB - EIP - Route 53 - Auto Scaling - CloudWatch #### 내결함성 서비스 - SQS - S3 - SimpleDB - RDS --- ## 웹 호스팅 #### 웹 호스팅 시 고려할 수 있는 서비스 - VPC - Route 53 - CloudFront - ELB - Shield - Auto Scaling - EC2 - ElastiCache - RDS - DynamoDB #### 고려 사항 - 물리적 네트워크 어플라이언스가 제거 됨 - 어디에나 방화벽이 있어야 함 - 여러 데이터 센터의 가용성 - 호스트 ## 요금 기본 정보 #### 가격 결정에 포함되는 항목 - 종량 과금제 - 예약 (전체 선결제, 부분 선결제, 선결제 금액 없음) - 규모의 경제 #### 온디맨드로 서비스 제공 - 사용한 만큼 지불하는 종량 과금제 - 무료 서비스 - VPC - Elastic Beanstalk - CloudFormation - IAM - Auto Scaling - OpsWorks --- ## 요금 내역 #### AWS 사용 시 지불해야 하는 세 가지 기본 특성 - 컴퓨팅 - 스토리지 - 데이터 송신 (아웃바운드) #### EC2 - 사용 시간 - 인스턴스 시작부터 종료까지 - EIP가 할당된 시간부터 해제까지 - 구성: 리전, OS, 코어 수 및 메모리 - 구입 유형: 온디맨드, 예약, 스팟 - 인스턴스 수 - 로드 밸런싱: 실행 시간, 처리 데이터 양 - CloudWatch 세부 모니터링 - Auto Scaling - EIP - OS 및 SW 패키지 #### S3 - 스토리지 클래스 - Standard - SIA (Standard Infrequent Access) - 저장되는 객체 수와 크기 및 유형 - 요청 수 및 유형 (GET, PUT, COPY) - 데이터 전송 #### EBS - 볼륨 - IOPS - 스냅샷 - 데이터 전송 #### RDS - 사용 시간 - DB 특성: 엔진, 크기 및 메모리 클래스 - 구입 유형: 온디맨드, 예약 - 인스턴스 수 - 프로비저닝된 스토리지 - 추가 스토리지 - 요청 - 배포 유형: 단일 가용 영역, 다중 가용 영역 - 데이터 전송 #### CloudFront - 트래픽 배포 - 요청 - 데이터 송신 --- ## TCO 계산기 AWS 총 소유 비용 계산기 - AWS 사용할 때의 비용 절감 추정 - 임원 프레젠테이션에 사용할 수 있는 상세 보고서 세트 제공 - 요구 사항에 가장 잘 맞게 가정 수정 --- ## AWS Support 플랜 개요 [https://aws.amazon.com/ko/premiumsupport/plans/](https://aws.amazon.com/ko/premiumsupport/plans/) #### TAM (기술 계정 지원 담당자) - 사전 지침을 원하는 사용자의 1차 연락 담당자 - 사용자가 솔루션을 계획, 배포 및 최적화할 때 계속 정보를 얻고 대비할 수 있도록 지침, 아키텍처 검토 및 지속적인 커뮤니케이션 제공 - Enterprise support 전용 #### Trusted Advisor - 월별 지출을 줄이고 생산성 개선 기회를 확인하는 온라인 리소스 #### Support 컨시어지 - 결제 및 계정 수준의 모든 문제를 처리하는 전문가 - Enterprise support 전용 #### Support 플랜 옵션 - Basic Support - Developer Support - 업무 시간 내에 클라우드 지원 어소시에이트에게 이메일로 액세스 - 하나의 주 연락처로 사례를 열 수 있음 - Business Support - 인프라 이벤트 관리에 액세스 - 기술 문제에 대해 클라우드 지원 엔지니어에게 액세스 - 타사 소프트웨어 지원에 액세스 - Personal Health Dashboard 및 상태 API에 액세스 - Enterprise Support --- ## 오답 노트 #### AWS 전반에 대한 데이터 전송 요금 - 모든 리전의 모든 AWS 전반에 대한 무료 인바운드 데이터 전송 - 동일한 리전의 AWS 간 무료 아웃바운드 데이터 전송