관리 메뉴

피터의 개발이야기

[DOP-C01] AWS DevOps Engineer Professional : Part 13 본문

AWS/DOP

[DOP-C01] AWS DevOps Engineer Professional : Part 13

기록하는 백앤드개발자 2023. 3. 1. 02:54
반응형

 

  1. 회사에는 Amazon DynamoDB 테이블에 저장된 데이터와 함께 Amazon ECS를 사용하여 배포된 애플리케이션이 있습니다. 회사는 재해 복구 시나리오에서 응용 프로그램이 다른 지역으로 장애 조치되기를 원합니다. 또한 응용 프로그램은 우발적인 데이터 손실 이벤트로부터 효율적으로 복구해야 합니다. 애플리케이션의 RPO는 1시간이고 RTO는 2시간입니다.

    DevOps 엔지니어가 추천해야 하는 고가용성 솔루션은 무엇입니까?
    • 기존 DynamoDB 테이블의 구성을 변경합니다. 이것을 전역 테이블로 활성화하고 사용할 두 번째 리전을 지정합니다. DynamoDB 특정 시점 복구를 활성화합니다.
    • 테이블에 대해 DynamoDB 스트림을 활성화하고 스트림 데이터를 두 번째 리전의 S3 버킷에 쓰는 AWS Lambda 함수를 생성합니다. 2시간마다 작업을 예약하여 AWS Data Pipeline을 사용하여 데이터베이스를 장애 조치 리전으로 복원하십시오.
    • AWS Data Pipeline을 사용하여 2시간마다 DynamoDB 테이블을 두 번째 리전의 Amazon S3 버킷으로 내보냅니다. 두 번째 리전에서 데이터 파이프라인을 사용하여 S3에서 두 번째 DynamoDB 테이블로 내보내기를 복원합니다.
    • AWS DMS를 사용하여 매시간 데이터를 복제합니다. 원래 DynamoDB 테이블을 소스로 설정하고 새 DynamoDB 테이블을 대상으로 설정합니다.
  2. 회사는 전역적으로 액세스할 수 있는 API 스택을 위해 잘 설계된 디자인을 구현하고 있습니다. 디자인은 북미와 유럽에 위치한 사용자를 위해 높은 신뢰성과 빠른 응답 시간을 모두 보장해야 합니다.

    API 스택에는 다음 세 계층이 포함됩니다.

    – Amazon API 게이트웨이
    – AWS Lambda
    – Amazon DynamoDB

    어떤 솔루션이 요구 사항을 충족합니까?
    • 상태 확인을 사용하여 북미 및 유럽의 API Gateway API를 가리키도록 Amazon Route 53을 구성합니다. 해당 리전의 Lambda 함수에 요청을 전달하도록 API를 구성합니다. Lambda 함수와 동일한 리전에 있는 DynamoDB 테이블의 데이터를 검색하고 업데이트하도록 Lambda 함수를 구성합니다.
    • 지연 시간 기반 라우팅 및 상태 확인을 사용하여 북미 및 유럽의 API Gateway API를 가리키도록 Amazon Route 53을 구성합니다. 해당 리전의 Lambda 함수에 요청을 전달하도록 API를 구성합니다. DynamoDB 전역 테이블에서 데이터를 검색하고 업데이트하도록 Lambda 함수를 구성합니다.
    • 북미의 API 게이트웨이를 가리키도록 Amazon Route 53을 구성하고, 유럽에서 재해 복구 API를 생성하고, 요청을 해당 리전의 Lambda 함수로 전달하도록 두 API를 구성합니다. DynamoDB 전역 테이블에서 데이터를 검색합니다. 5분마다 북미 API 상태를 확인하는 Lambda 함수를 배포합니다. 장애가 발생하면 재해 복구 API를 가리키도록 Route 53을 업데이트하십시오.
    • 지연 시간 기반 라우팅을 사용하여 북미에서 API Gateway API를 가리키도록 Amazon Route 53을 구성합니다. 사용자에게 가장 가까운 리전의 Lambda 함수로 요청을 전달하도록 API를 구성합니다. DynamoDB 테이블에서 데이터를 검색하고 업데이트하도록 Lambda 함수를 구성합니다.

      정리: 전역 액세스-> 전역 테이블,  빠른 응답 보장 -> 지연 시간 기반으로 빨리빨리
  3. 회사는 Amazon EC2에서 호스팅되는 콘텐츠 공유 웹 애플리케이션을 서버리스 아키텍처로 마이그레이션하려고 합니다. 이 회사는 현재 EC2 인스턴스의 새로운 Auto Scaling 그룹과 새로운 Elastic Load Balancer를 생성한 다음 Amazon Route 53 가중 라우팅 정책을 사용하여 트래픽을 이동함으로써 변경 사항을 애플리케이션에 배포합니다.

    새로운 서버리스 애플리케이션을 위해 회사는 Amazon API Gateway 및 AWS Lambda를 사용할 계획입니다. 회사는 새 애플리케이션과 함께 작동하도록 배포 프로세스를 업데이트해야 합니다. 또한 전체 사용자 기반에 기능을 배포하기 전에 소수의 사용자에 대해 새로운 기능을 테스트할 수 있는 기능을 유지해야 합니다.

    이러한 요구 사항을 충족하는 배포 전략은 무엇입니까?
    • AWS CDK를 사용하여 API Gateway 및 Lambda 함수를 배포합니다. 코드를 변경해야 하는 경우 AWS CloudFormation 스택을 업데이트하고 새 버전의 API 및 Lambda 함수를 배포하십시오. 카나리아 릴리스 전략에는 Route 53 장애 조치 라우팅 정책을 사용하십시오.
    • AWS CloudFormation을 사용하여 Lambda 함수 버전을 사용하여 API Gateway 및 Lambda 함수를 배포합니다. 코드를 변경해야 하는 경우 새 Lambda 코드로 CloudFormation 스택을 업데이트하고 카나리아 릴리스 전략을 사용하여 API 버전을 업데이트합니다. 테스트가 완료되면 새 버전을 홍보하십시오.
    • AWS Elastic Beanstalk를 사용하여 API Gateway 및 Lambda 함수를 배포합니다. 코드를 변경해야 하는 경우 새 버전의 API 및 Lambda 함수를 배포합니다. Elastic Beanstalk 블루/그린 배포를 사용하여 점진적으로 트래픽을 이동합니다.
    • AWS OpsWorks를 사용하여 서비스 계층에 API Gateway를 배포하고 사용자 지정 계층에 Lambda 함수를 배포합니다. 코드를 변경해야 하는 경우 OpsWorks를 사용하여 블루/그린 배포를 수행하고 트래픽을 점진적으로 이동합니다.

      정리: 가중 라우팅 정책 -> 카나리아 지!!

  4. 최근 감사 후 회사는 Amazon EC2에서 실행되는 Amazon S3 데이터 및 MySQL 데이터베이스에 대한 새로운 재해 복구 전략을 구현하기로 결정했습니다. 경영진은 RPO가 5초 미만이고 RTO가 1분 미만인 보조 AWS 리전으로 복구할 수 있는 기능을 원합니다.

    운영 오버헤드를 최소화하면서 요구 사항을 충족하는 조치는 무엇입니까? (두 가지를 선택하세요.)
    • Amazon S3에 객체를 업로드할 때 동시에 두 리전에 쓰도록 애플리케이션을 수정합니다.
    • 데이터베이스를 기본 및 보조 리전의 Amazon Aurora 다중 마스터로 마이그레이션합니다.
    • 보조 리전에 읽기 전용 복제본이 있는 Amazon RDS로 데이터베이스를 마이그레이션합니다.
    • Amazon Aurora 글로벌 데이터베이스로 마이그레이션합니다.
    • 객체를 넣을 S3 버킷에 대한 복제 SLA로 S3 교차 리전 복제를 설정합니다.

      설명: 예측 가능한 복제 시간을 위한 Amazon S3 복제 시간 제어(SLA 보장)
      고객은 S3 복제를 사용하여 버킷 전체에서 수십억 개의 객체를 동일한 리전이나 다른 리전에 복제합니다. S3 복제 시간 제어는 업로드 후 15분 이내에 99.99%의 객체를 복제하도록 설계되었으며, 새로운 객체의 대부분이 몇 초 만에 복제됩니다.
  5. DevOps 엔지니어가 기존 AWS KMS 키를 삭제하도록 스케줄링하고 있으며, 필요에 따라 키를 다시 활성화하는 교정 AWS Lambda 함수를 생성했습니다. 엔지니어는 사용 가능한 AWS CloudTrail 데이터로 이 프로세스를 자동화하려고 합니다. 따라서 삭제가 예약된 키가 사용 중인 경우 해당 키가 다시 활성화됩니다.

    이 자동화를 가능하게 하는 솔루션은 무엇입니까?
    • 오류 메시지와 함께 KMS 이벤트에 대한 Amazon CloudWatch Logs 지표 필터 및 경보를 생성합니다. 교정 Lambda 함수를 경보 대상으로 설정합니다.
    • 오류 메시지와 함께 KMS 이벤트에 대한 Amazon CloudWatch Logs 지표 필터 및 경보를 생성합니다. 경보 대상으로 Amazon SNS 주제를 생성합니다. SNS 주제에 대한 수정 Lambda 함수를 구독합니다.
    • 오류 메시지와 함께 KMS 서비스 이벤트를 찾는 Amazon CloudWatch Events 규칙 패턴을 생성합니다. 규칙의 대상으로 Amazon SNS 주제를 생성합니다. SNS 주제에 대한 수정 Lambda 함수를 구독합니다.
    • Amazon CloudTrail을 사용하여 오류 메시지로 KMS 서비스 이벤트에 대해 알립니다. 수정 Lambda 함수를 규칙의 대상으로 설정합니다.

      설명: AWS KMS > 삭제 보류 중인 KMS 키의 사용을 감지하는 경보 생성
      AWS CloudTrail, Amazon CloudWatch Logs 및 Amazon Simple Notification Service(Amazon SNS)의 기능을 결합하여 계정의 누군가가 삭제 보류 중인 KMS 키를 사용하려고 할 때 알려주는 Amazon CloudWatch 경보를 생성할 수 있습니다. 이 알림을 받으면 KMS 키 삭제를 취소하고 삭제 결정을 재고할 수 있습니다.
        1. CloudTrail 로그를 구문 분석하는 CloudWatch 지표 필터를 생성합니다.
        2. 1단계에서 생성한 지표 필터를 기반으로 CloudWatch 경보를 생성합니다.

      정리: 삭제할려고 했는데, 사용중이면 다시 살리는 방법? Amazon CloudWatch Logs로 뒤져서 알람 보내기
  6. DevOps 엔지니어는 AWS CodeBuild, AWS CodeDeploy 및 Amazon S3를 사용하여 중앙 집중식 CI/CD 파이프라인을 구축하고 있습니다. 엔지니어는 Amazon S3의 모든 아티팩트에 대해 최소 권한 액세스 및 유휴 시 개별 암호화를 보유해야 합니다. 엔지니어는 다운로드하거나 읽을 수 없는 오래된 아티팩트를 정리할 수 있어야 합니다.

    엔지니어는 이미 다음 단계를 완료했습니다.
    1. 각 프로젝트의 빌드에 대해 고유한 AWS Key Management Service(AWS KMS) CMK 및 S3 버킷을 생성했습니다.
    2. 연결된 KMS 암호화를 사용하는 업로드만 허용하도록 S3 버킷 정책을 업데이트했습니다.

    이러한 요구 사항을 충족하려면 어떤 마지막 단계를 수행해야 합니까?
    • 애플리케이션이 배포될 CodeDeploy 역할에서 적절한 KMS 키에 대한 액세스를 허용하도록 연결된 IAM 정책을 업데이트합니다.
    • 애플리케이션이 배포될 EC2 인스턴스 역할에서 적절한 KMS 키에 대한 액세스를 허용하도록 연결된 IAM 정책을 업데이트합니다.
    • 애플리케이션이 배포될 CodeDeploy 역할에서 적절한 KMS 키에 대한 액세스를 허용하도록 CMK의 키 정책을 업데이트합니다.
    • 애플리케이션이 배포될 EC2 인스턴스 역할에서 적절한 KMS 키에 대한 액세스를 허용하도록 CMK의 키 정책을 업데이트합니다.

      정리:  배포는 CodeDeploy,  KMS 키에 대한 액세스는 IAM 정책
  7. DevOps 엔지니어는 1시간의 RPO와 4시간의 RTO가 필요한 애플리케이션을 위한 다중 지역 재해 복구 전략을 설계하고 있습니다. 애플리케이션은 Application Load Balancer, Auto Scaling 그룹의 Amazon EC2 인스턴스, 할당된 스토리지가 20GB인 Amazon RDS 다중 AZ DB 인스턴스를 생성하는 AWS CloudFormation 템플릿과 함께 배포됩니다. 애플리케이션 인스턴스의 AMI에 데이터가 포함되어 있지 않으며 대상 리전에 복사되었습니다.

    가장 낮은 비용으로 복구 목표를 충족하는 작업 조합은 무엇입니까? (두 가지를 선택하세요.)
    • 장애 조치 리전에서 RDS DB 인스턴스를 시작하고 AWS DMS를 사용하여 원본 데이터베이스에서 지속적인 복제를 구성합니다.
    • 매시간 데이터베이스의 스냅샷을 생성하고 스냅샷을 장애 조치 리전에 복사하도록 AWS Lambda 함수를 예약합니다.
    • 장애 조치 시 장애 조치 지역의 CloudFormation 스택을 업데이트하여 하나의 실행 중인 인스턴스에서 원하는 인스턴스 수로 Auto Scaling 그룹을 업데이트합니다. 스택 업데이트가 완료되면 장애 조치 지역의 Elastic Load Balancer를 가리키도록 DNS 레코드를 변경합니다.
    • 장애 조치 시 스냅샷 ID를 입력 매개변수로 사용하여 장애 조치 리전에서 CloudFormation 템플릿을 시작합니다. 스택 생성이 완료되면 장애 조치 지역의 Elastic Load Balancer를 가리키도록 DNS 레코드를 변경합니다.
    • 내장된 RDS 자동 백업을 활용하여 AWS Lambda 함수를 트리거하여 스냅샷을 장애 조치 리전으로 복사하는 Amazon CloudWatch Events로 이벤트를 설정합니다.

      정리: RTO가 4시간이면 장애 맞어? CloudFormation 템플릿을 시작하고 DNS만 돌리면 될듯. 상시 대기 필요없음.
       RPO가 1시간이니 디비는 매시간 백업!!

  8. 회사에서 서버리스 컴퓨팅을 채택하고 기존 애플리케이션 중 일부를 AWS Lambda로 마이그레이션하고 있습니다. DevOps 엔지니어는 적절한 버전 제어, 분기 전략 및 롤백 방법을 포함해야 하는 AWS CodePipeline을 사용하여 자동화된 배포 전략을 제시해야 합니다.

    파이프라인을 설정할 때 DevOps 엔지니어가 따라야 하는 단계 조합은 무엇입니까? (3개를 선택하세요.) 
    • Amazon S3를 소스 코드 리포지토리로 사용합니다.
    • AWS CodeCommit을 소스 코드 리포지토리로 사용합니다.
    • AWS CloudFormation을 사용하여 배포용 AWS Serverless Application Model(AWS SAM) 템플릿을 생성합니다.
    • AWS CodeBuild를 사용하여 배포용 AWS Serverless Application Model(AWS SAM) 템플릿을 생성합니다.
    • AWS CloudFormation을 사용하여 애플리케이션을 배포합니다.
    • AWS CodeDeploy를 사용하여 애플리케이션을 배포합니다.

      설명: AWS Serverless Application Model(AWS SAM) 는 무엇입니까?
      AWS Serverless Application Model(AWS SAM) 는 서버리스 애플리케이션을 빌드하는 데 사용할 수 있는 오픈 소스AWS 프레임워크입니다.
        AWS CloudFormation의 확장. AWS SAM은 AWS CloudFormation의 확장이므로 AWS CloudFormation의 안정적인 배포 기능을 사용할 수 있습니다. AWS SAM 템플릿에서 AWS CloudFormation을 사용하여 리소스를 정의할 수 있습니다. 또한 AWS CloudFormation에서 사용할 수 있는 리소스, 내장 함수 및 기타 템플릿 기능의 전체 제품군을 사용할 수 있습니다.

      정리: 서버리스는 SAM이지. CodeCommit하고 서버리스 Build하고 다음에 Deploy하여 애플리케이션 배포 해야해! 
      CloudFormation이 배포는 안해요!

  9. 수천 개의 사용자 프로필 도난으로 이어진 데이터 유출 사건 이후, 규정 준수 담당자는 Amazon S3 버킷의 공개 액세스를 시작으로 회사의 모든 데이터 저장소에 대한 자동 감사 가능한 보안 정책 검사를 요구하고 있습니다.

    최소한의 노력으로 이를 달성할 수 있는 솔루션은 무엇입니까?
    • 버킷 정책 또는 버킷 ACL이 퍼블릭 읽기 액세스를 허용하는 시기를 감지하는 S3 버킷 구성 변경에 의해 트리거되는 AWS Config에서 사용자 지정 규칙을 생성합니다. 수정 작업을 사용하여 퍼블릭 액세스를 자동으로 비활성화하는 AWS Lambda 함수를 트리거합니다.
    • 버킷 정책 또는 버킷 ACL이 퍼블릭 읽기 액세스를 허용하는 시기를 감지하는 S3 버킷 구성 변경에 의해 트리거되는 AWS Config에서 사용자 지정 규칙을 생성합니다. 퍼블릭 액세스를 자동으로 비활성화하는 AWS Lambda 함수를 트리거합니다.
    • 버킷 정책 또는 버킷 ACL이 퍼블릭 읽기 액세스를 허용하는 시기를 감지하는 S3 버킷 구성 변경에 의해 트리거되는 AWS Config관리형 규칙을 사용합니다. 공용 액세스를 자동으로 비활성화하는 수정 작업을 구성합니다.
    • 버킷 정책 또는 버킷 ACL이 퍼블릭 읽기 액세스를 허용하는 시기를 감지하는 S3 버킷 구성 변경에 의해 트리거되는 AWS Config의 관리형 규칙을 사용합니다. 퍼블릭 액세스를 자동으로 비활성화하는 AWS Lambda 함수를 구성합니다.

      설명: AWS Systems Manager > AWS-DisableS3BucketPublicReadWrite
      Amazon Simple Storage Service(Amazon S3)를 사용하여 Block Public Access퍼블릭 S3 버킷에 대한 읽기 및 쓰기 액세스를 비활성화합니다. 

      Amazon S3 스토리지에 대한 공개 액세스 차단
        Amazon S3 퍼블릭 액세스 차단 기능은 Amazon S3 리소스에 대한 퍼블릭 액세스를 관리하는 데 도움이 되는 액세스 포인트, 버킷 및 계정에 대한 설정을 제공합니다. 기본적으로 새 버킷, 액세스 포인트 및 객체는 퍼블릭 액세스를 허용하지 않습니다. 그러나 사용자는 퍼블릭 액세스를 허용하도록 버킷 정책, 액세스 포인트 정책 또는 객체 권한을 수정할 수 있습니다. S3 퍼블릭 액세스 차단 설정은 이러한 리소스에 대한 퍼블릭 액세스를 제한할 수 있도록 이러한 정책 및 권한을 재정의합니다.
        S3 퍼블릭 액세스 차단을 사용하면 계정 관리자와 버킷 소유자는 중앙 집중식 제어를 쉽게 설정하여 리소스 생성 방법에 관계없이 적용되는 Amazon S3 리소스에 대한 퍼블릭 액세스를 제한할 수 있습니다.

      정리: AWS Config로 관리하고 수정 작업까지 구성한다.
  10. 회사는 규정 준수 요구 사항을 충족하기 위해 CMK 및 수동 키 교체와 함께 AWS KMS를 사용합니다. 보안 팀은 90일 이후에 키가 순환되지 않은 경우 알림을 받기를 원합니다.

    어떤 솔루션이 이를 달성할까요?
    • 키가 90일 이상 경과하면 Amazon SNS 주제에 게시하도록 AWS KMS를 구성합니다.
    • AWS Trusted Advisor API를 호출하고 Amazon SNS 주제에 게시하는 AWS Lambda 함수를 시작하도록 Amazon CloudWatch Events 이벤트를 구성합니다.
    • 키가 90일 이상 경과하면 Amazon SNS 주제에 게시하는 AWS Config 사용자 지정 규칙을 개발합니다.
    • 키가 90일 이상 경과하면 Amazon SNS 주제에 게시하도록 AWS Security Hub를 구성합니다.

      설명: AWS Config 사용자 지정 규칙
      AWS Config사용자 지정 규칙은 처음부터 새로 만드는 규칙입니다. AWS Config사용자 지정 규칙을 생성하는 두 가지 방법이 있습니다. 하나는 Lambda 함수 (AWS Lambda개발자 가이드) 를 사용하는 것이고 다른 하나는 policy-as-code 언어인 Guard (Guard GitHub 리포지토리) 를 사용하는 것입니다.

      AWS ConfigLambda로 생성한 사용자 지정 규칙을 AWS Config사용자 지정 Lambda 규칙이라고 하고 Guard로 생성한AWS Config 사용자 지정 규칙을 AWS Config사용자 지정 정책 규칙이라고 합니다.

      정리: 90일은 사용자 지정 규칙이지
  11. 회사는 단일 가용 영역에서 Amazon EC2 인스턴스와 Amazon RDS for SQL Server DB 인스턴스를 사용하여 웹 애플리케이션을 개발하고 유지 관리합니다. 리소스는 AWS CodePipeline을 사용하여 새 배포를 테스트할 때만 실행해야 합니다. 테스트는 일주일에 한 번 이상 발생하며 각 테스트를 실행하는 데 2-3시간이 걸립니다. DevOps 엔지니어는 아키텍처 구성 요소를 변경하지 않는 솔루션을 원합니다.

    가장 비용 효율적인 방식으로 이러한 요구 사항을 충족하는 솔루션은 무엇입니까?
    • RDS 데이터베이스를 Amazon Aurora Serverless 데이터베이스로 변환합니다. AWS Lambda 함수를 사용하여 테스트 전후에 EC2 인스턴스를 시작 및 중지합니다.
    • EC2 인스턴스를 Auto Scaling 그룹에 넣습니다. 배포 테스트 시작 시 실행되도록 조정 일정을 잡습니다.
    • EC2 인스턴스를 EC2 스팟 인스턴스로 교체하고 RDS 데이터베이스를 RDS 예약 인스턴스로 교체합니다.
    • 배포 테스트 전후에 모든 EC2 및 RDS 인스턴스를 시작하고 중지하는 AWS 시스템 관리자 자동화 문서를 트리거하려면 Amazon CloudWatch Events를 CodePipeline에 구독하십시오.

      설명: AWS Systems Manager Automation(AWS 시스템 관리자 자동화)
      AWS Systems Manager의 기능인 자동화를 통해 일반적인 유지보수, 구현 및 EC2, RDS, Redshift,S3와 같은 AWS 서비스에 대한 일반적인 유지 관리, 배포 및 수정 작업을 단순화합니다.

      자동화는 AWS 리소스를 대규모로 배포, 구성 및 관리하는 자동화된 솔루션을 구축하는 데 도움이 됩니다. 자동화를 사용하면 자동화의 동시성을 세부적으로 제어할 수 있습니다. 즉, 동시에 대상으로 지정할 리소스 수와 자동화가 중지되기 전에 발생할 수 있는 오류 수를 지정할 수 있습니다.

      자동화를 시작하는 데 도움이 되도록 AWS는 사전 정의된 여러 런북을 개발하고 유지 관리합니다. 사용 사례에 따라 다양한 작업을 수행하는 미리 정의된 Runbook을 사용하거나 요구 사항에 더 잘 맞는 고유한 사용자 지정 Runbook을 만들 수 있습니다. 자동화 진행률 및 상태를 모니터링하려면 Systems Manager 자동화 콘솔 또는 선호하는 명령줄 도구를 사용할 수 있습니다. 자동화는 또한 Amazon EventBridge(Amazon CloudWatch Events)와 통합되어 이벤트 기반 아키텍처를 대규모로 구축하는 데 도움이 됩니다.

      정리: 개발 끄는거 귀찮아. 자동으로 AWS 시스템 관리자 자동화 런북가 관리해 주면 좋겠네. 자동화 문서 -> CodePipeline -> 

  12. 회사에서 AWS CodePipeline을 사용하여 릴리스 파이프라인을 자동화하고 있습니다. 블루/그린 배포 모델을 사용하여 Amazon ECS에 애플리케이션을 배포하기 위해 파이프라인에서 AWS CodeDeploy가 사용되고 있습니다. 회사는 트래픽을 이동하기 전에 응용 프로그램의 녹색 버전을 테스트하는 스크립트를 구현하려고 합니다. 이 스크립트는 5분 이내에 완료됩니다. 이러한 테스트 중에 오류가 발견되면 응용 프로그램을 롤백해야 합니다.

    이러한 요구 사항을 충족하는 전략은 무엇입니까?
    • 소스 및 배포 단계 사이의 CodePipeline 파이프라인에 단계를 추가합니다. AWS CodeBuild를 사용하여 실행 환경을 생성하고 buildspec 파일에서 명령을 빌드하여 테스트 스크립트를 호출합니다. 오류가 발견되면 aws deploy stop-deployment 명령을 사용하여 배포를 중지합니다.
    • 소스 및 배포 단계 사이의 CodePipeline 파이프라인에 단계를 추가합니다. 이 단계를 사용하여 테스트 스크립트를 실행할 AWS Lambda 함수를 실행합니다. 오류가 발견되면 aws deploy stop-deployment 명령을 사용하여 배포를 중지합니다.
    • CodeDeploy AppSpec 파일에 후크 섹션을 추가합니다. AfterAllowTestTraffic 수명 주기 이벤트를 사용하여 AWS Lambda 함수를 호출하여 테스트 스크립트를 실행합니다. 오류가 발견되면 오류와 함께 Lambda 함수를 종료하여 롤백을 트리거합니다.
    • CodeDeploy AppSpec 파일에 후크 섹션을 추가합니다. AfterAllowTraffic 수명 주기 이벤트를 사용하여 테스트 스크립트를 호출합니다. 오류가 발견되면 aws deploy stop-deployment CLI 명령을 사용하여 배포를 중지합니다.

      설명: AWS CodeDeploy > AppSpec '후크' 섹션
      섹션을 사용하여 'hooks'CodeDeploy가 Amazon ECS 배포를 검증하기 위해 호출할 수 있는 Lambda 함수를 지정합니다. BeforeInstall, AfterInstall, AfterAllowTestTraffic, BeforeAllowTraffic및 배포 수명 주기 이벤트 에 대해 동일한 기능 또는 다른 기능을 사용할 수 있습니다 AfterAllowTraffic. 유효성 검사 테스트가 완료된 후 Lambda 함수는 CodeDeploy를 다시 호출하고 또는 AfterAllowTraffic의 결과를 전달합니다.
        AfterAllowTestTraffic– 테스트 리스너가 대체 작업 세트에 트래픽을 제공한 후 작업을 실행하는 데 사용합니다. 이 시점에서 후크 함수의 결과는 롤백을 트리거할 수 있습니다.  Succeeded   Failed

      정리: 트래픽이 가능할 때에 테스트 하라는 말. After AllowTest Traffic

  13. 회사는 .csv 형식으로 저장된 Amazon S3 버킷에 100GB의 로그 데이터를 가지고 있습니다. SQL 개발자는 이 데이터를 쿼리하고 그래프를 생성하여 시각화하기를 원합니다. 또한 .csv 파일에서 메타데이터를 저장하는 효율적이고 자동화된 방법이 필요합니다.

    최소한의 노력으로 이러한 요구 사항을 충족하려면 어떤 단계 조합을 수행해야 합니까? (3개를 선택하세요.)
    • AWS X-Ray를 통해 데이터를 필터링하여 데이터를 시각화합니다.
    • Amazon QuickSight를 통해 데이터를 필터링하여 데이터를 시각화합니다.
    • Amazon Athena로 데이터를 쿼리합니다.
    • Amazon Redshift로 데이터를 쿼리합니다.
    • AWS Glue를 영구 메타데이터 저장소로 사용합니다.
    • Amazon S3를 영구 메타데이터 저장소로 사용합니다.

      설명: QuickSight는 최종 사용자가 데이터 중심 결정을 내릴 수 있도록 고객에게 매주 수백만 개의 대시보드 보기를 지원합니다. Kibana와 같은 역할을 한다. S3에 저장하고, Athena로 정규화 하고, QuickSight로 시각화 한다.
  14. 회사에서 AWS CodePipeline을 사용하여 애플리케이션을 배포하고 있습니다. 최근 정책 변경으로 인해 회사의 보안 팀 구성원은 응용 프로그램 변경 사항을 프로덕션에 배포하기 전에 승인해야 합니다. 승인은 기록하고 보관해야 합니다.

    이러한 새로운 요구 사항을 충족하는 작업 조합은 무엇입니까? (두 가지를 선택하세요.)
    • 데이터를 유지하려면 Amazon CloudWatch Logs로 CodePipeline을 구성하십시오.
    • 작업 로그를 Amazon S3에 전달하도록 CodePipeline을 구성합니다.
    • Amazon S3에 로그를 전달하는 AWS CloudTrail 추적을 생성합니다.
    • 승인을 위해 AWS Lambda 함수를 호출하는 사용자 지정 CodePipeline 작업을 생성합니다. 보안 팀에 사용자 지정 CodePipeline 작업을 관리할 수 있는 액세스 권한을 부여하는 정책을 만듭니다.
    • 배포 단계 전에 수동 승인 CodePipeline 작업을 생성합니다. 보안 팀에 수동 승인 단계를 승인할 수 있는 액세스 권한을 부여하는 정책을 만듭니다.

      정리: 승인이라는 과정(파이프)를 만들어야지. 데이터를 유지하려면 파이프가 필요해!
  15. Amazon API Gateway 배포 직후 애플리케이션 사용자에게 버그가 발생합니다. 개발 팀은 하루에 한두 번 배포하고 맞춤형 상태 확인 및 자동 롤백과 함께 블루/그린 배포 전략을 사용합니다. 팀은 배포 버그의 영향을 받는 사용자 수를 제한하고 롤백이 필요할 때 알림을 받기를 원합니다.

    DevOps 엔지니어는 이러한 요청을 충족하기 위해 어떤 단계 조합을 사용해야 합니까? (두 가지를 선택하세요.)
    • 경로 매핑을 사용하여 블루/그린 전략을 구현합니다.
    • 카나리아 배포 전략을 구현합니다.
    • 여러 단계를 사용하여 롤링 배포 전략을 구현합니다.
    • Amazon CloudWatch 경보를 사용하여 개발 팀에 알립니다.
    • Amazon CloudWatch Events를 사용하여 개발 팀에 알립니다.

      영향을 들받게 카나리로! 알림은 경보지! 이벤트는 알람이 아닐 수 있어.
  16. DevOps 엔지니어는 이름에 "public"이라는 단어가 포함된 버킷을 제외한 모든 Amazon S3 버킷이 S3 버킷 정책을 사용하는 승인된 사용자에게만 액세스를 허용하도록 하는 임무를 받았습니다. 보안 팀은 적절한 정책 없이 버킷이 생성될 때 알림을 받고 정책이 자동으로 업데이트되기를 원합니다.

    이러한 요구 사항을 충족하는 솔루션은 무엇입니까?
    • S3 버킷이 생성되거나 업데이트될 때 AWS Lambda 함수를 트리거할 사용자 지정 AWS Config 규칙을 생성합니다. Lambda 함수를 사용하여 비공개여야 하지만 개인 정보 보호를 시행하는 버킷 정책이 없는 S3 버킷을 찾습니다. 이러한 버킷이 발견되면 수정 작업을 호출하고 Amazon SNS를 사용하여 보안 팀에 알립니다.
    • S3 버킷이 생성될 때 트리거되는 Amazon EventBridge(Amazon CloudWatch Events) 규칙을 생성합니다. AWS Lambda 함수를 사용하여 버킷이 비공개인지 여부를 결정합니다. 버킷이 비공개여야 하는 경우 PublicAccessBlock 구성을 업데이트합니다. PutBucketPolicy가 호출될 때 Amazon SNS를 사용하여 보안 팀에 알리도록 두 번째 EventBridge(CloudWatch 이벤트) 규칙을 구성합니다.
    • 이름에 "public"이라는 단어가 없는 S3 버킷이 생성될 때 트리거되는 Amazon S3 이벤트 알림을 생성합니다. AWS Lambda 함수를 이 알림의 대상으로 정의하고 함수를 사용하여 S3 버킷에 새 기본 정책을 적용합니다. 동일한 필터로 추가 알림을 생성하고 Amazon SNS를 사용하여 보안 팀에 이메일을 보냅니다.
    • 이름에 "public"이라는 단어가 없는 버킷에 새 객체가 생성될 때 트리거되는 Amazon EventBridge(Amazon CloudWatch Events) 규칙을 생성합니다. 대상 지정 및 AWS Lambda 함수를 사용하여 PublicAccessBlock 구성을 업데이트합니다. 동일한 필터로 추가 알림을 생성하고 Amazon SNS를 사용하여 보안 팀에 이메일을 보냅니다.
  17. 회사에서 AWS를 사용하여 애플리케이션을 배포하고 있습니다. 개발 팀은 배포를 자동화해야 합니다. 팀은 AWS CodeBuild를 사용하여 애플리케이션을 빌드한 후 AWS CodeDeploy를 사용하여 애플리케이션을 Amazon EC2 인스턴스에 배포하기 위해 AWS CodePipeline 파이프라인을 생성했습니다.

    팀은 자동화된 테스트를 파이프라인에 추가하여 코드를 EC2 인스턴스에 배포하기 전에 애플리케이션이 정상인지 확인하려고 합니다. 팀은 또한 테스트가 성공적이더라도 응용 프로그램을 배포하기 전에 수동 승인 작업이 필요합니다. 가장 간단한 관리 솔루션을 사용하여 가장 낮은 비용으로 테스트 및 승인을 수행해야 합니다.

    이러한 요구 사항을 충족하는 솔루션은 무엇입니까?
    • 파이프라인의 빌드 작업 후에 수동 승인 작업을 생성합니다. Amazon SNS를 사용하여 트리거되는 단계를 팀에 알립니다. 다음으로 CodeBuild를 사용하여 테스트 작업을 추가하여 필요한 테스트를 수행합니다. 파이프라인 끝에 애플리케이션을 다음 단계로 배포하는 배포 작업을 추가합니다.
    • 파이프라인의 CodeBuild 빌드 후에 테스트 작업을 생성합니다. CodeBuild를 사용하여 필요한 테스트를 수행하도록 작업을 구성합니다. 이러한 테스트가 성공하면 작업을 성공으로 표시합니다. Amazon SNS를 사용하여 팀에 알리는 수동 승인 작업을 추가하고 애플리케이션을 다음 단계로 배포하는 배포 작업을 추가합니다.
    • 첫 번째 파이프라인과 동일한 리포지토리에서 코드를 가져오는 소스 작업을 사용하는 새 파이프라인을 만듭니다. 배포 작업을 추가하여 코드를 테스트 환경에 배포합니다. AWS Lambda를 사용하는 테스트 작업을 사용하여 배포를 테스트합니다. Amazon SNS를 사용하여 팀에 알리는 수동 승인 작업을 추가하고 애플리케이션을 다음 단계로 배포하는 배포 작업을 추가합니다.
    • 빌드 조치 후에 테스트 조치를 작성하십시오. Amazon EC2의 Jenkins 서버를 사용하여 필요한 테스트를 수행하고 테스트를 통과하면 작업을 성공으로 표시합니다. Amazon SQS를 사용하여 팀에 알리는 수동 승인 작업을 생성하고 애플리케이션을 다음 단계로 배포하는 배포 작업을 추가합니다.

      정리: 람다로 테스트는 안해요. CodeBuild 후에 테스트 작업 파이프라인 생성해야함.
  18. 회사에서 AWS CloudFormation을 사용하여 웹 애플리케이션의 인프라를 개발하고 있습니다. 데이터베이스 엔지니어링 팀은 CloudFormation 템플릿에서 데이터베이스 리소스를 유지 관리하고 소프트웨어 개발 팀은 별도의 CloudFormation 템플릿에서 웹 애플리케이션 리소스를 유지 관리합니다. 응용 프로그램의 범위가 커짐에 따라 소프트웨어 개발 팀은 데이터베이스 엔지니어링 팀에서 유지 관리하는 리소스를 사용해야 합니다. 그러나 두 팀 모두 유지하려는 고유한 검토 및 수명 주기 관리 프로세스가 있습니다. 두 팀 모두 리소스 수준의 변경 세트 검토도 필요합니다. 소프트웨어 개발 팀은 CI/CD 파이프라인을 사용하여 이 템플릿에 대한 변경 사항을 배포하려고 합니다.

    이러한 요구 사항을 충족하는 솔루션은 무엇입니까?
    • 데이터베이스 CloudFormation 템플릿에서 스택 내보내기를 생성하고 해당 참조를 웹 애플리케이션 CloudFormation 템플릿으로 가져옵니다.
    • CloudFormation 중첩 스택을 생성하여 두 스택에서 교차 스택 리소스 참조 및 매개변수를 사용할 수 있도록 합니다.
    • 두 스택에서 교차 스택 리소스 참조 및 매개변수를 사용할 수 있도록 CloudFormation 스택 세트를 생성합니다.
    • 웹 애플리케이션 CloudFormation 템플릿에서 입력 매개변수를 생성하고 데이터베이스 스택에서 리소스 이름과 ID를 전달합니다.

      정리: 같은 것은 중첩 시키고, 차이 나는 부분은 매개변수로 해. HELM처럼 말야!!
  19. 한 전자상거래 회사에서 주문 내역 페이지에 주문 처리 상태 반영이 지연되고 있다는 보고를 받고 있습니다. 주문 처리 시스템은 예약된 동시성을 사용하는 AWS Lambda 함수로 구성됩니다. Lambda 함수는 Amazon SQS 대기열의 주문 메시지를 처리하고 처리된 주문을 Amazon DynamoDB 테이블에 삽입합니다. DynamoDB 테이블에는 읽기 및 쓰기 용량에 대해 Auto Scaling이 활성화되어 있습니다.

    지연을 진단하고 해결하는 조치는 무엇입니까? (두 가지를 선택하세요.)
    • SQS 대기열에 대한 ApproximateAgeOfOldestMessage 지표를 확인하고 Lambda 함수 동시성 제한을 늘립니다. 아웃!!
    • SQS 대기열에 대한 ApproximateAgeOfOldestMessage 지표를 확인하고 SQS 대기열에서 리드라이브 정책을 구성합니다.
    • SQS 대기열에 대한 NumberOfMessagesSent 지표를 확인하고 SQS 대기열 가시성 제한 시간을 늘립니다.
    • DynamoDB 테이블에 대한 ThrottledWriteRequests 지표를 확인하고 테이블의 Auto Scaling 정책에 대한 최대 쓰기 용량 단위를 늘립니다. 업!!
    • Lambda 함수에 대한 Throttles 지표를 확인하고 Lambda 함수 제한 시간을 늘립니다.

      설명: Amazon SQS 지표
      ApproximateAgeOfOldestMessage -  대기열에서 가장 오래된 비삭제 메시지의 대략적인 사용 기간. 이 지표는 3회 이하로 수신한 두 번째로 오래된 메시지를 가리킵니다. 

      정리: 병목이면 동시성을 올리고, 최대 쓰기 용량을 업시켜야함. 스케일 아웃과 업!!
  20. DevOps 엔지니어는 인프라가 미국 내에 있어야 하는 회사를 위해 거버넌스 제어를 구현하고 있습니다. 엔지니어는 사용할 수 있는 리전을 제한하고 거버넌스 정책 외부 활동이 발생하는 경우 가능한 한 빨리 경고를 보내야 합니다. 컨트롤은 미국 이외의 모든 새 리전에서 자동으로 활성화되어야 합니다.

    이러한 요구 사항을 충족하는 작업 조합은 무엇입니까? (두 가지를 선택하세요.)

    • 미국 외 지역의 모든 비전역 서비스에 대한 액세스를 거부하는 AWS Organizations SCP(서비스 제어 정책)를 생성합니다. 조직의 루트에 정책을 연결합니다.
    • 로그를 Amazon CloudWatch Logs로 전송하고 모든 리전에서 활성화하도록 AWS CloudTrail을 구성합니다. CloudWatch Logs 지표 필터를 사용하여 미국 외 지역의 모든 서비스 활동에 대한 알림을 보냅니다.
    • AWS 서비스 활동을 확인하고 모든 리전에 배포하는 AWS Lambda 함수를 사용합니다. 매시간 Lambda 함수를 실행하는 Amazon CloudWatch Events 규칙을 작성하여 미국 외 지역에서 활동이 발견되면 경고를 보냅니다.
    • AWS Lambda 함수를 사용하여 Amazon Inspector(자동화된 소프트웨어 취약성 관리)에 쿼리하여 미국 외 지역에서 서비스 활동을 찾고 활동이 발견되면 알림을 보냅니다.
    • 미국 지역에 대한 액세스를 제한하는 aws:RequestedRegion 조건 키를 사용하여 SCP를 작성합니다. 모든 사용자, 그룹 및 역할에 정책을 적용합니다.

      설명: 거버넌스란 뭘까?
      거버넌스 관점은 조직의 이익을 극대화하고 혁신 관련 위험을 최소화하면서 클라우드 이니셔티브를 조율하는 데 중점을 둡니다. 다음 그림에 표시된 7가지 기능으로 구성됩니다. 일반적인 이해 관계자로는 최고 혁신 책임자, CIO, CTO, CFO, CDO, CRO가 있습니다.

      정리: 관리자는 정책을 정해 제어를 하고 제어에 대한 모니터링을 AWS CloudTrail으로 해서 알림을 보낸다.

 

정답
  1. A
  2. B
  3. B
  4. D,E
  5. B
  6. A
  7. B,D
  8. B,D,F
  9. C
  10. C
  11. D
  12. C
  13. B,C,F
  14. A,E
  15. B,D
  16. A
  17. B
  18. B
  19. A,D
  20. A,B
반응형
Comments