

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

# Service Catalog에서 제품을 정의하기 위한 프로그래밍 옵션
<a name="options"></a>

Service Catalog를 사용하여 AWS 인프라를 프로비저닝하기 위한 두 가지 프로그래밍 옵션은 CloudFormation 템플릿 또는 입니다 AWS CDK. 현재 Service Catalog 제품을 정의하기 위한 선언적 또는 노코드 메커니즘은 없습니다.

## CloudFormation 스크립팅
<a name="cfn"></a>

CloudFormation 는 인프라를 프로비저닝하기 AWS 위해 시도된 진정한 IaC 네이티브 스크립팅 언어입니다. 에서 AWS Management Console 또는 Visual Studio Code(또는 간단한 텍스트 편집기) 및 ()와 같은 개발 도구를 사용하여 CloudFormation 스크립트를 개발할 수 있습니다 AWS Command Line Interface AWS CLI.

자세한 내용은 [CloudFormation 설명서](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/GettingStarted.html)를 참조하세요. CloudFormation 템플릿을 사용하여 Service Catalog 제품을 지정하는 방법에 대한 자세한 내용은 CloudFormation 설명서의 [AWS::ServiceCatalog::CloudFormationProduct resource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationproduct.html)를 참조하세요.

## 를 사용한 프로그래밍 방식 AWS CDK
<a name="cdk"></a>

는 다양한 프로그래밍 언어를 사용하여 AWS 인프라를 정의하고 유지하기 위한 고급스럽고 강력한 객체 지향 프로그래밍 프레임워크를 AWS CDK 제공합니다. AWS CDK 를 사용하여 객체 지향적이고 세분화된 사용자 지정 및 AWS 클래스 프레임워크 확장을 개발할 수 있습니다. AWS CDK 는 보다 정교한 인프라 요구 사항에 AWS 서비스 맞게 사용자 지정하고 필요한 프로그래밍 기술과 경험을 갖춘 사용자를 위한 것입니다.

를 사용하여 Service Catalog 솔루션을 구현하려면 기본 제공 Service Catalog 클래스를 AWS CDK사용하여 제품 및 포트폴리오를 정의합니다. 이러한 클래스는 AWS CDK [theaws-cdk-lib.aws\_servicecatalog 모듈에서](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_servicecatalog-readme.html) 제공합니다.

를 사용하여 여러 가지 방법으로 제품을 구현 AWS CDK 할 수 있습니다. CloudFormation에서 제품에 대한 프로비저닝 템플릿을 작성하고 재사용성을 유지하려면 AWS CDK [ProductStack 클래스](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_servicecatalog.ProductStack.html)를 사용하여 프로비저닝 템플릿을 나타내는 것이 좋습니다. `ProductStack` 인스턴스는 프로그래밍 방식으로 리소스를 추가하는 AWS CDK 스택입니다. 예를 들어 S3 버킷, IAM 역할 또는 Amazon CloudWatch 로그를 추가할 수 있습니다. 를 호출하여 정의된 `servicecatalog.CloudFormationProduct` 인스턴스에 `ProductStack` 인스턴스를 프로비저닝 템플릿으로 추가하면가 CloudFormation 템플릿을 `servicecatalog.CloudFormationTemplate.fromProductStack (<ProductStack instance>)` AWS CDK 자동으로 생성합니다.

다음은 Amazon S3 제품에 대한 Java `ProductStack` 구현 예제입니다.

```
import * as s3 from 'aws-cdk-lib/aws-s3';
import * as cdk from 'aws-cdk-lib';
 
class S3BucketProduct extends servicecatalog.ProductStack {
  constructor(scope: Construct, id: string) {
    super(scope, id);
 
    new s3.Bucket(this, 'BucketProduct');
  }
}
 
const product = new servicecatalog.CloudFormationProduct(this, 'Product', {
  productName: "My Product",
  owner: "Product Owner",
  productVersions: [
    {
      productVersionName: "v1",
      cloudFormationTemplate: servicecatalog.CloudFormationTemplate.fromProductStack(new S3BucketProduct(this, 'S3BucketProduct')),
    },
  ],
});
```

는 내장 지속적 통합 및 지속적 배포(CI/CD) 파이프라인을 AWS CDK 제공합니다. 자체 프로세스 표준 및 목표에 맞게 이러한 기본 제공 파이프라인 및 소프트웨어 개발 수명 주기(SDLC) 프로세스를 사용자 지정할 수 있습니다.

사용자 지정 AWS CDK 클래스는 다른 클래스에서 상속하여 특수 함수를 제공할 수 있으며, 클래스는 다른 클래스의 인스턴스로 구성될 수 있습니다. 공유 AWS CDK 클래스 프레임워크를 사용하여 여러 Service Catalog 제품을 구현하는 경우 특히 여러 개발 팀에서 버전 관리 또는 호환성에 미치는 영향을 고려하세요. 변경 사항이 이전 버전과 호환되는지 또는 한 제품의 클래스 변경으로 인해 다른 제품과의 호환을 차단하지 않도록 버전 관리 체계를 따르고 있는지 확인해야 합니다.

자세한 내용은 [AWS CDK 설명서](https://docs.aws.amazon.com/cdk/v2/guide/home.html)를 참조하세요.