みなさん、こんにちは。サニービュー事業部の小寺です。

AWSを使う際にAPIを使っている方も多いのではないでしょうか。
今日お伝えするのは、クラウドコントロールAPIです。新しくリリースされたサービスについて、特徴などみていきたいと思います。
https://aws.amazon.com/jp/blogs/news/announcing-aws-cloud-control-api/

AWS クラウドコントロール APIとは

AWS クラウドコントロール APIとは、デベロッパーが AWS およびサードパーティーのサービスを簡単に管理できるようにするために設計された、一般的なアプリケーションプログラムインターフェイス (API) のセットです。

https://aws.amazon.com/jp/cloudcontrolapi/より引用

このアップデートのメリット

AWS のサービスが増えてきて、個別の APIを学習し、ナレッジを蓄積し、運用管理するのは大変になってきています。
特にサードパーティーのサービスも利用する場合には、AWS とサードパーティーのサービスの両方を一緒に管理するカスタムコードを書いて、運用を維持していかないといけません。
例えば、S3 CreateBucket API を使用して、Amazon Simple Storage Service (Amazon S3) バケットを作成できます。
また、Amazon Elastic Compute Cloud (Amazon EC2) RunInstances API を使用して EC2 インスタンスを作成することができます。

このように各サービスでAPIや使い方が分かれていて、管理も煩雑になってきます。

さらに、今までAWS が新しいサービスまたは機能をリリースする場合、新しい AWS のサービス API を学習、テストしてリリースする必要がありました。リリース後すぐにAPIを本番にリリースできるわけではなく、タイムラグが発生していました。

そんな課題を解決するのが、AWS クラウドコントロール APIです。

新しいクラウドコントロール API により、一貫した命名規則やサービスのライフサイクルを管理するため、以下の5つの動作を提供しています。

API operation AWS CLI command
CreateResource create-resource
DeleteResource delete-resource
GetResource get-resource
ListResources list-resources
UpdateResource update-resource

入力パラメータは、JSON を使用した統合リソースモデルによって定義されます。また、戻り値のタイプとエラーメッセージも全ての5つの動作で同じものに統一がされています。

さらに、クラウドコントロール APIでは今後は、新しいサービスリリースの当日に新しい AWS リソースをサポートする予定です。既存のサービスにも対応を進めていく予定になっています。

なお、クラウドコントロール API は、従来の AWS のサービスレベル API を置き換えることが目的ではないとのことです。
AWSによるとクラウドコントロール API はより使いやすく、より一貫性があり、新しいアプリケーションに使用するのがおすすめとのことです。

試してみるには

AWS Command Line Interface (AWS CLI)を使って、コマンドを試してみることができます。詳細はこちらより。

やっておいた方がよいこと

create-resource API コールに渡した client-token パラメータについてです。
Create、Update、および Delete のリクエストはすべて、クライアントトークンを受け入れます。

常にクライアントトークンを渡すことがお勧めです。クライアントトークンを渡しておけば、リトライが必要な場合にリクエストが明確になります。
もし、渡さない場合、ConcurrentOperationException や AlreadyExists などの予期しないエラーが発生する可能性があります。
また、クライアントトークンは、UUID を渡すなど、リクエストごとに常に一意になるようにすることがお勧めです。

利用可能なリージョンと料金

クラウドコントロール API は、中国を除くすべての AWS リージョンで利用することができます。 CloudWatch ログや Lambda 関数の呼び出しなど、基盤となる AWS リソースの利用の料金のみ支払いが必要です。また、サードパーティーのリソース (Datadog モニターや MongoDB Atlas クラスターなど) の使用に関連する、ハンドラーオペレーションの数とハンドラーオペレーションの期間にかかる料金のみ支払いが必要です。

まとめ

AWS クラウドコントロール APIとは、デベロッパーが AWS およびサードパーティーのサービスを簡単に管理できるようにするために設計された、一般的なアプリケーションプログラムインターフェイス (API) のセットです。

ここからは所感です。
とても便利なサービスがリリースされたと思います。

今までのAPIは引き続きサポートされるので、この新しいクラウドコントロールAPIへ今すぐ全面移行が必要というわけではないようですね。新しいアプリケーションを構築する際には、ぜひ活用していきたいと思います!

AWSをご利用いただくには、直接契約するより断然お得。
AWS利用料が5%割引、さらに日本円の請求書による支払いが可能です!