관리 메뉴

피터의 개발이야기

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

AWS/DOP

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

기록하는 백앤드개발자 2023. 2. 28. 10:53
반응형

 

DOP-C01 : AWS DevOps Engineer Professional : All Parts
DOP-C01 Part 01 DOP-C01 Part 08  DOP-C01 Part 15  DOP-C01 Part 22
DOP-C01 Part 02 DOP-C01 Part 09  DOP-C01 Part 16  DOP-C01 Part 23
DOP-C01 Part 03 DOP-C01 Part 10  DOP-C01 Part 17  DOP-C01 Part 24
DOP-C01 Part 04 DOP-C01 Part 11  DOP-C01 Part 18  DOP-C01 Part 25
DOP-C01 Part 05 DOP-C01 Part 12  DOP-C01 Part 19  DOP-C01 Part 26
DOP-C01 Part 06 DOP-C01 Part 13  DOP-C01 Part 20  DOP-C01 Part 27
DOP-C01 Part 07 DOP-C01 Part 14  DOP-C01 Part 21

 

  1. 회사의 애플리케이션이 현재 단일 AWS 리전에 배포되어 있습니다. 최근에 회사는 다른 대륙에 새 사무실을 열었습니다. 새 사무실의 사용자는 긴 대기 시간을 경험하고 있습니다. 이 회사의 애플리케이션은 ALB(Application Load Balancer) 뒤의 Amazon EC2 인스턴스에서 실행되며 Amazon DynamoDB를 데이터베이스 계층으로 사용합니다. 인스턴스는 여러 가용 영역에 걸쳐 EC2 Auto Scaling 그룹에서 실행됩니다. DevOps 엔지니어는 애플리케이션 응답 시간을 최소화하고 두 리전에서 사용자의 가용성을 개선하는 임무를 맡고 있습니다.

    대기 시간 문제를 해결하려면 어떤 조합의 조치를 취해야 합니까? (3개를 선택하세요.)
    • 리전 간 복제가 활성화된 새 리전에서 새 DynamoDB 테이블을 생성합니다.
    • 새 ALB 및 Auto Scaling 그룹 글로벌 리소스를 생성하고 트래픽을 새 Auto Scaling 그룹으로 전달하도록 새 ALB를 구성합니다.
    • 새 리전에서 새 ALB 및 Auto Scaling 그룹 리소스를 생성하고 트래픽을 새 Auto Scaling 그룹으로 보내도록 새 ALB를 구성합니다.
    • ALB로 라우팅할 Amazon Route 53 레코드, 상태 확인 및 지연 시간 기반 라우팅 정책을 생성합니다.
    • ALB로 라우팅할 Amazon Route 53 별칭, 상태 확인 및 장애 조치 라우팅 정책을 생성합니다.
    • DynamoDB 테이블을 전역 테이블로 변환합니다.

      설명: Amazon DynamoDB > 전역 테이블 개념
      전역 테이블이란 하나의 AWS 계정에서 소유한 한 개 이상의 복제 테이블 모음입니다.

      Amazon Route 53 > Amazon Route 53에서 지연 시간 기반 라우팅으로 전환
      Amazon Route 53은 지연 시간 기반 라우팅을 통해 사용자를 지연 시간이 가장 짧은 AWS 엔드포인트로 보냅니다. 

  2. 보안 검토에서 AWS CodeBuild 프로젝트가 인증되지 않은 요청을 사용하여 Amazon S3 버킷에서 데이터베이스 채우기 스크립트를 다운로드하고 있음을 확인했습니다. 보안 팀은 이 프로젝트의 S3 버킷에 대한 인증되지 않은 요청을 허용하지 않습니다.

    가장 안전한 방식으로 이 문제를 어떻게 해결할 수 있습니까?
    • CodeBuild 프로젝트 설정의 AllowedBuckets 섹션에 버킷 이름을 추가합니다. AWS CLI를 사용하여 데이터베이스 채우기 스크립트를 다운로드하도록 빌드 사양을 업데이트합니다.
    • HTTPS 기본 인증을 활성화하고 토큰을 지정하도록 S3 버킷 설정을 수정합니다. cURL을 사용하여 토큰을 전달하고 데이터베이스 채우기 스크립트를 다운로드하도록 빌드 사양을 업데이트합니다.
    • 버킷 정책을 사용하여 S3 버킷에서 인증되지 않은 액세스를 제거합니다. Amazon S3 액세스를 포함하도록 CodeBuild 프로젝트의 서비스 역할을 수정합니다. AWS CLI를 사용하여 데이터베이스 채우기 스크립트를 다운로드합니다.
    • 버킷 정책을 사용하여 S3 버킷에서 인증되지 않은 액세스를 제거합니다. AWS CLI를 사용하여 IAM 액세스 키와 보안 액세스 키를 사용하여 데이터베이스 채우기 스크립트를 다운로드합니다.

      설명: S3 버킷에 대한 퍼블릭 액세스 차단 설정 구성
      Amazon S3 퍼블릭 액세스 차단 기능은 액세스 포인트, 버킷 및 계정에 대한 설정을 제공하여 Amazon S3 리소스에 대한 퍼블릭 액세스를 관리하는 데 도움을 줍니다. 기본적으로 새 버킷, 액세스 포인트 및 객체는 퍼블릭 액세스를 허용하지 않습니다.

  3. DevOps 엔지니어는 백엔드 기능을 제공하는 AWS Lambda 함수와 함께 Amazon API Gateway API를 배포하고 있습니다. 엔지니어는 모든 API 호출의 소스 IP 주소와 응답 상태를 기록해야 합니다.

    이 기능을 구현하기 위해 DevOps 엔지니어가 취해야 하는 조치 조합은 무엇입니까? (3개를 선택하세요.)
    • API Gateway 요청에 대한 액세스 로깅을 활성화하도록 AWS X-Ray를 구성합니다.
    • 액세스 로깅을 활성화하고 로깅 형식을 선택하도록 API Gateway 단계를 구성합니다.
    • 새 Amazon CloudWatch Logs 로그 그룹을 생성하거나 로그를 저장할 기존 로그 그룹을 선택합니다.
    • IAM 역할을 통해 Amazon CloudWatch에서 로그를 읽고 쓸 수 있는 API Gateway 권한을 부여합니다.
    • 새 Amazon S3 버킷을 생성하거나 기존 S3 버킷을 선택하여 로그를 저장합니다.
    • 로그 데이터를 Amazon Kinesis로 스트리밍하도록 API Gateway를 구성합니다.

      설명: Amazon API Gateway는 어떤 규모에서든 개발자가 API를 손쉽게 생성, 게시, 유지 관리, 모니터링 및 보안 유지할 수 있도록 하는 완전관리형 서비스입니다. API는 애플리케이션이 백엔드 서비스의 데이터, 비즈니스 로직 또는 기능에 액세스할 수 있는 "정문" 역할을 합니다. 
  4. 스타트업 클라우드 기반 게임 회사의 DevOps 엔지니어는 배포 전략을 공식화하는 임무를 맡고 있습니다. 전략은 다음 요구 사항을 충족해야 합니다.
    – 코드 리포지토리에 대해 git clone 및 git push와 같은 표준 Git 명령을 사용합니다.
    – 관리 도구는 가능한 경우 플랫폼 솔루션의 사용을 최대화해야 합니다.
    – 배포 패키지는 변경할 수 없고 Docker 이미지 형식이어야 합니다.

    엔지니어는 이러한 요구 사항을 어떻게 충족할 수 있습니까?
    • AWS CodePipeline을 사용하여 소프트웨어가 자체 호스팅 GitHub 리포지토리로 푸시될 때 빌드 프로세스를 트리거합니다. CodePipeline은 Jenkins 빌드 서버를 사용하여 새 Docker 이미지를 빌드합니다. CodePipeline은 Application Load Balancer 뒤에 있는 Amazon ECS의 두 번째 대상 그룹에 배포됩니다. 컷오버는 Application Load Balancer에서 리스너 규칙을 교체하여 관리됩니다.
    • AWS CodePipeline을 사용하여 소프트웨어가 프라이빗 GitHub 리포지토리로 푸시될 때 빌드 프로세스를 트리거합니다. CodePipeline은 AWS CodeBuild를 사용하여 새로운 Docker 이미지를 구축합니다. CodePipeline은 Application Load Balancer 뒤에 있는 Amazon ECS의 두 번째 대상 그룹에 배포됩니다. 컷오버는 Application Load Balancer에서 리스너 규칙을 교체하여 관리됩니다.
    • 소프트웨어가 프라이빗 GitHub 리포지토리로 푸시될 때 Jenkins 파이프라인을 사용하여 빌드 프로세스를 트리거합니다. AWS CodePipeline은 AWS CodeBuild를 사용하여 새로운 Docker 이미지를 구축합니다. CodePipeline은 Application Load Balancer 뒤에 있는 Amazon ECS의 두 번째 대상 그룹에 배포됩니다. 컷오버는 Application Load Balancer에서 리스너 규칙을 교체하여 관리됩니다.
    • AWS CodePipeline을 사용하여 소프트웨어가 AWS CodeCommit 리포지토리로 푸시될 때 빌드 프로세스를 트리거합니다. CodePipeline은 AWS CodeBuild 빌드 서버를 사용하여 새로운 Docker 이미지를 빌드합니다. CodePipeline은 Application Load Balancer 뒤의 Amazon EC2에서 호스팅되는 Kubernetes 클러스터의 두 번째 대상 그룹에 배포됩니다. 컷오버는 Application Load Balancer에서 리스너 규칙을 교체하여 관리됩니다.
  5. 애플리케이션은 ALB(Application Load Balancer) 뒤의 Amazon EC2 인스턴스에서 실행됩니다. DevOps 엔지니어가 AWS CodeDeploy를 사용하여 새 버전을 출시하고 있습니다. AllowTraffic 수명 주기 이벤트 중에 배포가 실패하지만 실패 원인이 배포 로그에 표시되지 않습니다.

    원인이 무엇입니까?
    • appspec.yml 파일에는 AllowTraffic 수명 주기 후크에서 실행할 잘못된 스크립트가 포함되어 있습니다.
    • 배포를 시작한 사용자에게 ALB와 상호 작용하는 데 필요한 권한이 없습니다.
    • ALB 대상 그룹에 지정된 상태 확인이 잘못 구성되었습니다.
    • ALB 대상 그룹의 일부인 EC2 인스턴스에 CodeDeploy 에이전트가 설치되지 않았습니다.
  6. 회사에서 AWS CodeBuild를 사용하여 컨테이너 기반 애플리케이션을 배포하고 있습니다. 보안 팀은 암호로 보호된 엔드포인트를 사용하여 배포하기 전에 모든 컨테이너에서 취약점을 스캔하도록 지시합니다. 모든 민감한 정보는 안전하게 저장되어야 합니다.

    이러한 요구 사항을 충족하려면 어떤 솔루션을 사용해야 합니까?
    • AWS KMS를 사용하여 암호를 암호화합니다. 변수 매핑 아래의 환경 변수로 buildspec.yml 파일에 암호화된 비밀번호를 저장합니다. 스캔을 시작하려면 환경 변수를 참조하십시오.
    • 암호를 AWS CloudHSM 키로 가져옵니다. buildpec.yml 파일의 CloudHSM 키를 변수 매핑 아래의 환경 변수로 참조하십시오. 스캔을 시작하려면 환경 변수를 참조하십시오.
    • AWS Systems Manager Parameter Store에 암호를 보안 문자열로 저장합니다. 파라미터 스토어 매핑 아래 환경 변수로 buildspec.yml 파일에 파라미터 스토어 키를 추가합니다. 스캔을 시작하려면 환경 변수를 참조하십시오.
    • AWS 암호화 SDK를 사용하여 비밀번호를 암호화하고 buildspec.yml 파일에 secrets 매핑 아래의 변수로 포함합니다. 필요한 암호 해독 키에 대한 액세스를 활성화하려면 정책을 CodeBuild에 연결합니다.
  7. DevOps 엔지니어는 AWS Organizations의 여러 AWS 계정에 대한 모든 IAM 엔터티 구성이 회사 IAM 정책을 준수하는지 확인해야 합니다.

    이 작업을 수행하는 단계 조합은 무엇입니까? (두 가지를 선택하세요.)
    • 모든 계정이 규정을 준수하지 않는 IAM 엔터티에 대해 보고하도록 조직의 AWS Trusted Advisor를 활성화합니다.
    • 모든 계정의 조직 마스터 계정에서 AWS Config 집계자를 구성합니다.
    • 회사 IAM 정책과 일치하는 조직의 마스터 계정에 AWS Config 규칙을 배포합니다.
    • IAM 엔터티의 규정 준수를 보장하기 위해 조직에 SCP를 적용합니다.
    • 회사 IAM 정책과 일치하는 조직의 모든 계정에 AWS Config 규칙을 배포합니다.
  8. 한 회사에 수천 개의 Amazon EC2 인스턴스와 수백 개의 가상 머신이 온프레미스에 있습니다. 개발자는 정기적으로 온프레미스 시스템용 콘솔에 로그인하여 문제 해결을 수행합니다. 개발자는 성능 도구를 실행하기 위해 AWS 인스턴스에 로그인하기를 원하지만 중앙 콘솔 로깅 시스템이 없기 때문에 로그인할 수 없습니다. DevOps 엔지니어는 콘솔 액세스가 모든 시스템에 기록되어 있는지 확인하려고 합니다.

    이러한 요구 사항을 충족하는 단계 조합은 무엇입니까? (두 가지를 선택하세요.)
    • 적절한 권한이 포함된 모든 AWS 인스턴스에 역할을 연결합니다. AWS Systems Manager 관리형 인스턴스 활성화를 생성합니다. 온프레미스 머신에 Systems Manager Agent를 설치하고 구성합니다.
    • Amazon S3 버킷에 대한 AWS Systems Manager 세션 관리자 로깅을 활성화합니다. 개발자가 세션 관리자로만 시스템에 연결하도록 지시합니다.
    • AWS CloudTrail에 대한 AWS 시스템 관리자 세션 관리자 로깅을 활성화합니다. 온프레미스에 대한 일반 로그인 절차를 계속하도록 개발자에게 지시합니다. AWS 인스턴스에 대해 Session Manager를 사용합니다.
    • 모든 시스템에 Amazon CloudWatch Logs 에이전트를 설치하고 구성합니다. AWS Systems Manager 관리형 인스턴스 활성화를 생성합니다.
    • 온프레미스와 AWS 네트워크 간에 Site-to-Site VPN 연결을 설정합니다. 개발자가 AWS 인스턴스에 로그인할 수 있도록 배스천 인스턴스를 설정합니다.
  9. DevOps 팀은 동일한 소스 코드 리포지토리에서 작업할 수 있기를 원합니다. 팀은 개발 워크플로 및 리포지토리 액세스 제어에 대해 다음과 같은 요구 사항이 있습니다.
    – 팀 구성원만 리포지토리를 복제하고 새 브랜치를 생성할 수 있습니다.
    – 프로덕션 준비 코드 상태는 테스트되지 않은 코드 변경과 격리되어야 합니다.
    – 코드 변경은 프로덕션 준비 마스터 분기에 병합하기 전에 다른 팀 구성원의 승인을 받아야 합니다.
    – 모든 코드 변경 승인에는 감사 기록이 있어야 합니다.
    – 새로운 팀원은 코드를 빠르게 수정할 수 있습니다.

    이러한 요구 사항은 어떤 작업 조합으로 구성됩니까? (3개를 선택하세요.)
    • 마스터 분기를 확인하고 기능 분기에서 로컬로 새 기능을 개발하여 프로덕션 준비 코드를 격리된 상태로 유지하세요. 변경 사항을 로컬에서 커밋하기 전에 팀 구성원에게 변경 사항을 검토하도록 요청하십시오.
    • 리포지토리에 대한 변경 사항을 읽고 쓸 수 있는 권한이 있는 AWS CodeCommit 리포지토리 및 IAM 그룹을 생성합니다. 이 그룹에 새 팀원을 추가합니다.
    • 리포지토리에 대한 변경 사항을 읽고 쓸 수 있는 권한이 있는 AWS CodeCommit 리포지토리 및 IAM 역할을 생성합니다. 이 IAM 역할을 단일 IAM 사용자에게 연결합니다. 팀의 각 구성원이 이 IAM 사용자를 사용하는지 확인하십시오. 새 팀원에게 이 IAM 사용자에게 자격 증명을 제공합니다.
    • 새 기능에 대한 마스터 분기에서 로컬 기능 분기를 만듭니다. 새 코드를 커밋하고 리포지토리의 기능 분기에 변경 사항을 푸시합니다.
    • 다른 팀원이 코드 변경 사항을 검토할 수 있도록 풀 요청을 생성합니다. 제안 사항을 구현하고 마스터 분기에서 추가 변경 사항을 가져오고 다시 기능 분기로 푸시합니다. 기능 분기와 마스터 분기를 병합합니다.
    • 다른 팀원이 코드 변경 사항을 검토할 수 있도록 풀 요청을 생성합니다. 제안 사항을 구현하고, 마스터 분기에서 추가 변경 사항을 가져오고, 충돌을 해결하고, 기능 분기로 다시 푸시합니다. 기능 분기를 마스터 분기와 병합합니다.
  10. 회사에는 단일 AWS 리전에서 Amazon DynamoDB 테이블을 사용하여 사용자 정보를 저장하는 웹 애플리케이션이 있습니다. 점점 늘어나는 글로벌 사용자 기반을 지원하려면 애플리케이션이 보조 지역에서 실행되고 사용자가 가장 가까운 지역에 연결하고 보조 지역으로 장애 조치할 수 있도록 해야 합니다.

    배포가 이러한 요구 사항을 충족하는지 확인하려면 어떤 접근 방식을 사용해야 합니까?
    • 리전 간에 데이터를 복사하도록 DynamoDB 스트림을 구성하고, 두 리전에 웹 스택을 배포하고, 상태 확인과 함께 지리 근접 라우팅 정책을 사용하도록 Amazon Route 53을 구성합니다.
    • DynamoDB 테이블을 전역 테이블로 변환하고, 두 리전에 웹 스택을 배포하고, 상태 확인과 함께 지리 근접 라우팅 정책을 사용하도록 Amazon Route 53을 구성합니다.
    • 데이터를 보조 리전에 복사하도록 DynamoDB 교차 리전 백업을 정의하고, 두 리전에 웹 스택을 배포하고, 상태 확인과 함께 지연 시간 기반 라우팅 정책을 사용하도록 Amazon Route 53을 구성합니다.
    • DynamoDB Accelerator를 사용하여 데이터를 보조 리전에 복사하고, 두 리전에 웹 스택을 배포하고, 장애 조치 라우팅 정책을 사용하도록 Amazon Route 53을 구성합니다.

      설명: 라우팅 정책 선택
      레코드를 생성할 때 라우팅 정책을 선택하게 되는데, 이는 Amazon Route 53이 쿼리에 응답하는 방식을 결정합니다.
      지리 근접 라우팅 정책(Geoproximity routing policy) - 리소스의 위치를 기반으로 트래픽을 라우팅하고 필요에 따라 한 위치의 리소스에서 다른 위치의 리소스로 트래픽을 보내려는 경우에 사용합니다.

  11. 전자 상거래 회사는 많은 수의 Amazon EBS 지원 Amazon EC2 인스턴스를 사용합니다. 모든 인스턴스에서 수동 작업을 줄이기 위해 DevOps 엔지니어는 EC2 인스턴스 만료 이벤트가 예약될 때 다시 시작 작업을 자동화하는 임무를 맡습니다.

    이것이 어떻게 이루어질 수 있습니까?
    • 예약된 Amazon CloudWatch Events 규칙을 생성하여 EC2 인스턴스가 일주일에 한 번 만료되도록 예약되었는지 확인하는 AWS Systems Manager 자동화 문서를 실행합니다. 인스턴스가 만료되도록 예약된 경우 자동화 문서는 인스턴스를 최대 절전 모드로 전환합니다.
    • 모든 인스턴스에서 EC2 자동 복구를 활성화합니다. 유지 관리 기간 동안에만 복구가 발생하도록 제한하는 AWS Config 규칙을 생성합니다.
    • 표준 업무 시간이 아닌 승인된 유지 관리 기간 동안 모든 EC2 인스턴스를 재부팅합니다. 인스턴스가 EC2 인스턴스 상태 확인에 실패하는 경우 알림을 보내도록 Amazon CloudWatch 경보를 설정합니다.
    • 만료 예약 이벤트가 발생할 때 EC2 인스턴스를 중지하고 시작하는 AWS Systems Manager 자동화 문서를 실행하도록 AWS 상태 Amazon CloudWatch Events 규칙을 설정합니다.

      설명: Amazon EC2 > 인스턴스 만료
      AWS에서 인스턴스를 호스팅하는 기본 하드웨어의 복구 불가능한 장애가 검색되는 경우 인스턴스가 만료 대상으로 예약됩니다. 예약된 만료 날짜에 도달하면 인스턴스가 AWS에 의해 중지되거나 종료됩니다.

       - 인스턴스 루트 디바이스가 Amazon EBS 볼륨인 경우 인스턴스가 중지되며 언제든지 이 인스턴스를 다시 시작할 수 있습니다. 중지된 인스턴스를 시작하면 새 하드웨어로 마이그레이션됩니다.
      - 인스턴스 루트 디바이스가 인스턴스 스토어 볼륨인 경우 인스턴스가 종료되어 다시 사용할 수 없습니다.

      예약된 인스턴스 이벤트
      AWS는 재부팅, 중단/시작 또는 만료 등 여러 가지 인스턴스 이벤트를 예약할 수 있습니다. 이러한 이벤트들은 자주 발생하지 않습니다. 예약된 이벤트의 영향을 받는 인스턴스가 존재하는 경우 AWS이(가) 해당 이벤트가 발생하기 전에 AWS 계정에 연동되어 있는 이메일 주소로 이메일을 전송합니다. 이메일은 시작일과 종료일 등 이벤트에 대한 세부 정보를 제공합니다. 이벤트에 따라 이벤트 타이밍을 제어하는 작업을 수행할 수 있습니다. AWS는 또한 Amazon CloudWatch Events를 사용하여 모니터링 및 관리할 수 있는 AWS Health 이벤트를 보냅니다. CloudWatch를 사용한 AWS Health 이벤트 모니터링에 대한 자세한 내용은  CloudWatch Events를 사용하여 AWS Health 이벤트 모니터링을 참조하세요.
  12. 회사는 사내 품질 관리 애플리케이션을 모두 컨테이너화했습니다. 이 회사는 패치 및 업그레이드가 필요한 Amazon EC2에서 Jenkins를 실행하고 있습니다. 규정 준수 책임자는 회사 지적 재산이 포함된 빌드 아티팩트를 암호화하기 시작하도록 DevOps 엔지니어에게 요청했습니다.

    DevOps 엔지니어는 가장 유지 가능한 방식으로 이를 달성하기 위해 무엇을 해야 합니까?
    • EC2 인스턴스에서 AWS Systems Manager를 사용하여 패치 및 업그레이드를 자동화하고 기본적으로 Amazon EBS 볼륨을 암호화합니다.
    • Amazon ECS 클러스터에 Jenkins를 배포하고 기본 암호화가 활성화된 Amazon S3 버킷에 빌드 아티팩트를 복사합니다.
    • 빌드 작업으로 AWS CodePipeline을 활용하고 AWS Secrets Manager를 사용하여 아티팩트를 암호화합니다.
    • 아티팩트 암호화와 함께 AWS CodeBuild를 사용하여 Amazon EC2에서 실행되는 Jenkins 인스턴스를 교체하십시오.
  13. DevOps 엔지니어가 컨테이너 기반 아키텍처를 설정하고 있습니다. 엔지니어는 AWS CloudFormation을 사용하여 Amazon ECS 클러스터와 Amazon EC2 Auto Scaling 그룹을 자동으로 프로비저닝하여 EC2 컨테이너 인스턴스를 시작하기로 결정했습니다. CloudFormation 스택을 성공적으로 생성한 후 엔지니어는 ECS 클러스터와 EC2 인스턴스가 성공적으로 생성되고 스택이 생성을 완료했지만 EC2 인스턴스가 다른 클러스터와 연결되고 있음을 발견했습니다.

    DevOps 엔지니어는 이 문제를 해결하기 위해 CloudFormation 템플릿을 어떻게 업데이트해야 합니까?
    • AWS::ECS::Cluster 리소스에서 EC2 인스턴스를 참조하고 AWS::ECS::Service 리소스에서 ECS 클러스터를 참조합니다.
    • UserData 속성의 AWS::AutoScaling::LaunchConfiguration 리소스에서 ECS 클러스터를 참조합니다.
    • UserData 속성의 AWS::EC2::Instance 리소스에서 ECS 클러스터를 참조합니다.
    • AWS::CloudFormation::CustomResource 리소스에서 ECS 클러스터를 참조하여 EC2 인스턴스를 적절한 ECS 클러스터에 등록하는 AWS Lambda 함수를 트리거합니다.
  14. 회사는 Amazon ES에서 모든 Amazon CloudWatch Logs를 인덱싱하고 Kibana를 사용하여 대시보드에서 실행 가능한 통찰력을 확인합니다. 회사는 사용자별로 Kibana에 대한 사용자 액세스를 제한하려고 합니다.

    DevOps 엔지니어는 이 요구 사항을 충족하기 위해 어떤 조치를 취할 수 있습니까? (두 가지를 선택하세요.)
    • Auto Scaling 그룹에서 사용자 인증을 사용하여 프록시 서버를 생성하고 Amazon ES 엔드포인트의 액세스를 Auto Scaling 그룹 태그로 제한합니다.
    • 사용자 인증 및 탄력적 IP 주소로 프록시 서버를 생성하고 Amazon ES 엔드포인트의 액세스를 IP 주소로 제한합니다.
    • AWS IAM 사용자로 프록시 서버를 생성하고 Amazon ES 엔드포인트의 액세스를 IAM 사용자로 제한합니다.
    • AWS SSO를 사용하여 Kibana에 대한 사용자 이름 및 암호 보호를 제공합니다.
    • Amazon Cognito를 사용하여 Kibana에 대한 사용자 이름 및 암호 보호를 제공합니다.

      설명: Amazon Cognito란 무엇입니까?
      Amazon Cognito는 웹 및 모바일 앱에 대한 인증, 권한 부여 및 사용자 관리를 제공합니다. 사용자는 사용자 이름과 암호를 사용하여 직접 로그인하거나 Facebook, Amazon, Google 또는 Apple 같은 타사를 통해 로그인할 수 있습니다.
      Amazon Cognito 사용자 풀 및 자격 증명 풀을 함께 사용
      아래 일반적인 Amazon Cognito 시나리오 다이어그램을 참조하세요. 목표는 사용자 인증 이후 다른 AWS 서비스에 대한 사용자 액세스 권한을 부여하는 것입니다.

      1. 첫 번째 단계에서 앱 사용자는 사용자 풀을 통해 로그인하여 인증 성공 이후 사용자 풀 토큰을 받습니다.
      2. 다음으로 앱은 자격 증명 풀을 통해 사용자 풀 토큰을 AWS 자격 증명으로 교환합니다.
      3. 마지막으로 앱 사용자는 AWS 자격 증명을 사용하여 Amazon S3, DynamoDB 등 다른 AWS 서비스에 액세스할 수 있습니다.
  15. 회사의 DevOps 팀은 각 신규 사용자에 대해 Amazon WorkSpaces를 사용하여 WorkSpace를 시작합니다. 최근에 보안 팀은 이러한 새 사용자를 위한 WorkSpaces가 지속적으로 태그가 지정되지 않는다고 말했습니다. 회사 정책에 따라 모든 WorkSpaces는 생성 시 자동으로 USERNAME으로 태그가 지정됩니다.

    DevOps 엔지니어는 이 요구 사항을 해결하기 위해 어떤 단계 조합을 수행해야 합니까? (두 가지를 선택하세요.)
    • cloudtrail.amazonaws.com이 lambda:InvokeFunction 작업을 사용하도록 허용하는 AWS Lambda 함수 정책을 추가합니다.
    • CloudTrail 이벤트 유형을 통해 AWS API 호출을 사용하여 Amazon WorkSpaces를 기반으로 새로운 Amazon CloudWatch Events 이벤트 패턴 규칙을 생성합니다. CreateWorkspaces 작업을 선택하고 작업 공간에 태그를 지정할 AWS Lambda 함수를 대상으로 지정합니다.
    • WorkSpaces가 생성된 모든 리전에서 AWS CloudTrail이 활성화되어 있는지 확인하십시오.
    • 디렉터리 세부 정보에서 Amazon WorkSpaces에 대한 사용자 지정 태그 지정을 활성화합니다.
    • 1분 간격으로 Amazon WorkSpaces를 기반으로 새 Amazon CloudWatch Events 예약 이벤트 규칙을 생성합니다. 작업 공간에 태그를 지정할 AWS Lambda 함수를 대상으로 지정합니다.

      설명: Amazon WorkSpaces
      Amazon WorkSpaces는 모든 작업자 유형을 위한 모든 기능이 포함된 완벽한 영구 가상 데스크톱이다.

      AWS CloudTrail은 AWS 계정의 운영 및 위험 감사, 거버넌스 및 규정 준수를 활성화하는 데 도움이 되는 AWS 서비스입니다. 
  16. 회사는 자동 조정을 사용하는 미션 크리티컬 애플리케이션을 AWS에 보유하고 있습니다. 회사는 배포 수명 주기가 다음 매개 변수를 충족하기를 원합니다.

    • 애플리케이션은 한 번에 하나의 인스턴스를 배포하여 나머지 플릿이 계속해서 트래픽을 처리하도록 해야 합니다.
    • 응용 프로그램은 CPU를 많이 사용하므로 면밀히 모니터링해야 합니다.
    • 배포 인스턴스의 CPU 사용률이 85%를 초과하면 배포가 자동으로 롤백되어야 합니다.

    이러한 요구 사항을 충족하는 솔루션은 무엇입니까?
    • AWS CloudFormation을 사용하여 AWS Step Functions 상태 시스템 및 Auto Scaling 수명 주기 후크를 생성하여 대기 상태로 한 번에 하나의 인스턴스로 이동합니다. AWS Systems Manager 자동화를 사용하여 업데이트를 각 인스턴스에 배포하고 하트비트 제한 시간을 사용하여 Auto Scaling 그룹으로 다시 이동합니다.
    • Amazon EC2 Auto Scaling과 함께 AWS CodeDeploy를 사용하십시오. CPU 사용률 메트릭에 연결된 경보를 구성합니다. CodeDeployDefault.OneAtAtime 구성을 배포 전략으로 사용하십시오. 경보 임계값을 위반한 경우 배포를 롤백하도록 배포 그룹 내에서 자동 롤백을 구성합니다.
    • 로드 밸런싱 및 AWS Auto Scaling에 AWS Elastic Beanstalk를 사용합니다. CPU 사용률 메트릭에 연결된 경보를 구성합니다. 한 인스턴스의 고정 배치 크기로 롤링 배포를 구성합니다. 향상된 상태를 활성화하여 배포 상태를 모니터링하고 이전에 생성된 경보를 기반으로 롤백합니다.
    • AWS Systems Manager를 사용하여 Amazon EC2 Auto Scaling으로 블루/그린 배포를 수행합니다. CPU 사용률 메트릭에 연결된 경보를 구성합니다. 업데이트를 한 번에 하나씩 배포합니다. 경보 임계값을 위반한 경우 배포를 롤백하도록 Auto Scaling 그룹 내에서 자동 롤백을 구성합니다.

      설명: CodeDeploy에서 배포 구성 작업
      인 플레이스(in-place) 배포: 한 번에 한 인스턴스에만 애플리케이션 개정을 배포합니다.
  17. DevOps 엔지니어는 AWS에서 실행되는 회사의 SaaS(Software as a Service) 웹 애플리케이션에 대한 지속적인 개발 전략을 설계하고 있습니다. 애플리케이션 및 보안상의 이유로 이 애플리케이션을 구독하는 사용자는 각각 전용 Auto Scaling 그룹과 Amazon EC2 인스턴스 플릿이 있는 여러 Application Load Balancer(ALB)에 분산됩니다. 애플리케이션에는 빌드 단계가 필요하지 않으며 AWS CodeCommit에 커밋될 때 애플리케이션은 모든 ALB, Auto Scaling 그룹 및 EC2 플릿에 대한 동시 배포를 트리거해야 합니다.

    최소한의 구성으로 이러한 요구 사항을 충족하는 아키텍처는 무엇입니까?
    • 각 ALB-Auto Scaling 그룹 쌍에 대해 생성된 고유한 AWS CodeDeploy 애플리케이션 및 배포 그룹을 사용하여 애플리케이션을 병렬로 배포하는 단일 AWS CodePipeline 파이프라인을 생성합니다.
    • 단일 AWS CodeDeploy 애플리케이션 및 단일 배포 그룹을 사용하여 애플리케이션을 배포하는 단일 AWS CodePipeline 파이프라인을 생성합니다.
    • 단일 AWS CodeDeploy 애플리케이션과 각 ALB-Auto Scaling 그룹 쌍에 대한 고유한 배포 그룹을 사용하여 애플리케이션을 병렬로 배포하는 단일 AWS CodePipeline 파이프라인을 생성합니다.
    • 동일한 ALB-Auto Scaling 그룹 쌍에 대해 생성된 배포 그룹 및 AWS CodeDeploy 애플리케이션을 사용하여 애플리케이션을 배포하는 각 ALB-Auto Scaling 그룹 쌍에 대해 AWS CodePipeline 파이프라인을 생성합니다.
  18. DevOps 엔지니어는 S3 교차 리전 복제 기능을 사용하는 프라이빗 버킷 정책으로 S3 버킷 내에 저장된 민감한 Amazon S3 객체를 백업해야 합니다. 객체는 다른 AWS 리전 및 계정의 대상 버킷에 복사해야 합니다.

    이 복제를 활성화하려면 어떤 작업을 수행해야 합니까? (3개를 선택하세요.)
    • 소스 계정에서 복제 IAM 역할을 생성합니다.
    • 대상 계정에서 복제 IAM 역할을 생성합니다.
    • 복제 IAM 역할이 객체를 복제하도록 허용하는 명령문을 소스 버킷 정책에 추가합니다.
    • 복제 IAM 역할이 객체를 복제하도록 허용하는 대상 버킷 정책에 명령문을 추가합니다.
    • 복제를 활성화하려면 원본 버킷에 복제 규칙을 생성합니다.
    • 복제를 활성화하려면 대상 버킷에 복제 규칙을 생성합니다.
  19. 회사는 Auto Scaling 그룹의 Amazon EC2 인스턴스에서 애플리케이션을 실행하고 있습니다. 최근에 EC2 인스턴스가 성공적으로 시작되지 않는 문제가 발생했으며 지원 팀이 문제를 발견하는 데 몇 시간이 걸렸습니다. 지원팀은 EC2 인스턴스가 성공적으로 시작되지 않을 때마다 이메일로 알림을 받기를 원합니다.

    어떤 작업을 수행할 수 있습니까?
    • Auto Scaling 그룹에 상태 확인을 추가하여 인스턴스 상태가 손상될 때마다 AWS Lambda 함수를 호출합니다.
    • 실패한 인스턴스 시작이 발생할 때마다 Amazon SNS 주제에 알림을 보내도록 Auto Scaling 그룹을 구성합니다.
    • AttachInstances Auto Scaling API 호출 실패 시 AWS Lambda 함수를 호출하는 Amazon CloudWatch 경보를 생성합니다.
    • 상태 확인이 실패할 때마다 Amazon SNS 주제에 알림을 보내도록 Amazon EC2에서 상태 확인 경보를 생성합니다.
  20. 회사는 Amazon EC2 및 온프레미스 구성으로 애플리케이션을 실행합니다. DevOps 엔지니어는 두 환경에서 패칭을 표준화해야 합니다. 회사 정책에 따르면 패치 적용은 업무 외 시간에만 이루어집니다.

    이러한 요구 사항을 충족하는 작업 조합은 무엇입니까? (3개를 선택하세요.)
    • Systems Manager 하이브리드 활성화를 사용하여 물리적 시스템을 AWS Systems Manager에 추가합니다.
    • IAM 역할을 EC2 인스턴스에 연결하여 AWS Systems Manager에서 관리할 수 있도록 합니다.
    • 온프레미스 시스템이 AWS Systems Manager와 상호 작용할 수 있도록 IAM 액세스 키를 생성합니다.
    • AWS Systems Manager Automation 문서를 실행하여 매시간 시스템을 패치합니다.
    • Amazon CloudWatch Events 예약 이벤트를 사용하여 패치 기간을 예약합니다.
    • AWS Systems Manager 유지 관리 기간을 사용하여 패치 기간을 예약합니다.

설명: AWS Systems Manager, 이제 대형 하이브리드 환경에서 온프레미스 인스턴스 관리 지원
AWS Systems Manager를 사용하여 새로운 고급 온프레미스 인스턴스 관리 티어를 통해 1,000 개 이상의 인스턴스가 있는 대형 하이브리드 환경을 관리할 수 있습니다. 새로운 고급 티어는 온프레미스 인스턴스를 연결하기 위하여 Systems Manager Session Manager와의 대화형 셸 액세스 사용과 같은 고급 기능도 사용 가능하게 합니다. 세션 관리자를 사용하면 인바운드 포트를 열거나 SSH 키를 관리하거나 배스천 호스트를 사용할 필요가 없습니다.
Systems Manager를 사용하면 온프레미스와 Amazon EC2 인스턴스 모두에 대해 단일 API 세트를 사용하여 온프레미스 인스턴스를 원격으로 운영할 수 있습니다. 이는 확장하기 위한 능력을 촉진시킵니다. 계정 수준에서 고급 온프레미스 인스턴스 관리를 사용하면 기존의 온프레미스 인스턴스가 고급 인스턴스로 변환되고 세션 관리자를 사용하여 온프레미스 Windows 및 Linux 인스턴스를 대화형으로 관리할 수 있습니다. 이 기능은 모든 상용 AWS 리전에서 사용 가능합니다.

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

 

 

반응형
Comments