BLOG
소개
AWS 고객 중 대부분은 ServiceNow를 기존 AWS 서비스에 통합하거나 동시에 사용할 수 있도록 ServiceNow와 AWS 서비스를 모두 설정합니다. 여기서 직면하는 한가지 과제는 AWS에 새로운 스핀 업 인스턴스가 나타날 때 CMDB(Configuration Management Database)를 업데이트 해야 한다는 것입니다.
오늘 포스팅에서는 새 Amazon EC2 인스턴스가 생성될 때 Amazon SNS가 알림을 트리거 하도록 AWS Config 와 ServiceNow를 통합하는 방법에 대해 설명해 드리겠습니다. 이 알림은 CMDB에 서버 레코드를 생성하고 샘플 AWS CloudFormation 스택에서 EC2 인스턴스를 생성하여 설정을 테스트 합니다.
개요
AWS CloudFormation을 사용하여 템플릿에서 인프라 리소스를 자동으로 프로비저닝 하고 AWS Config를 통해 이러한 리소스를 모니터링합니다. SNS는 이 리소스에 대한 메시지를 푸시하기 위한 주제를 제공합니다. AWS Config를 사용하여 ServiceNow에 정보를 제공하면 CMDB 레코드를 자동으로 생성할 수 있습니다.
이 과정은 다음의 다섯 단계로 이루어집니다.
- ServiceNow를 구성하십시오.
- SNS 주제 및 구독을 작성하십시오.
- ServiceNow에서 SNS 구독을 확인하십시오.
- ServiceNow에서 구독에 대한 핸들러를 만듭니다.
- AWS Config를 구성하십시오.
ServiceNow의 구성
무료 ServiceNow 개발자 인스턴스를 사용하여 작업을 수행합니다. 이미 가지고 있다면 자유롭게 사용하십시오.
- ServiceNow Developer 페이지에 로그인하여 개발자 인스턴스를 요청하십시오.
- 개발자 인스턴스에 관리자로 로그인 한 후, 로그인 자격 증명을 기억하십시오. 이들은 나중에 SNS 주제 구독 URL을 구성할 때 사용됩니다.
- 시스템 애플리케이션으로 이동합니다. Studio를 선택한 다음 Import From Source Control를 선택 하십시오 .
- Import Application 화면에서 다음 URL을 입력하십시오.
https://github.com/byukich/x_snc_aws_sns.
- User name 필드와 Password필드 양쪽을 공란으로 둔 채로 Import를 선택 합니다.
- Studio브라우저 탭을 닫습니다.
- ServiceNow 브라우저 탭을 갱신하고, SNS로 이동하십시오. 왼쪽 창에 3개의 새로운 내비게이션 링크가 표시 되어 있는 것에 주의하십시오.
참고: 위 이미지에서 “AWS SNS”는 Amazon SNS가 아닌 앱 이름을 나타냅니다.
SNS 주제 및 구독 작성하기
SNS 주제 및 구독을 작성하려면 다음 순서로 실행하십시오.
- SNS 콘솔에 로그인하고 미국 동부 (버지니아 북부) 지역을 선택합니다.
- 왼쪽 분할 창에서 Topics, Create New Topic을 선택 하십시오.
- 주제에 이름을 지정하고 표시 이름을 ServiceNow로 지정한 후 Create Topic을 선택 하십시오.
- 방금 생성 한 주제에 대한 Amazon 리소스 이름(ARN) 링크를 선택하십시오.
- Create Subscription(가입 생성)을 선택합니다.
- HTTPS protocol을 선택하십시오.
- Endpoint를 위해 자유롭게 ServiceNow개발자의 인스턴스를 취득할 때에 얻은 관리자 패스워드를 사용합니다. 그 후 다음과 같이 표시된 개발자 인스턴스 링크를 입력 합니다
https : // admin : <ServiceNow 관리자 비밀번호> @ <개발자 인스턴스> .service-now.com / api / x_snc_aws_sns / aws_sns
- Create Subscription(가입 생성)을 선택 합니다.
새 구독이 확인 대기 중입니다.
ServiceNow에서 SNS 가입 확인
SNS가 ServiceNow에 메시지를 보내도록 허용하기 전에 ServiceNow에서 구독을 확인하십시오. 이 시점에서 AWS는 이미 핸드 셰이크 요청을 보냈으며 ServiceNow 인스턴스 내부에서 확인을 기다리고 있습니다.
- ServiceNow 브라우저 탭에서 SNS로 이동 한 다음 구독을 선택하십시오. AWS가 새 레코드를 만든 것에 주의해 주십시오.
- ServiceNow를 선택하여 구독을 연 다음 구독 확인을 선택하십시오. 다음 섹션에서 핸들러를 작성하려면 이 페이지를 유지해 줍니다.
ServiceNow에서 구독 핸들러 작성
이제 AWS로부터받은 메시지를 흡수 할 수 있도록 ServiceNow를 설정합니다. 샘플 AWS CloudFormation 스택에서 새로운 EC2 인스턴스가 생성될 때마다 CMDB 서버 테이블 (cmdb_ci_server)에 새 레코드를 생성 할 수 있는 핸들러를 생성해 줍니다.
핸들러를 설정하려면 다음 단계를 수행해 주십시오.
- 구독 양식 맨 하단의 핸들러 관련에서 새로 작성을 선택한 후 ‘EC2에서 CMDB 서버를 작성’과 같은 핸들러 이름을 제공합니다.
- 함수 안에 다음 코드를 입력합니다.
var webserver = new GlideRecord(“cmdb_ci_server”);
webserver.initialize();
webserver.name = “AWS WebServer “+message.configurationItem.configuration.launchTime ;
webserver.short_description = “Monitoring is “+message.configurationItem.configuration.monitoring.state+” and Instance Type is “+message.configurationItem.configuration.instanceType ;
webserver.asset_tag = message.configurationItem.configuration.instanceId ;
webserver.insert();
- 제출을 선택합니다.
AWS Config 구성
- 구성 콘솔에서 미국 동부 (버지니아 북부) 지역을 선택합니다.
- 왼쪽 탐색 창에서 Settings을 선택하십시오. Recording의 경우 값이 On인 것을 확인 해 주십시오.
- Resources Type to Record항목 아래의 All Resources로는 체크 박스 2개 모두를 선택해 줍니다.
- Record all resources supported in this region(이 지역에서 지원 되는 모든 리소스를 기록합니다.)
- Include global resources (including IAM resources)글로벌 리소스 (IAM리소스를 포함)을 포함합니다.
- Choose a topic from your account(계정에서 주제 선택)을 선택하십시오.
- 방금 생성한 주제에 대해 ARN(Amazon 리소스 이름) 링크를 선택하십시오.
- 저장을 선택합니다.
통합 테스트
AWS CloudConfig에서 기록을 트리거하는 AWS CloudFormation 샘플 템플릿에서 스택을 생성 하여 이 통합을 테스트 할 수 있습니다. 그런 다음에 SNS 알림을 생성하여 ServiceNow CMDB에 구성 항목을 생성합니다.
- AWS CloudFormation의 콘솔에서 Create stack(선택 생성)을 선택합니다.
- 샘플 템플릿을 선택하십시오.
- Specify Details(세부 사항 지정) 아래에 다음 정보를 입력해 줍니다.
참고: 위 이미지는 샘플 정보를 보여줍니다.
- Next(다음)을 선택하십시오.
- 왼쪽 탐색 창에서Options을 선택하고, 필요한 경우 태그를 지정하여 다음을 Next(다음)을 선택합니다..
- 검토 페이지 하단에서 Create(생성)을 선택합니다. 스택 생성이 완료될 때까지 기다립니다.
- ServiceNow로 이동 한 다음 Server로 이동하여 서버가 생성되었는지 확인합니다.
새 서버 항목이 표시되면 AWS Config를 ServiceNow CMDB와 성공적으로 통합한 것입니다.
결론
오늘은 AWS Config를 ServiceNow CMDB와 통합하는 방법을 보여드렸습니다. AWS CloudFormation을 사용하여 AWS에서 인스턴스를 생성하면 세부 정보가 CMDB 서버 테이블에서 구성 항목으로 캡쳐됩니다.
이 프로세스를 통해 ServiceNow의 핸들러를 사용하여 인스턴스 세부 정보로 레코드를 업데이트 할 수 있습니다. 이 핸들러는 통합을 확장 할 수 있는 옵션을 제공하도록 사용자 정의 할 수 있습니다. 업데이트된 인스턴스 세부 정보와 원하는 추가 세부 정보를 얻을 수 있습니다.
이 메커니즘을 트리거로 사용하여 알림을 보내고 검출, 워크 플로우 등을 포함한 조치를 실행할 수 있습니다. 리소스 유형 목록에서 약간의 변경(태그 추가 등)을 수행하면 이 솔루션을 사용하여 발견 요구를 회피하여 기존 리소스를 발견 할 수 있습니다. 그러면 AWS Config에서 변경 기록이 트리거된 다음 CMDB에 해당 리소스가 생성됩니다.
추가로 ServiceNow용 AWS Service Catalog Connector를 확인하시려면 다음 2개의 링크를 살펴봐 주시기 바랍니다.
** 메가존 클라우드 TechBlog는 AWS BLOG 영문 게재 글 중에서 한국 사용자들에게 유용한 정보 및 콘텐츠를 우선적으로 번역하여 내부 엔지니어 검수를 받아서, 정기적으로 게재하고 있습니다. 추가로 번역 및 게재를 희망하는 글에 대해서 관리자에게 메일 또는 SNS 페이지에 댓글을 남겨주시면, 우선적으로 번역해서 전달해드리도록 하겠습니다.