Slide 1

Slide 1 text

AWS Cloud Control API & AWSCC Provider とぽらぼ(社内LT) 2025/04/03

Slide 2

Slide 2 text

y-ohgi 最近の日本つらい。 寝れない、低気圧 whoami

Slide 3

Slide 3 text

1. AWS Cloud Control API 2. AWSCC Provider 3. AWS Provider with AWSCC Provider 4. まとめ はなすこと

Slide 4

Slide 4 text

is 何? ● AWSサービスを標準化された方法で統一的に管理するための AWSサービス ○ AWS CLIからも叩ける AWS Cloud Control API $ aws cloudcontrol help : AVAILABLE COMMANDS o cancel-resource-request o create-resource o delete-resource o get-resource o get-resource-request-status o help o list-resource-requests o list-resources o update-resource o wait $ aws cloudcontrol create-resource \ --type-name AWS::EC2::VPC \ --desired-state '{"CidrBlock": "10.0.0.0/16", "Tags": [{"Key": "Name", "Value": "example"}]}' { "ProgressEvent": { "TypeName": "AWS::EC2::VPC", "RequestToken": "5543dadd-1e7c-4208-ba9e-xxxxxxxx", "Operation": "CREATE", "OperationStatus": "IN_PROGRESS", "EventTime": "2025-03-25T11:07:52.653000+00:00" } }

Slide 5

Slide 5 text

なぜ使うのか? ● 統一的なインターフェースで対応しているサービスに対して CRUD-Lで操作可能なことが嬉しい ● 基本的にCloudFormationのTypeとPropetiesを与えるイメージ ○ 語弊を恐れずに言うと、 CFnのcli/API版 ○ CFnのcli/APIなので、CFnができないことはできない。 ● 全てのAWSサービスが対応しているワケではないのでドキュメントを要確認 AWS Cloud Control API https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/supported-resources.html

Slide 6

Slide 6 text

なぜ使うのか? ● 正直人間が直接使うことはない(であろう) AWS Cloud Control API

Slide 7

Slide 7 text

1. AWS Cloud Control API 2. AWSCC Provider 3. AWS Provider with AWSCC Provider 4. まとめ はなすこと

Slide 8

Slide 8 text

Terraform/OpenTofuで活用 ● AWS Cloud Control API専用のProviderが存在する ● AWS Providerでは互換性のないリソースが存在する ○ その際にAWSCC Providerを利用する ● AWSCC Providerは独自の書き方をする ○ CFnの書き方に引っ張られるため AWSCC Provider https://registry.terraform.io/providers/hashicorp/awscc/latest

Slide 9

Slide 9 text

1. AWS Cloud Control API 2. AWSCC Provider 3. AWS Provider with AWSCC Provider 4. まとめ はなすこと

Slide 10

Slide 10 text

2つのProviderを利用する ● AWS ProviderとAWSCC Providerを併用することが可能 ● CFn/CDKからの移行に役に立つ ● 例としてCFnのAWS::EC2::KeyPair ○ CFnでKeyPairを作成すると、ParameterStoreに 秘密鍵が保管される。 ○ AWS Providerには同様のリソースがない ● サンプルコード ○ AWSCC Providerでキーペアを作成 ○ AWS ProviderでEC2を作成 AWS Provider with AWSCC Provider

Slide 11

Slide 11 text

1. AWS Cloud Control API 2. AWSCC Provider 3. AWS Provider with AWSCC Provider 4. まとめ はなすこと

Slide 12

Slide 12 text

● SDKやライブラリを作る人にとって統一的な APIを使用できるため嬉しい ● 正直Cloud Control APIを直接使わないと思う ● CDK/CFnからの移行 をする際にAWSCC Providerを使おう! ● AWSCC ProviderはAWS Providerと書き方が異なる ● 個人的にAWSCC Providerは最終手段にして、AWS Providerに移行し切っちゃった方が楽 な気はするzoi! まとめ