관리 메뉴

피터의 개발이야기

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

AWS/DOP

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

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

 

 

 

 

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

    탄력적 IP 주소는 지역에 연결되어 있으며 동일한 지역의 인스턴스에만 연결할 수 있습니다.

  2. AWS Auto Scaling의 경우 기존 인스턴스가 대기 모드에서 안정 상태를 벗어난 후 처음으로 들어가는 전환 상태는 무엇입니까?
    • 분리
    • 종료 중:대기
    • 보류 중
    • 대기 중
    설명:

    InService 상태에 있는 모든 인스턴스를 Standby 상태로 전환할 수 있습니다. 이렇게 하면 서비스에서 인스턴스를 제거하고 문제를 해결하거나 변경한 다음 다시 서비스에 넣을 수 있습니다. 대기 상태의 인스턴스는 Auto Scaling 그룹에서 계속 관리합니다. 그러나 서비스에 다시 넣을 때까지 애플리케이션의 활성 부분이 아닙니다.

  3. 각각 1GB인 큐 메시지를 전달하려고 합니다.

    이것을 어떻게 달성해야 합니까?
    • Kinesis를 메시지 본문의 버퍼 스트림으로 사용합니다. SQS의 Kinesis Stream에 배치에 대한 체크포인트 ID를 저장합니다.
    • Java 및 Amazon S3용 Amazon SQS 확장 클라이언트 라이브러리를 메시지 본문의 스토리지 메커니즘으로 사용하십시오.
    • Amazon S3에서 메시지 파티셔닝 및 멀티파트 업로드에 대한 SQS의 지원을 사용합니다.
    • AWS EFS를 공유 풀 스토리지 매체로 사용합니다. SQS 메시지 본문의 디스크에 있는 파일에 대한 파일 시스템 포인터를 저장합니다.
    설명:

    Amazon S3로 Amazon SQS 메시지를 관리할 수 있습니다. 이는 메시지 크기가 최대 2GB인 메시지를 저장하고 검색하는 데 특히 유용합니다. Amazon S3로 Amazon SQS 메시지를 관리하려면 Amazon SQS Extended Client Library for Java를 사용하십시오.

  4. 클릭스트림 데이터를 일괄적으로 집계하고 일주일에 한 번만 이메일을 통해 구독자에게 보고서를 전달하는 서비스를 설계하고 있습니다. 데이터는 매우 급증하고 지리적으로 분산되어 있으며 대규모이며 예측할 수 없습니다.

    이 시스템을 어떻게 설계해야 합니까?
    • 대규모 RedShift 클러스터를 사용하여 분석을 수행하고 Lambda 플릿을 사용하여 RedShift 테이블에 레코드 삽입을 수행합니다. Lambda는 트래픽 급증에 대해 충분히 빠르게 확장됩니다.
    • S3에 대한 액세스 로그 전달과 함께 CloudFront 배포를 사용합니다. 클릭은 배포에 쿼리 문자열 GET으로 기록되어야 합니다. 보고서는 S3의 액세스 로그를 통해 주기적으로 EMR 작업을 실행하여 작성 및 전송됩니다.
    • PutRecords를 Kinesis로 보내는 Lambdas를 호출하는 API Gateway와 Kinesis에서 GetRecords를 수행하는 Spark를 실행하는 EMR을 사용하여 급증에 따라 확장합니다. Spark on EMR은 이메일을 통해 전송되는 분석을 S3로 출력합니다.
    • AWS Elasticsearch 서비스 및 EC2 Auto Scaling 그룹을 사용합니다. Auto Scaling 그룹은 클릭 처리량에 따라 확장되며 역시 확장 가능한 Elasticsearch 도메인으로 스트리밍됩니다. Kibana를 사용하여 주기적으로 보고서를 생성합니다.
    설명:

    일괄 분석만 하면 되므로 스트리밍을 사용하는 모든 것은 돈 낭비입니다. CloudFront는 기가비트 규모의 HTTP(S) 글로벌 요청 배포 서비스이므로 규모, 지리적 확산, 스파이크 및 예측 불가능성을 처리할 수 있습니다. 액세스 로그에는 GET 데이터가 포함되며 EMR을 사용한 일괄 분석 및 이메일에 적합합니다. 최대 사용량이 10Gbps 또는 15,000RPS보다 높을 것으로 예상되는 경우 Amazon CloudFront를 사용할 수 있습니까? 예. 여기에서 더 높은 제한에 대한 요청을 완료하면 영업일 기준 2일 이내에 계정에 더 많은 용량을 추가합니다.

  5. 시스템은 부팅 시 VPC의 EC2 인스턴스에 EIP를 자동으로 프로비저닝합니다. 시스템은 전체 VPC와 스택을 한 번에 프로비저닝합니다. VPC당 두 개가 있습니다. 새 AWS 계정에서 동일한 리전에 스테이징 및 프로덕션 환경을 성공적으로 생성한 후 개발 환경을 생성하려는 시도가 실패했습니다. 무슨 일이에요?
    • 사용 중인 AMI의 개발 버전을 선택하지 않았습니다.
    • EC2 인스턴스를 배포할 때 개발 플래그를 true로 설정하지 않았습니다.
    • 지역당 5개의 EIP라는 소프트 제한에 도달했고 6번째를 요청했습니다.
    • 리전당 2개의 VPC라는 소프트 제한에 도달했고 세 번째를 요청했습니다.
    설명:
    새 계정의 VPC에 대해 지역당 5개의 EIP라는 소프트 제한이 있습니다. 세 번째 환경에서는 6번째 EIP를 할당하지 못했습니다.

  6. 다른 사용자 및 엔터티의 AWS 계정에 대한 API 호출을 모니터링하기 위해 ________을(를) 사용하여 나중에 검토할 수 있도록 대량으로 호출 기록을 생성하고 ___________를 사용하여 실시간으로 AWS API 호출에 반응할 수 있습니다.
    • AWS 구성; AWS 인스펙터
    • AWS 클라우드트레일; AWS 구성
    • AWS 클라우드트레일; CloudWatch 이벤트
    • AWS 구성; AWS 람다
    설명:
    CloudTrail은 일괄 API 호출 수집 서비스이며 CloudWatch Events는 Rules 객체 인터페이스를 통해 호출을 실시간으로 모니터링할 수 있습니다.

  7. Amazon RDS 다중 가용 영역 모델은 어떻게 작동합니까?
    • 두 번째 대기 데이터베이스는 동기식 복제를 사용하여 마스터와 다른 가용 영역에 배포 및 유지 관리됩니다.
    • 두 번째 대기 데이터베이스는 비동기식 복제를 사용하여 마스터와 다른 가용 영역에 배포 및 유지 관리됩니다.
    • 두 번째 대기 데이터베이스는 비동기 복제를 사용하여 마스터와 다른 지역에 배포 및 유지 관리됩니다.
    • 두 번째 대기 데이터베이스는 동기식 복제를 사용하여 마스터와 다른 지역에 배포 및 유지 관리됩니다.
    설명:

    다중 AZ 배포에서 Amazon RDS는 다른 가용 영역에서 동기식 대기 복제본을 자동으로 프로비저닝하고 유지합니다.

  8. 다음 중 AWS CloudFormation의 내장 기능이 아닌 것은 무엇입니까?
    • Fn::Equals
    • Fn::If
    • Fn::Not
    • Fn::Parse

  9. 다음 중 AWS EBS 스냅샷의 제한 사항은 무엇입니까?
    • 스냅샷 복원은 스냅샷이 생성된 지역으로 제한됩니다.
    • 암호화되지 않은 스냅샷은 공유할 수 없습니다.
    • 다른 지역의 사용자와 스냅샷을 공유하려면 먼저 해당 지역에서 스냅샷을 생성해야 합니다.
    • AWS 액세스 키 ID 또는 AWS 보안 액세스 키와 같은 민감한 데이터가 포함된 스냅샷은 공유할 수 없습니다.
    설명:

    다른 사용자와 공유된 Shapshot은 수정된 볼륨 및 스냅샷을 기반으로 하는 기능을 포함하되 이에 제한되어 받는 사람이 전체적으로 사용할 수 있습니다.

  10. 아래 옵션 중 EC2 보안 그룹의 지리적 제한은 무엇입니까?
    • 보안 그룹은 전역적입니다.
    • 배치 그룹으로 제한됩니다.
    • 지역에 국한됩니다.
    • 가용 영역으로 제한됩니다.
    설명:

    보안 그룹은 지역에 연결되어 있으며 동일한 지역의 인스턴스에만 할당할 수 있습니다.
    보안 그룹 규칙을 사용하여 해당 리전 외부의 인스턴스와 통신하도록 인스턴스를 활성화할 수 없습니다. 다른 지역에 있는 인스턴스의 트래픽은 WAN 대역폭으로 표시됩니다.

  11. 배포판 특정 명령이 있는 여러 Linux 배포판에서 실행되도록 단일 플레이북을 설계하는 경우 가장 적합한 것은 무엇입니까?
    • 팩트 수집을 활성화하고 'when' 조건을 사용하여 배포를 작업에 일치시킵니다.
    • 이것은 불가능하며 각 대상 Linux 배포판에 대한 별도의 플레이북이 필요합니다.
    • 작업에서 `ignore_errors: true'를 사용하십시오.
    • 실행되는 각 명령에 대한 자체 검사를 작성하려면 `shell' 모듈을 사용하십시오.
    설명: Ansible

    Ansible은 'when' 선언을 사용하여 조건이 충족될 때만 작업을 실행하는 방법을 제공합니다. 사실 수집을 활성화하면 플레이가 Linux 시스템의 배포 이름에 액세스할 수 있으므로 작업을 특정 배포에 맞출 수 있으며 조건이 충족될 때만 실행할 수 있습니다.
    예: ` – when: ansible_os_family == “Debian”‘.

    Ansible은 code 로 IT infrastructure 를 자동화하는 도구로 Puppet이나  Chef 와 동일한 역할을 수행합니다. Ansible은  상태 기계(state machine)의 일종으로 시스템을 원하는 상태로 표현하여 IT 배포를 자동화하므로 필요한 변경만 수행하여 시스템의 상태를 유지합니다.

  12. Ansible 작업에서 변수 값을 참조하기 위한 적절한 구문은 무엇입니까?

    • ${variable_name}
    • { variable_name }
    • “{{ variable_name }}”
    • @variable_name
    설명:
    변수 이름을 사용하여 중괄호 `{{ }}'로 캡슐화한 변수를 참조합니다. 그러나 YAML 구문은 중괄호로 시작하는 문자열이 사전 값을 나타냄을 나타냅니다. 이 문제를 해결하려면 변수 선언을 따옴표로 묶는 것이 적절합니다.

  13. Erin이 모두 Ansible에서 관리하는 세 개의 서버 유형 클러스터를 가지고 있고 적절한 NTP 서버 주소로 구성되도록 각 클러스터를 프로비저닝해야 하는 경우. 이를 관리하기 위해 Erin이 Ansible에서 사용해야 하는 가장 좋은 방법은 무엇입니까?
    • NTP 서버에 대한 대상 호스트의 영역에서 네트워크를 스캔하는 작업을 작성하고 다음 작업이 NTP 구성을 작성할 수 있도록 결과 주소를 등록합니다.
    • Ansible 인벤토리 파일에서 지역별로 호스트를 분류하고 인벤토리 그룹 변수에 해당 지역의 NTP 주소 값을 할당합니다. 플레이북은 인벤토리에서 NTP 변수를 참조하는 단일 플레이만 포함할 수 있습니다.
    • 각각 다른 지역에 대한 플레이북을 만들고 NTP 서버가 변경되는 경우 플레이의 변수에 NTP 주소를 저장합니다.
    • 세 개의 플레이를 만들고 각 플레이에는 해당 지역의 호스트가 있으며 각 작업에서 NTP 서버 주소를 설정합니다.
    설명:

    제공된 네 가지 답이 모두 맞지만 B만이 최선의 선택입니다. Ansible은 인벤토리 파일의 호스트 그룹에 변수를 할당하는 기능을 제공합니다. 플레이북이 실행되면 그룹에 할당된 변수를 사용하며 모든 그룹이 단일 플레이북 실행에 지정되어 있어도 됩니다. 각 변수는 플레이에 사용할 수 있습니다. 이것은 실행, 유지 및 쓰기에 가장 쉬운 방법입니다.

  14. 다음 중 Ansible에서 유효하지 않은 변수 이름은 무엇입니까?
    • host1st_ref
    • host-first-ref
    • Host1stRef
    • host_first_ref
    설명:

    변수 이름은 문자, 숫자 및 밑줄을 포함할 수 있으며 항상 문자로 시작해야 합니다. 잘못된 변수 예: `host first ref', `1st_host_ref'.

  15. 유효한 Ansible 플레이북의 최소 요구 사항은 무엇입니까?
    • 호스트, 연결 유형, 팩트 수집, 변수 및 작업.
    • 호스트 선언 및 작업
    • '—'를 포함하는 한 줄의 YAML 파일.
    • 최소 호스트 선언이 있는 최소 한 번의 플레이
    설명: Ansible 플레이북은 일련의 플레이이며 최소한 하나의 플레이를 포함해야 합니다. 플레이는 일반적으로 실행할 호스트, 작업 목록, 변수 및 역할, 연결 유형, 사실 수집, 원격 사용자 이름 등과 같은 작업을 완료하는 데 필요한 추가 지침으로 구성됩니다. 유효한 플레이를 위한 유일한 요구 사항은 호스트를 선언하는 것입니다.

  16. 원격 대상 호스트에서 플레이북을 실행할 때 "[Errno 13] 권한 거부: `/home/nick/.ansible/tmp'와 유사한 Python 오류가 발생합니다. 이 문제의 가장 가능성 있는 원인은 무엇입니까?
    • Ansible 시스템의 사용자 홈 또는 `.ansible' 디렉토리는 플레이를 실행하는 사용자가 쓸 수 없습니다.
    • 지정된 사용자가 원격 시스템에 존재하지 않습니다.
    • 'ansible-playbook'을 실행하는 사용자는 자신의 홈 디렉토리에서 실행해야 합니다.
    • Ansible 원격 호스트에 있는 사용자의 홈 또는 `.ansible' 디렉토리는 플레이를 실행하는 사용자가 쓸 수 없습니다.
    설명:
    Ansible이 실행하는 각 작업은 모듈을 호출합니다. Ansible이 모듈을 사용할 때 모듈을 원격 대상 시스템에 복사합니다. 위의 오류에서 원격 사용자의 홈 디렉토리로 복사를 시도했지만 홈 디렉토리 또는 '.ansible' 디렉토리가 쓰기 가능하지 않아 계속할 수 없음을 발견했습니다.

  17. Ansible의 연결 상태가 '원격'으로 설정된 경우 원격 대상 호스트에서 명령을 실행하기 위해 Ansible이 사용하는 통신 방법은 무엇입니까?
    • SSH
    • RSH
    • PSExec
    • API call to Ansible client on host
    설명: Ansible은 클라이언트/서버 아키텍처를 필요로 하지 않으며 SSH를 통해 모든 원격 연결을 만듭니다. Ansible은 기본 시스템 OpenSSH 라이브러리가 요구 사항을 충족하지 않는 경우 SSH용 Paramiko Python 라이브러리를 활용합니다. 또한 Ansible은 대상 호스트에 Python을 설치해야 합니다. 대상 호스트가 Windows인 경우 WinRS를 사용합니다.

  18. Ansible 플레이북에서 정의할 수 없는 리소스는 무엇입니까?
    • 사실 수집 상태
    • 호스트 그룹
    • 인벤토리 파일
    • 변수
    설명:
    Ansible의 인벤토리는 명령줄, Ansible 구성 파일 또는 환경 변수에서만 지정할 수 있습니다.

  19. 명령줄에서 플레이북에 대한 여러 변수 이름과 값을 지정할 때 다음 중 올바른 구문은 무엇입니까?

    • ansible-playbook playbook.yml -e `host=”foo” pkg=”bar”‘
    • ansible-playbook playbook.yml -e `host: “foo”, pkg: “bar”‘
    • ansible-playbook playbook.yml -e `host=”foo”‘ -e `pkg=”bar”‘
    • ansible-playbook playbook.yml –extra-vars “host=foo”, “pkg=bar”
    설명:
    변수는 단일 명령줄 매개변수 `-e' 또는 `–extra-vars'로 전달됩니다. 이들은 플레이북에 단일 문자열로 전송되며 공백으로 구분됩니다. 공백 구분 기호 때문에 변수 값은 따옴표로 묶어야 합니다. 또한 `-e `{"key": "name", "array": ["value1", "value2"]}'와 같은 적절한 JSON 또는 YAML을 전달할 수 있습니다.

  20. Ansible은 작업 실행 방법과 시기를 제어하는 ​​몇 가지 방법을 제공합니다. 다음 중 루프로 작업을 제어하는 ​​유효한 방법은 무엇입니까?

    • – with: <value>
    • – with_items: <value>
    • – only_when: <conditional>
    • – items: <value>
    설명:

    Ansible은 작업, 루프 및 조건을 제어하는 ​​두 가지 방법을 제공합니다. "with_items" 컨텍스트는 작업이 항목 목록을 반복하도록 허용하는 반면 'when' 컨텍스트는 작업 실행에 대한 조건부 요구 사항을 충족하도록 허용합니다. 둘 다 동시에 사용할 수 있습니다.

반응형
Comments