문제 해결 AWS OpsWorks for Chef Automate - AWS OpsWorks

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

문제 해결 AWS OpsWorks for Chef Automate

중요

AWS OpsWorks for Chef Automate는 2024년 5월 5일에 수명이 종료되었으며 신규 고객과 기존 고객 모두 사용할 수 없게 되었습니다. 기존 고객은 Chef SaaS 또는 대체 솔루션으로 마이그레이션하는 것이 좋습니다. 질문이 있는 경우 AWS re:Post 또는 Premium AWS Support를 통해 AWS Support 팀에 문의할 수 있습니다.

이 항목에는 몇 가지 일반적인 AWS OpsWorks for Chef Automate 문제와 이러한 문제에 대한 제안 솔루션이 포함되어 있습니다.

일반적인 문제 해결 팁

Chef 서버를 생성 또는 사용할 수 없는 경우, 오류 메시지나 로그를 보고 문제 해결에 도움을 받을 수 있습니다. 다음 작업은 Chef 서버 문제 해결 시 일반적인 첫 단계를 설명합니다. 구체적인 오류와 해결책에 대해서는 이 주제의 구체적 오류 해결 단원을 참조하세요.

  • AWS OpsWorks for Chef Automate 콘솔을 사용하여 Chef 서버 시작에 실패할 경우 발생하는 오류 메시지를 확인하세요. Chef 서버 세부 정보 페이지 상단에는 서버 시작 및 실행과 관련된 오류 메시지가 표시됩니다. 오류는 Chef 서버를 생성하는 데 사용되는 AWS OpsWorks for Chef Automate AWS CloudFormation, 또는 Amazon EC2 서비스에서 발생할 수 있습니다. 세부 정보 페이지에서는 실행 중인 서버에서 발생하는 이벤트도 볼 수 있으며, 여기에 실패 이벤트 메시지가 포함될 수 있습니다.

  • EC2 문제를 해결하려면 SSH를 사용하여 서버의 인스턴스에 연결하고 로그를 확인합니다. EC2 인스턴스 로그는 /var/log/aws/opsworks-cm 디렉터리에 저장됩니다. 이러한 로그는 Chef 서버를 AWS OpsWorks for Chef Automate 시작하는 동안 명령 출력을 캡처합니다.

구체적 오류 해결

서버가 연결 끊김 상태입니다.

문제: 서버 상태가 연결 끊김으로 표시됩니다.

원인: 이 문제는 외부 엔티티가 AWS OpsWorks for Chef Automate 서버 또는 지원 AWS OpsWorks 리소스를 변경할 때 가장 일반적으로 발생합니다. AWS OpsWorks 연결 손실 상태의 Chef Automate 서버에 연결하여 백업 생성, 운영 체제 패치 적용 또는 Chef Automate 업데이트와 같은 유지 관리 작업을 처리할 수 없습니다. 따라서 서버에 중요한 업데이트가 누락되거나 보안 문제가 발생하기 쉽거나 예상대로 작동하지 않을 수 있습니다.

해결 방법: 다음 단계를 수행하여 서버 연결을 복원하세요.

  1. 서비스 역할에 필요한 모든 권한이 있는지 확인하세요.

    1. 서버 설정 페이지의 네트워크 및 보안에서 서버가 사용하는 서비스 역할의 링크를 선택합니다. 그러면 IAM 콘솔에서 볼 수 있는 서비스 역할이 열립니다.

    2. 권한 탭에서 권한 정책 목록에 AWSOpsWorksCMServiceRole이(가) 있는지 확인합니다. 목록에 없는 경우 AWSOpsWorksCMServiceRole 관리형 정책을 역할에 수동으로 추가하세요.

    3. 신뢰 관계 탭에서 서비스 역할에 opsworks-cm.amazonaws.com 서비스가 사용자를 대신하여 역할을 맡도록 신뢰하는 신뢰 정책이 있는지 확인합니다. 역할과 함께 신뢰 정책을 사용하는 방법에 대한 자세한 내용은 역할 수정 (콘솔) 또는 AWS 보안 블로그 게시물인 IAM 역할과 함께 신뢰 정책을 사용하는 방법을 참조하십시오.

  2. 인스턴스 프로파일에 필요한 모든 권한이 있는지 확인하세요.

    1. 서버 설정 페이지의 네트워크 및 보안에서 서버가 사용하는 인스턴스 프로파일의 링크를 선택합니다. 그러면 IAM 콘솔에서 볼 수 있는 인스턴스 프로파일이 열립니다.

    2. 권한 탭에서 권한 정책 목록에 AmazonEC2RoleforSSMAWSOpsWorksCMInstanceProfileRole이(가) 둘 다 있는지 확인합니다. 둘 중 하나 또는 둘 다 목록에 없는 경우 이러한 관리형 정책을 역할에 수동으로 추가하세요.

    3. 신뢰 관계 탭에서 서비스 역할에 ec2.amazonaws.com 서비스가 사용자를 대신하여 역할을 맡도록 신뢰하는 신뢰 정책이 있는지 확인합니다. 역할과 함께 신뢰 정책을 사용하는 방법에 대한 자세한 내용은 역할 수정 (콘솔) 또는 AWS 보안 블로그 게시물인 IAM 역할과 함께 신뢰 정책을 사용하는 방법을 참조하십시오.

  3. Amazon EC2 콘솔에서 AWS OpsWorks for Chef Automate 서버 리전과 동일한 리전에 있는지 확인한 다음 서버에서 사용 중인 EC2 인스턴스를 다시 시작합니다.

    1. 이름이 aws-opsworks-cm-instance- server-name인 EC2 인스턴스를 선택합니다.

    2. 인스턴스 상태 메뉴에서 인스턴스 재부팅을 선택합니다.

    3. 서버가 다시 시작되고 완전히 온라인 상태가 될 때까지 최대 15분이 걸릴 수 있습니다.

  4. AWS OpsWorks for Chef Automate 콘솔의 서버 세부 정보 페이지에서 서버 상태가 현재 정상인지 확인합니다.

이전 단계를 수행한 후에도 서버 상태가 여전히 연결 끊김으로 표시되면 다음 중 하나를 시도해 보세요.

Chef Automate 대시보드에서 관리형 노드가 Missing 열에 나타납니다

문제: 관리형 노드가 Chef Automate 대시보드의 [Missing] 열에 나타납니다.

원인: 노드가 12시간 이상 Chef Automate 서버에 연결되지 않고 chef-client가 노드에서 실행될 수 없으면 노드는 12시간 전의 상태에서 변경되고 Chef Automate 대시보드의 [누락] 열로 이동합니다.

해결 방법: 노드가 온라인 상태인지 확인합니다. knife node show node_name --run-list를 실행하여 chef-client가 노드에서 실행될 수 있는지 확인하거나 knife node show -l node_name을 실행하여 노드에 관한 모든 정보를 표시해 보십시오. 노드가 오프라인 상태이거나 네트워크에서 분리되었을 수 있습니다.

Chef 볼트를 생성할 수 없고 knife vault 명령이 오류와 함께 실패합니다

문제: knife vault 명령을 실행하여 Chef Automate 서버에서 볼트(예: 도메인을 조인하는 Windows 기반 노드용 자격 증명을 저장하는 볼트)를 생성하려 하고 있습니다. 이 명령은 다음과 비슷한 오류 메시지를 반환합니다.

WARN: Auto inflation of JSON data is deprecated. Please pass in the class to inflate or use #edit_hash (CHEF-1) at /opt/chefdk/embedded/lib/ruby/2.3.0/forwardable.rb:189:in `edit_data'.Please see https://docs.chef.io/deprecations_json_auto_inflate.html for further details and information on how to correct this problem. WARNING: pivotal not found in users, trying clients. ERROR: ChefVault::Exceptions::AdminNotFound: FATAL: Could not find pivotal in users or clients!

knife user list를 원격으로 실행하면 중심 사용자가 반환되지 않지만 Chef Automate 서버에서 로컬로 chef-server-ctl user-show 명령을 실행하면 결과에서 중심 사용자를 볼 수 있습니다. 다시 말해 knife vault 명령은 중심 사용자를 찾을 수 없지만 존재한다는 것은 알고 있습니다.

원인: 중심 사용자는 Chef에서 수퍼유저로 간주되고 모든 권한을 갖지만 AWS OpsWorks for Chef Automate에서 사용되는 default 조직을 비롯한 어떤 조직에도 속하지 않습니다. knife user list 명령은 Chef 구성 내 현재 조직에 있는 모든 사용자를 반환합니다. chef-server-ctl user-show 명령은 조직에 상관없이 중심 사용자를 비롯한 모든 사용자를 반환합니다.

해결 방법: 이 문제를 해결하려면 knife opc를 실행하여 기본 조직에 중심 사용자를 추가합니다.

먼저 knife-opc 플러그인을 설치해야 합니다.

chef gem install knife-opc

플러그인을 설치한 후 다음 명령을 실행하여 기본 조직에 중심 사용자를 추가합니다.

knife opc org user add default pivotal

knife user list를 실행하면 중심 사용자가 기본 조직에 속하는지 확인할 수 있습니다. pivotal이 결과에서 나열되어야 합니다. 그런 다음 knife vault를 다시 실행해 보십시오.

"requested configuration is currently not supported" 메시지와 함께 서버 생성이 실패합니다

문제: Chef Automate 서버를 생성하려고 하지만 "The requested configuration is currently not supported. Please check the documentation for supported configurations."와 비슷한 오류 메시지와 함께 서버 생성이 실패합니다.

원인: Chef Automate 서버에 대해 지원되지 않는 인스턴스 유형을 지정했을 수 있습니다. 전용 인스턴스용 VPC처럼 기본이 아닌 테넌시가 있는 VPC에서 Chef Automate 서버를 생성하는 경우, 지정된 VPC 내부의 모든 인스턴스도 전용 또는 호스트 테넌시여야 합니다. t2와 같은 일부 인스턴스 유형은 기본 테넌시에서만 사용할 수 있기 때문에 Chef Automate 서버 인스턴스 유형은 지정한 VPC에서 지원 불가능할 수 있으며, 서버 생성이 실패합니다.

해결 방법: 기본이 아닌 테넌시가 있는 VPC를 선택하는 경우, 전용 테넌시를 지원할 수 있는 m4 인스턴스 유형을 사용하세요.

Chef Automate 대시보드에서 추가된 조직 이름을 Chef 서버가 인식하지 못합니다

문제: Chef Automate 대시보드에 새 Workflow 조직 이름을 추가하거나 무인 노드 연결 스크립트에서 "default" 아닌 CHEF_AUTOMATE_ORGANIZATION 값을 지정했지만 노드 연결이 실패합니다. AWS OpsWorks for Chef Automate 서버가 새 조직 이름을 인식하지 못합니다.

원인: Workflow 조직 이름과 Chef 서버 조직 이름이 다릅니다. 웹 기반 Chef Automate 대시보드에서 새 Workflow 조직을 생성할 수 있지만 Chef 서버 조직 이름은 불가능합니다. Chef Automate 대시보드는 기존 Chef 서버 조직을 보는 데만 사용할 수 있습니다. Chef Automate 대시보드에서 생성하는 새 조직은 Workflow 조직이며, Chef 서버에 의해 인식되지 않습니다. 새 조직 이름은 노드 연결 스크립트에서 지정하여 생성할 수 없습니다. 조직이 먼저 Chef 서버에 추가되지 않은 상태에서 노드 연결 스크립트에서 조직 이름을 언급하면 노드 연결이 실패합니다.

해결 방법: Chef 서버에서 인식되는 새 조직을 생성하려면 knife opc org create 명령을 사용하거나 chef-server-ctl org-create를 실행하세요.

서버의 Amazon EC2 인스턴스를 생성할 수 없습니다.

문제: 다음과 비슷한 오류 메시지와 함께 서버 생성이 실패했습니다. "The following resource(s) failed to create: [EC2Instance]. Failed to receive 1 resource signal(s) within the specified duration."

원인: 가장 가능성 높은 원인은 EC2 인스턴스에 네트워크 액세스 권한이 없기 때문입니다.

해결 방법: 인스턴스에 아웃바운드 인터넷 액세스 권한이 있고 AWS 서비스 에이전트가 명령을 실행할 수 있는지 확인하십시오. VPC(단일 퍼블릭 서브넷이 포함된 VPC)에서 [DNS 확인]이 활성화되어 있고, 서브넷에서 [퍼블릭 IP 자동 할당] 설정이 활성화되어 있어야 합니다.

서비스 역할 오류로 서버가 생성되지 않습니다

문제: 서버 생성이 실패하고 “sts를 수행할 권한이 없음:”이라는 오류 메시지가 표시됩니다AssumeRole.

원인: 이 문제는 사용 중인 서비스 역할에 새 서버를 생성할 수 있는 적절한 권한이 없을 때 발생할 수 있습니다.

해결 방법: AWS OpsWorks for Chef Automate 콘솔을 열고 콘솔을 사용하여 새 서비스 역할과 인스턴스 프로필 역할을 생성하십시오. 자체 서비스 역할을 사용하려면 AWSOpsWorksCMServiceRole정책을 역할에 연결하세요. opsworks-cm.amazonaws.com이 역할의 신뢰 관계에 있는 서비스에 등재되어 있는지 확인하세요. Chef 서버와 연결된 서비스 역할에 AWSOpsWorksCMServiceRole관리형 정책이 연결되어 있는지 확인하세요.

탄력적 IP 주소 제한 초과

문제: "The following resource(s) failed to create: [EIP, EC2Instance]. Resource creation cancelled, the maximum number of addresses has been reached"라는 오류 메시지와 함께 서버 생성이 실패합니다.

원인: 이 문제는 계정이 탄력적 IP(EIP) 주소 최대 수를 사용한 경우에 발생합니다. 기본 EIP 주소 한도는 5입니다.

해결 방법: 기존 EIP 주소를 해제하거나 계정에서 활발히 사용하지 않는 주소를 삭제하거나 AWS 고객 지원에 문의하여 계정과 연결된 EIP 주소 한도를 늘릴 수 있습니다.

Chef Automate 대시보드에 로그인할 수 없습니다

문제: Chef Automate 대시보드에 다음과 비슷한 오류가 표시됩니다. "Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://myserver-name.region.opsworks-cm.io/api/v0/e/default/verify-token. (Reason: CORS header 'Access-Control-Allow-Origin' missing)". 이 오류는 "The User Id / Password combination entered is incorrect"와도 비슷할 수 있습니다.

원인: Chef Automate 대시보드는 FQDN을 명시적으로 설정하며, 관련 URL을 허용하지 않습니다. 이때는 Chef 서버의 IP 주소를 사용하여 로그인할 수 없고 서버의 DNS 이름을 사용해야만 로그인할 수 있습니다.

해결 방법: Chef 서버의 IP 주소가 아니라 DNS 이름 항목만 사용하여 Chef Automate 대시보드에 로그인하세요. Chef Automate 대시보드 자격 증명 재설정에 설명된 대로 AWS CLI 명령을 실행하여 Chef Automate 대시보드 자격 증명을 재설정해 볼 수도 있습니다.

무인 노드 연결이 실패합니다

문제: 새 Amazon EC2 노드의 무인 또는 자동 연결이 실패합니다. Chef 서버에 추가되었어야 할 노드가 Chef Automate 대시보드에 나타나지 않고 knife client show 또는 knife node show 명령의 결과에 나열되지 않습니다.

원인: 이 문제는 opsworks-cm API 호출이 새 EC2 인스턴스와 통신하는 것을 허용하는 인스턴스 프로파일로 IAM 역할이 설정되어 있지 않을 때 발생할 수 있습니다.

해결 방법: 노드를 자동으로 추가합니다. AWS OpsWorks for Chef Automate에 설명된 대로 AssociateNodeDescribeNodeAssociationStatus API 호출이 EC2에서 작동하도록 허용하는 정책을 EC2 인스턴스 프로파일에 연결하세요.

시스템 유지 관리 실패

AWS OpsWorks CM 보안 업데이트를 포함한 최신 마이너 버전의 Chef Server 및 Chef Automate Server가 AWS OpsWorks for Chef Automate 서버에서 항상 실행되도록 매주 시스템 유지 관리를 수행합니다. 어떤 이유로든 시스템 유지 관리에 실패하는 경우 사용자에게 장애를 AWS OpsWorks CM 알립니다. 시스템 유지 관리에 대한 자세한 내용은 시스템 유지 관리 로그인 AWS OpsWorks for Chef Automate 섹션을 참조하세요.

이 섹션에서는 가능한 실패 원인을 설명하고 해결 방법을 제안합니다.

서비스 역할 또는 인스턴스 프로파일 오류로 인해 시스템 유지 관리가 불가능합니다.

문제: 시스템 유지 관리가 실패하고 “sts를 수행할 권한이 없음: AssumeRole “이라는 오류 메시지 또는 권한에 대한 유사한 오류 메시지가 표시됩니다.

원인: 사용 중인 서비스 역할 또는 인스턴스 프로파일에 서버에서 시스템 유지 관리를 수행할 수 있는 적절한 권한이 없는 경우 이 문제가 발생할 수 있습니다.

해결 방법: 서비스 역할과 인스턴스 프로파일에 필요한 모든 권한이 있는지 확인하세요.

  1. 서비스 역할에 필요한 모든 권한이 있는지 확인하세요.

    1. 서버 설정 페이지의 네트워크 및 보안에서 서버가 사용하는 서비스 역할의 링크를 선택합니다. 그러면 IAM 콘솔에서 볼 수 있는 서비스 역할이 열립니다.

    2. 권한 탭에서 서비스 역할에 AWSOpsWorksCMServiceRole이(가) 연결되어 있는지 확인합니다. AWSOpsWorksCMServiceRole이(가) 목록에 없는 경우 이 정책을 역할에 추가하세요.

    3. opsworks-cm.amazonaws.com이 역할의 신뢰 관계에 있는 서비스에 등재되어 있는지 확인하세요. 역할과 함께 신뢰 정책을 사용하는 방법에 대한 자세한 내용은 역할 수정 (콘솔) 또는 AWS 보안 블로그 게시물인 IAM 역할과 함께 신뢰 정책을 사용하는 방법을 참조하십시오.

  2. 인스턴스 프로파일에 필요한 모든 권한이 있는지 확인하세요.

    1. 서버 설정 페이지의 네트워크 및 보안에서 서버가 사용하는 인스턴스 프로파일의 링크를 선택합니다. 그러면 IAM 콘솔에서 볼 수 있는 인스턴스 프로파일이 열립니다.

    2. 권한 탭에서 권한 정책 목록에 AmazonEC2RoleforSSMAWSOpsWorksCMInstanceProfileRole이(가) 둘 다 있는지 확인합니다. 둘 중 하나 또는 둘 다 목록에 없는 경우 이러한 관리형 정책을 역할에 수동으로 추가하세요.

    3. 신뢰 관계 탭에서 서비스 역할에 ec2.amazonaws.com 서비스가 사용자를 대신하여 역할을 맡도록 신뢰하는 신뢰 정책이 있는지 확인합니다. 역할과 함께 신뢰 정책을 사용하는 방법에 대한 자세한 내용은 역할 수정 (콘솔) 또는 AWS 보안 블로그 게시물인 IAM 역할과 함께 신뢰 정책을 사용하는 방법을 참조하십시오.

추가 도움말 및 지원

이 주제에 특정 문제가 설명되어 있지 않거나 이 주제의 제안을 시도했지만 여전히 문제가 계속되는 경우, AWS OpsWorks 포럼을 방문하세요.

AWS Support Center를 방문할 수도 있습니다. AWS 지원 센터는 Support 사례를 생성하고 관리하는 AWS 허브입니다. AWS Support Center에는 포럼, 기술 FAQ, 서비스 상태 등과 같은 기타 유용한 리소스에 대한 링크도 포함되어 있습니다. AWS Trusted Advisor