클라우드와 컨테이너의 기초

선언적인 IaC(Infrastructure as Code) 도구로, 네트워크와 가상 머신 2대의 구성을 정의한 파일을 적용하여 환경을 만들었다. 그 직후에 아무것도 바꾸지 않고 같은 파일을 한 번 더 적용했을 때 일어나는 일로 적절한 것은?

  1. A정의와 실제 상태에 차이가 없으므로 아무것도 변경되지 않는다
  2. B같은 구성이 한 세트 더 만들어져 가상 머신이 4대가 된다
  3. C이미 환경이 있으므로 두 번째 적용은 오류로 중단된다
정답과 해설 보기

정답: A. 정의와 실제 상태에 차이가 없으므로 아무것도 변경되지 않는다

선언적인 IaC에서는 절차가 아니라 '바람직한 구성'을 코드로 쓰고, 도구가 실제 상태와 비교하여 차이만큼만 생성, 변경, 삭제합니다. 그래서 같은 정의를 몇 번 적용해도 결과는 같아지며(멱등성), 두 번째에는 변경이 일어나지 않습니다. 누군가 수작업으로 설정을 바꾸어 실제 상태가 정의에서 어긋난 경우(구성 드리프트)에는 다음 적용으로 정의의 상태로 되돌려집니다. 정의를 Git으로 관리하면 변경 이력의 확인이나 리뷰도 프로그램과 마찬가지로 수행할 수 있습니다.

이 분야 연습하기 분야로 돌아가기

클라우드와 컨테이너의 기초의 다른 문제

  1. 이뮤터블 인프라스트럭처의 사고방식에 따른, 운영 서버의 소프트웨어 업데이트 방법으로 적절한 것은?
  2. 운영 환경과 같은 구성의 환경을 두 개 준비하여, 한쪽에서 현재 버전을 실행한 채로 다른 쪽에 새 버전을 넣어 확인한 다음, 로드 밸런서가 향하는 곳을 한 번에 전환한다. 문제가 있으면 향하는 곳을 되돌려 즉시 원래 버전으로 돌아간다. 이 릴리스 방법은?
  3. 1시간에 12,000건의 요청을 받는 서비스에서 새 버전을 카나리 릴리스하여, 요청의 5%만 새 버전으로 보냈다. 새 버전에는 받은 요청의 3%가 실패하는 결함이 있었고, 1시간 뒤에 알아차려 모든 요청을 원래 버전으로 되돌렸다. 이 1시간 동안 결함으로 실패한 요청의 건수로 올바른 것은?
  4. CI/CD 파이프라인에서 만든 컨테이너 이미지를 스테이징 환경에서 시험하여 합격했다. 이 이미지를 운영 환경에 내보내는 방법으로 가장 적절한 것은?
  5. 위와 같이 데이터베이스의 접속 대상을 이미지에 써 넣지 않고, 컨테이너를 시작할 때 환경 변수로 전달하도록 했다. 이 설계의 주된 이점으로 가장 적절한 것은?