Today Keys : Service, Catalog, 서비스, 카탈로그, governance, 거버넌스, 클라우드, cloud, public, 상품, product
이번 포스팅은 IT 서비스를 중앙에서 관리하고, 지속적인 거버넌스 수립, 규정 준수 요건을 충족시킬 수 있는 AWS Service Catalog에 대해서 알아봅니다. 이번 포스팅에서 Service Catalog에 대한 설명은 없으며, Service Catalog를 생성하고 이를 이용해서 상품을 배포하는 간략한 예제만 다룹니다.
서비스 카탈로그(Service Catalog)에서 포트폴리오(Portfolio)를 생성합니다.
포트폴리오 이름과, 설명(옵션), 해당 포트폴리오를 만든 사람 혹은 조직 이름을 작성합니다.
Owner는 단순히 포트폴로이에 표기되는 이름이며, 계정과는 별개입니다.
Create 버튼을 누르면 다음과 같이 포트폴리오가 생성된 것을 확인할 수 있습니다.
이제 생성된 포트폴리오를 선택해서 상세 정보를 확인합니다.
포트폴리오를 선택해서 보면, 상세정보와 포트폴리오에서 설정하는
Products, Constraints, Users, Groups, Roles, Share, Tag, TagOption
을 확인할 수 있습니다.
이번 포스팅에서는 카탈로그를 확인하기 위한 최소한의 설정으로 살펴봅니다.
Product를 포트폴리오에 추가해야 하는데, 카탈로그 메뉴에서 Product를 생성하고,
'Add product to portfolio'를 선택해서 추가할 수도 있고,
포트폴리오 내에서 'Upload new product'를 통해서도 바로 생성해서 포트폴리오에 추가할 수도 있습니다
상품을 추가하기 위해서 상품명을 입력하고, 상품에 대한 설명,
그리고 상품을 퍼블리시한 사람 혹은 조직, Vendor를 기입합니다.
여기에 기입되는 정보는 단순 구분 혹은 표기용으로 실제 계정/조직과는 별개입니다.
다음은 해당 상품에 대한 문의를 위한 Email이나 Support link를 입력합니다.
다음은 실제 상품을 구성하게 될 CloudFormation 템플릿 파일을 업로드합니다.
로컬에서 파일을 선택하거나, 이미 업로드된 S3에서 선택할 수 있습니다.
로컬에서 선택한 파일은 S3로 자동 업로드됩니다.
본 예제에서는 AWS Service Catalog 관리자 안내서에서 제공하는 템플릿을 활용했습니다.
Product에 대한 버전 정보를 함께 기록합니다.
1개의 Product에는 다양한 버전의 템플릿으로 구성 가능합니다.
생성하고자 하는 Product 정보를 확인합니다.
Product를 생성된 것을 확인 할 수 있습니다.
이제 이 포트폴리오를 사용 할 수 있는 권한을 할당합니다.
본 예제 포스팅에서는 IAM Users를 이용합니다.
zigi-user라는 사용자에게 지금까지 만든
'ZIGI-Portfolio'를 사용할 수 있도록 접근 권한을 할당합니다.
이제 사용자 계정에서, AWS Service Catalog 내의 Product 메뉴를 보면
다음과 같이 상품 리스트를 볼 수 있습니다.
이제 해당 상품을 선택합니다.
상품에 대한 설명을 볼 수 있으며, "LAUNCH PRODUCT"를 선택해서 Product을 배포합니다.
Product 배포를 위해서 몇 가지 입력하는 항목이 있습니다.
Product를 이용해서 배포할 상품명과, 해당 상품 내의 Version 정보를 선택합니다.
앞서 얘기한 것처럼 동일 상품 내에 다수의 버전별 템플릿을 업로드해서 다양한 버전 지원이 가능합니다.
이번 예시 템플릿은 EC2 1개를 생성하는 예시이며,
EC2 생성을 위해서 Server size와 key pair, 접근을 허용하는 대역을 설정합니다.
Tag 입력 가능하지만, 별도의 값을 입력하지 않아도 됩니다.
Amazon SNS 연동하여 Noti가 가능하지만, 별도 설정을 하지 않고 생성하겠습니다.
상품을 생성하기 전에 입력한 값을 확인 후, Launch를 클릭해서 상품을 배포합니다.
이제 Product에 설정된 CloudFormation 템플릿을 이용해서 상품을 배포합니다.
일정 시간이 지나고 나면, 다음과 같이 상품이 배포된 것을 확인 할 수 있습니다.
만약 배포 중에 실패가 발생하는 경우에는 어떤 사유로 실패가 됐는지 로그가 뜨기 때문에
해당 로그 이슈를 해결하시면 됩니다.