관리 메뉴

피터의 개발이야기

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

AWS/DOP

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

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




  1. 귀하의 CTO는 귀하의 AWS 계정 보안에 대해 매우 걱정하고 있습니다. 해커가 귀하의 계정을 완전히 도용하지 못하도록 방지하는 최선의 방법은 무엇입니까?
    • 루트 계정과 모든 관리자에 대해 짧지만 복잡한 암호를 사용하십시오.
    • AWS IAM Geo-Lock을 사용하고 귀하의 도시를 제외한 모든 사람이 로그인하는 것을 허용하지 마십시오.
    • 모든 사용자 및 계정, 특히 루트 계정에서 MFA를 사용합니다.
    • AWS 계정을 생성한 후 루트 계정 암호를 적어 두거나 기억하지 마십시오.
    설명:

    보안 강화를 위해 AWS 리소스를 보호하는 데 도움이 되도록 MFA(Multi-Factor Authentication)를 구성하는 것이 좋습니다. MFA는 사용자가 AWS 웹 사이트 또는 서비스에 액세스할 때 승인된 인증 디바이스 또는 SMS 문자 메시지에서 고유한 인증 코드를 입력해야 하므로 보안을 강화합니다.

  2. 대기열 작업을 완료하는 데 문제가 있는 경우 쉽게 디버깅할 수 있도록 AWS Elastic Beanstalk 작업자 티어를 구성하려는 경우 무엇을 구성해야 합니까?
    • 롤링 배포 구성
    • 향상된 상태 보고 구성
    • 블루-그린 배포 구성
    • 배달 못한 편지 대기열 구성
    설명:

    Elastic Beanstalk 작업자 환경은 Amazon Simple Queue Service(SQS) 배달 못한 편지 대기열을 지원합니다. 데드 레터 큐는 어떤 이유로 성공적으로 처리할 수 없는 메시지를 다른(소스) 큐에서 보낼 수 있는 큐입니다. 배달 못한 편지 대기열을 사용하는 주요 이점은 성공적으로 처리되지 않은 메시지를 제외하고 격리하는 기능입니다. 그런 다음 배달 못한 편지 대기열로 보낸 모든 메시지를 분석하여 성공적으로 처리되지 않은 이유를 확인할 수 있습니다.

  3. AWS 계정에 대한 보안 요구 사항이 높습니다.
    계정에 대한 AWS API 호출에 대응하는 데 사용할 수 있는 가장 빠르고 정교한 설정은 무엇입니까?
    • SNS 주제를 통한 AWS Config 구독. Lambda 함수를 사용하여 진행 중 분석을 수행하고 변경 사항이 발생할 때 대응합니다.
    • 분석을 위해 레코드를 ELK 스택에 삽입하는 Lambda로 푸시하는 전달 알림에 대한 SNS 구독을 통해 S3에 전달하는 글로벌 AWS CloudTrail 설정.
    • CloudWatch 규칙 ScheduleExpression을 사용하여 IAM 자격 증명 로그를 주기적으로 분석합니다. 이벤트에 대한 델타를 ELK 스택으로 푸시하고 그곳에서 임시 분석을 수행합니다.
    • 모든 AWS API 호출을 기반으로 트리거되는 CloudWatch 이벤트 규칙은 임의의 다운스트림 분석을 위해 모든 이벤트를 AWS Kinesis Stream에 제출합니다.
  4. CloudFormation 스택이 스크립트에서 완료될 때까지 기다리려면 자동화 작성에 어떤 방법을 사용해야 합니까?
    • SQS를 사용한 이벤트 구독.
    • SNS를 이용한 이벤트 구독.
    • <code>ListStacks</code> / <code>list-stacks</code>를 사용하여 폴링
    • <code>GetStackStatus</code> / <code>get-stack-status</code>를 사용하여 폴링
    설명:

    이벤트 기반 시스템은 IFTTT 논리에 적합하지만 폴링만 스크립트가 완료될 때까지 기다리게 합니다. ListStacks/list-stacks는 실제 메서드이고 GetStackStatus/get-stack-status는 그렇지 않습니다.

  5. 귀하의 애플리케이션은 10%의 쓰기와 90%의 읽기로 구성됩니다. 현재 EC2 Auto Scaling 그룹 앞에 있는 AWS ELB로 향하는 Route53 별칭 레코드를 통해 모든 요청을 서비스하고 있습니다. 특정 뉴스 이벤트 중에 더 많은 사람들이 비슷한 데이터를 동시에 읽기를 요청하는 동안 트래픽 급증이 발생하면 시스템 비용이 매우 높아집니다.

    이와 같은 급증으로 비용과 규모를 줄이는 가장 간단하고 저렴한 방법은 무엇입니까?
    • S3 버킷을 생성하고 공통 요청 응답을 S3 객체에 비동기식으로 복제합니다. 미리 계산된 응답에 대한 요청이 들어오면 AWS S3로 리디렉션합니다.
    • 다른 시스템 위에 탑재된 또 다른 ELB 및 Auto Scaling Group 레이어를 생성하여 시스템에 계층을 추가합니다. 최상위 계층에서 대부분의 읽기 요청을 처리합니다.
    • CloudFront 배포를 만들고 Route53을 배포로 보냅니다. ELB를 오리진으로 사용하고 캐시 동작을 지정하여 늦게 제공될 수 있는 캐시 요청을 프록시합니다.
    • AWS ElastiCache에서 Memcached 클러스터를 생성합니다. 성능 향상을 위해 메모리 내 캐시에서 늦게 처리할 수 있는 요청을 처리하는 캐시 논리를 만듭니다.
    설명:

    CloudFront는 전체 요청이 캐시 외부에서 제공될 수 있고 사용 패턴에 읽기가 많고 수요가 급증하는 시나리오에 이상적입니다. 캐시 동작은 파일 확장명, 파일 이름 또는 웹 사이트의 URL 경로 일부(예: *.jpg)를 기반으로 지정된 URL 패턴에 대해 구성하는 규칙 집합입니다. 웹 배포에 대해 여러 캐시 동작을 구성할 수 있습니다. Amazon CloudFront는 수신되는 최종 사용자 요청을 URL 패턴 목록과 일치시키고, 일치하는 항목이 있는 경우 해당 URL 패턴에 대해 구성한 캐시 동작을 서비스에서 적용합니다. 각 캐시 동작에는 오리진 서버 이름, 최종 사용자 연결 프로토콜, 최소 만료 기간, 쿼리 문자열 매개 변수, 쿠키 및 비공개 콘텐츠에 대한 신뢰할 수 있는 서명자와 같은 Amazon CloudFront 구성 값이 포함될 수 있습니다.

  6. 잘 구조화된 데이터에 대해 임시 비즈니스 분석 쿼리를 수행해야 합니다. 데이터는 지속적으로 빠른 속도로 들어옵니다. 비즈니스 인텔리전스 팀은 SQL을 이해할 수 있습니다. 먼저 어떤 AWS 서비스를 살펴봐야 합니까?
    • Kinesis Firehose + RDS
    • Kinesis Firehose + RedShift
    • Hive를 사용한 EMR
    • Apache Spark를 실행하는 EMR
    설명:

    Kinesis Firehose는 스트리밍 데이터를 집계하고 이를 RedShift에 삽입하기 위한 관리형 서비스를 제공합니다. 또한 RedShift는 SQL 호환 유선 프로토콜을 사용하여 잘 구조화된 데이터에 대한 애드혹 쿼리를 지원하므로 비즈니스 팀이 이 시스템을 쉽게 채택할 수 있어야 합니다.

  7. DynamoDB에서 게임 최고 점수 테이블을 구축하고 있습니다. 사용 수준과 플레이어 수가 비교적 비슷한 많은 게임이 있는 각 게임에 대한 각 사용자의 최고 점수를 저장합니다. 모든 게임에서 가장 높은 점수를 조회할 수 있어야 합니다.

    최고의 DynamoDB 키 구조는 무엇입니까?
    • HighestScore는 해시/유일 키입니다.
    • GameID는 해시 키, HighestScore는 범위 키입니다.
    • 해시/유일 키로서의 GameID.
    • 범위/단지 키로서의 GameID.
    설명:

    게임에 대한 액세스 및 저장은 균일하고 각 게임 내에서 점수에 대한 순서가 있어야 하므로(가장 높은 값에 액세스하려면) 해시(파티션) 키는 GameID여야 하며 HighestScore에 대한 범위 키가 있어야 합니다.

  8. 서버 불변성이란 무엇입니까?
    • 생성 후 서버를 업데이트하지 않습니다.
    • 서버 수를 변경하는 기능.
    • 생성 후 서버 업데이트.
    • 서버 수를 변경할 수 없습니다.
    설명:

    … 일회용 업그레이드는 응용 프로그램에 알 수 없는 종속성이 있는지를 알 수 있는 더 간단한 방법을 제공합니다. 기본 EC2 인스턴스 사용은 현재 릴리스가 활성화될 때까지 배포 기간 동안 본질적으로 일시적이거나 일시적인 것으로 간주됩니다. 새 릴리스 중에 이전 인스턴스를 종료하여 새로운 EC2 인스턴스 집합이 롤아웃됩니다. 이러한 유형의 업그레이드 기술은 변경할 수 없는 인프라에서 더 일반적입니다.

  9. AWS EBS를 사용하여 AWS EC2에서 클러스터링된 NoSQL 데이터베이스를 실행합니다. 데이터베이스 응답 시간의 대기 시간을 줄여야 합니다. 가용성이 아니라 성능이 가장 중요한 관심사입니다. AWS 지식이 많지 않은 사람이 초기 설정을 수행하지 않았으므로 그들이 모든 것을 최적으로 구성했는지 확신할 수 없습니다. 다음 중 대기 시간 증가에 기여하는 문제가 아닌 것은 무엇입니까?
    • EC2 인스턴스는 EBS 최적화가 아닙니다.
    • 데이터베이스와 요청 시스템이 모두 잘못된 가용 영역에 있습니다.
    • EBS 볼륨은 PIOPS를 사용하지 않습니다.
    • 데이터베이스가 배치 그룹에서 실행되고 있지 않습니다.
    설명:
    가능한 최고의 성능을 위해 이와 같은 클러스터 데이터베이스의 모든 인스턴스는 EBS 최적화 인스턴스를 사용하고 PIOPS SSD EBS 볼륨을 사용하여 배치 그룹의 단일 가용 영역에 있어야 합니다. 시스템이 실행 중인 특정 가용 영역은 요청하는 리소스와 동일하다면 중요하지 않습니다.

  10. 빈칸 채우기: __________는 AWS API 호출 및 전환을 추적하는 데 도움이 되고, _________는 현재 보유한 리소스를 이해하는 데 도움이 되며, ________은 자격 증명 및 로그인 감사를 허용합니다.
    • AWS Config, CloudTrail, IAM 자격 증명 보고서
    • CloudTrail, IAM 자격 증명 보고서, AWS Config
    • CloudTrail, AWS Config, IAM 자격 증명 보고서
    • AWS Config, IAM 자격 증명 보고서, CloudTrail
    설명:
    AWS CloudTrail을 사용하여 계정에 대한 AWS API 호출 및 관련 이벤트 기록을 얻을 수 있습니다. 여기에는 AWS Management Console, AWS SDK, 명령줄 도구 및 상위 수준 AWS 서비스를 사용하여 수행한 호출이 포함됩니다.

  11. 매우 민감한 금융 정보를 저장하는 애플리케이션을 만들고 있습니다. 시스템의 모든 정보는 저장 및 전송 중에 암호화되어야 합니다.

    다음 중 이 정책을 위반하는 것은 무엇입니까?
    • ELB SSL 종료.
    • 프록시 프로토콜 v1을 사용하는 ELB.
    • HTTPS 리디렉션으로 설정된 CloudFront 뷰어 프로토콜 정책.
    • 서버 측에서 AES256을 사용하도록 S3에 지시합니다.
    설명:

    SSL을 종료하면 HTTP를 통한 연결의 보안이 종료되고 HTTPS에서 "보안"을 의미하는 S가 제거됩니다. 이는 시나리오의 "전송 중 암호화" 요구 사항을 위반합니다.

  12. RDS 배포를 확장해야 합니다. 로깅을 기준으로 10% 쓰기 및 90% 읽기에서 작동하고 있습니다. 간단한 방법으로 이것을 얼마나 잘 확장할 수 있습니까?
    • 두 번째 마스터 RDS 인스턴스를 생성하고 RDS 그룹을 피어링합니다.
    • CloudFront를 사용하여 읽기 측에서 모든 데이터베이스 응답을 캐시합니다.
    • 로드가 대부분 읽기이므로 RDS에 대한 읽기 복제본을 만듭니다.
    • 다중 AZ RDS 설치를 생성하고 읽기 트래픽을 대기로 라우팅합니다.
    설명:

    고가용성 기능은 읽기 전용 시나리오를 위한 확장 솔루션이 아닙니다. 대기 복제본을 사용하여 읽기 트래픽을 처리할 수 없습니다. 읽기 전용 트래픽을 처리하려면 읽기 전용 복제본을 사용해야 합니다. 자세한 내용은 PostgreSQL, MySQL 및 MariaDB 읽기 전용 복제본 작업을 참조하세요.

  13. AWS Elastic Beanstalk를 생각할 때 'Swap Environment URLs' 기능은 무엇을 가장 직접적으로 지원합니까?

    • Immutable Rolling Deployments(불변 롤링 배포)
    • Mutable Rolling Deployments(변경 가능한 롤링 배포)
    • Canary Deployments
    • Blue-Green Deployments
    설명:

    새 버전의 애플리케이션을 업로드하고 배포 서비스(AWS Elastic Beanstalk, AWS CloudFormation 또는 AWS OpsWorks)가 새 버전(녹색)을 배포하도록 하십시오. 새 버전으로 전환하려면 DNS 레코드에서 ELB URL을 교체하기만 하면 됩니다. Elastic Beanstalk에는 더 간단한 컷오버 프로세스를 용이하게 하는 스왑 환경 URL 기능이 있습니다.

  14. 시스템의 일반 가용성 및 가동 시간에 대한 간단하고 전체적인 검사를 생성해야 합니다. 귀하의 시스템은 HTTP를 사용하는 API로 표시됩니다. 이를 달성하기 위한 AWS의 가장 간단한 도구는 무엇입니까?
    • Route53 상태 확인
    • CloudWatch 상태 확인
    • AWS ELB 상태 확인
    • EC2 상태 확인
    설명:

    10초 또는 30초마다 HTTP를 통해 서비스를 ping하는 하나의 API 호출에서 Route53을 사용하여 영구적으로 실행되는 상태 확인을 생성할 수 있습니다. Amazon Route 53은 4초 이내에 엔드포인트와 TCP 연결을 설정할 수 있어야 합니다. 또한 엔드포인트는 연결 후 2초 이내에 200 이상 400 미만의 HTTP 상태 코드로 응답해야 합니다.

  15. EC2 보안 그룹의 범위는 어떻게 됩니까?
    • 가용 영역
    • 배치 그룹
    • 지역
    • VPC
    설명:

    보안 그룹은 지역에 연결되어 있으며 동일한 지역의 인스턴스에만 할당할 수 있습니다. 인스턴스를 활성화할 수 없습니다.

  16. AWS 클라우드에서 회계 소프트웨어를 실행합니다. 이 소프트웨어는 매일 매일 온라인 상태여야 하며 컴퓨팅 리소스에 대한 매우 정적인 요구 사항이 있습니다. 또한 선택한 시간에 하루에 한 번 실행해야 하는 관련 없는 다른 배치 작업도 있습니다. 어떻게 비용을 최소화해야 합니까?
    • 회계 소프트웨어를 실행하려면 Heavy Utilization 예약 인스턴스를 구입하십시오. 몇 시간 후에는 전원을 끄십시오. 예약 인스턴스 크레딧이 일괄 작업에도 적용되도록 동일한 인스턴스 클래스로 일괄 작업을 실행합니다.
    • 회계 소프트웨어를 실행하려면 Medium 사용률 예약 인스턴스를 구입하십시오. 몇 시간 후에는 전원을 끄십시오. 예약 인스턴스 크레딧이 일괄 작업에도 적용되도록 동일한 인스턴스 클래스로 일괄 작업을 실행합니다.
    • 회계 소프트웨어를 실행하려면 Light Utilization 예약 인스턴스를 구입하십시오. 몇 시간 후에는 전원을 끄십시오. 예약 인스턴스 크레딧이 일괄 작업에도 적용되도록 동일한 인스턴스 클래스로 일괄 작업을 실행합니다.
    • 회계 소프트웨어를 실행하려면 Full Utilization Reserved Instance를 구입하십시오. 몇 시간 후에는 전원을 끄십시오. 예약 인스턴스 크레딧이 일괄 작업에도 적용되도록 동일한 인스턴스 클래스로 일괄 작업을 실행합니다.
    설명:

    인스턴스는 예측 가능한 방식으로 낮 동안 항상 온라인 상태이고 언제든지 수행할 일련의 배치 작업이 있으므로 계정 소프트웨어가 꺼져 있을 때 배치 작업을 실행해야 합니다. 이 시간을 번갈아 가며 Heavy Utilization을 달성할 수 있으므로 가장 낮은 비용을 나타내는 예약을 구매해야 합니다. EC2에서 구매하는 "전체" 수준의 활용도는 없습니다.

  17. 고성능 NoSQL 클러스터 배포에 가장 적합한 EBS 볼륨 유형은 무엇입니까?
    • io1
    • gp1
    • standard
    • gp2
    설명:

    io1 볼륨 또는 프로비저닝된 IOPS(PIOPS) SSD는 다음에 가장 적합합니다. MongoDB와 같은 대규모 데이터베이스 워크로드와 같이 지속적인 IOPS 성능 또는 볼륨당 10,000 IOPS 또는 160MiB/s 이상의 처리량이 필요한 중요한 비즈니스 애플리케이션.

  18. 증가하는 수요에 가능한 한 빨리 대응하기 위해 확장할 수 있어야 하는 AWS의 소프트웨어 스택에 계층을 구축하고 있습니다. ELB 뒤에 있는 Auto Scaling 그룹의 EC2 인스턴스에서 코드를 실행하고 있습니다.

    어떤 애플리케이션 코드 배포 방법을 사용해야 합니까?
    • 온라인 상태가 된 새 인스턴스에 SSH를 통해 연결하고 S3 버킷에서 새 코드를 가져와 새 코드를 시스템에 배포합니다. 이 버킷은 새 푸시에서 소스 제어에서 새로 고치는 코드로 채워집니다.
    • 새 버전의 코드를 배포할 때 AMI를 굽고 Auto Scaling 시작 구성에 해당 AMI를 사용합니다.
    • 프로덕션에 새 버전 배포를 준비할 때 Dockerfile을 생성하고 S3에 게시합니다. Auto Scaling 시작 구성에서 UserData를 사용하여 S3에서 Dockerfile을 풀다운하고 새 인스턴스가 시작될 때 실행합니다.
    • 항상 최신 코드를 가져오도록 구성된 UserData 스크립트로 새로운 Auto Scaling 시작 구성을 생성합니다.
    설명:
    설치해야 할 복잡한 응용 프로그램이나 여러 응용 프로그램이 있는 경우 부트스트래핑 프로세스가 느려질 수 있습니다. 여러 빌드 도구 및 종속성을 사용하여 여러 애플리케이션을 관리하는 것은 롤아웃 중에 어려운 작업이 될 수 있습니다. 또한 배포 서비스는 Auto Scaling을 활용하기 위해 더 빠른 롤아웃을 수행하도록 설계되어야 합니다.

  19. 특정 오류 코드 및 참조 번호를 빠르게 검색하는 것을 포함하여 로그 데이터에 대한 임시 분석을 수행해야 합니다. 어떤 것을 먼저 평가해야 할까요?
    • AWS 엘라스틱서치 서비스
    • AWS 레드시프트
    • AWS EMR
    • AWS DynamoDB
    설명:

    Amazon Elasticsearch Service(Amazon ES)는 AWS 클라우드에서 Elasticsearch 클러스터를 쉽게 배포, 운영 및 확장할 수 있게 해주는 관리형 서비스입니다. Elasticsearch는 로그 분석, 실시간 애플리케이션 모니터링 및 클릭 스트림 분석과 같은 사용 사례를 위한 인기 있는 오픈 소스 검색 및 분석 엔진입니다.

  20. AWS CloudFormation의 실패 상태를 나타내는 상태는 무엇입니까?
    • <code>UPDATE_COMPLETE_CLEANUP_IN_PROGRESS</code>
    • <code>DELETE_COMPLETE_WITH_ARTIFACTS</code>
    • <code>ROLLBACK_IN_PROGRESS</code>
    • <code>ROLLBACK_FAILED</code>
    설명:

    ROLLBACK_IN_PROGRESS는 CloudFormation이 실패했음을 의미하지 않습니다. 작동하는 솔루션을 지정하지 못했음을 의미할 수 있습니다.
    ROLLBACK_FAILED는 CloudFormation이 유효한 작업을 수행하지 못했음을 의미합니다. 도입하려고 시도했지만 완료하지 못한 변경 사항을 롤백합니다.

 

반응형
Comments