NRIネットコム Blog

NRIネットコム社員が様々な視点で、日々の気づきやナレッジを発信するメディアです

AWSサービスのServerlessオプションの特徴・比較・まとめ・プロビジョニングとの違い -Aurora、Neptune、EMR、Redshift、MSK、SageMaker Inference-

小西秀和です。
今回は「AWSサービスのServerlessオプション、オンデマンドモードの特徴・比較・まとめ・プロビジョニングとの違い」の記事の一部としてAWSサービスの一部でクラスターやインスタンスのプロビジョニングに対して用意されているServerlessオプションについて、主なAWSサービスごとに特徴、設定項目、料金、制限事項を見ていきたいと思います。

今回の記事の内容は次のような構成になっています。

Serverlessオプションが使える主なAWSサービス

本記事執筆時点でServerlessオプションが使える主なAWSサービスについて個別に特徴、設定項目、料金、制限事項を見ていきたいと思います。

Amazon Aurora Serverless v1

Amazon Auroraの概要

Amazon Auroraはクォーラムモデルによる分散システム技術とマルチAZデプロイメントによって高可用性・高耐久性と一貫性のあるハイパフォーマンスを両立し、バックトラック、クローン機能、Performance Insights、クロスリージョン配置、マルチマスター配置、Serverlessなど拡張性の高い機能を備えたMySQLおよびPostgreSQLと互換性のあるフルマネージド型リレーショナルデータベースエンジンです。
Amazon Aurora Serverless v1はAmazon Auroraにおける第1世代のServerless構成です。

Amazon Aurora Serverless v1の特徴

プロビジョニング型のAmazon Aurora DBクラスターを使用する場合には、DBインスタンスクラス、クラスター構成などのプロビジョニング設定と管理をする必要があり、リクエストを処理するにはクラスターを起動しておく必要があります。

一方でAmazon Aurora Serverless v1は少ない設定項目でリクエスト処理に応じてコンピューティングリソースとメモリリソースを自動的にスケーリングするServerlessなDBクラスターを作成します

ただし、Amazon Aurora Serverless v1は少ない項目の設定でDBクラスター全体をServerlessな構成にできる一方で、プロビジョニング型のDBクラスターとの互換性も低く、サポートしているAuroraの機能も少ないことも特徴です

Amazon Aurora Serverless v1の設定項目

AWSマネジメントコンソールからAmazon AuroraでServerless DBクラスターを作成するにはサポートしているAurora MySQLまたはAurora PostgreSQLのバージョンを指定した上で「DB instance class」のフィールドで指定します。
Amazon Aurora Serverless v1の作成に必要な主な設定項目には次のものがあります。
※Amazon Aurora ServerlessのキャパシティはAurora Capacity Unit(ACU)で設定するようになっており、1ACUで2GBメモリが割り当てられ、メモリ容量に比例したCPUとネットワークパフォーマンスが提供されます。

DB cluster identifier:一意のDBクラスター識別子  
Master username:DBインスタンスのマスターユーザーID
Master password:DBインスタンスのマスターユーザーパスワード  
Capacity range:使用するAurora Capacity Unit(ACU)の最小値と最大値を設定する
Autoscaling timeout and action:ACUを自動スケールするためのスケーリングポイント(処理処理中のトランザクションや実行時間の長いクエリがない瞬間)を探す時間(1分~10分)  
If the timeout expires before a scaling point is found, do this:スケーリングポイントが時間内に見つからなかった場合の動作。ACUの変更をロールバックする、または、ACUの変更を強制する。  
Scale the capacity to 0 ACUs when cluster is idle:クラスターがアイドル状態のときにACUを0にするかどうか  
Virtual private cloud (VPC):Amazon Aurora Serverless v1を配置するAmazon VPC  
DB Subnet group:Amazon Aurora Serverless v1で使用するDBサブネットグループ  
VPC security group:Amazon Aurora Serverless v1に設定するセキュリティグループ  
Web Service Data API;SQLクエリを実行するコネクションレスWeb Service Data APIのHTTPエンドポイントを有効にするかどうか  
Initial database name(任意):最初に作成するデータベース名  
DB cluster parameter group:DBクラスターのパラメータグループの指定  
Backup retention period:バックアップ保持期間(1~35日で指定)
AWS KMS key:暗号化に使用するAWS KMSキー名(暗号化は必須)  
Deletion protection:削除保護を有効化するかどうか  

Amazon Aurora Serverless v1の料金

Amazon Aurora Serverless v1のアジアパシフィック(東京, ap-northeast-1)リージョンにおけるvCPU、メモリの料金は次のようになっています。

<Aurora MySQL>
Aurora Capacity Unit(ACU):0.10 (USD/時間)

<Aurora PostgreSQL>
Aurora Capacity Unit(ACU):0.10 (USD/時間)

1ACUで2GBメモリが割り当てられ、メモリ容量に比例したCPUとネットワークパフォーマンスが提供されます。

プロビジョニング型とServerlessオプションの料金比較

プロビジョニング型とServerlessオプションの料金は適しているユースケースが異なるため、ユースケースに合わせて料金シミュレーションをすることが必要です。

ただ、ここでは単純に同様の条件下で料金を比較してみます。

Amazon Aurora Serverless v1で8ACU(16GBメモリ)をすべて使用する処理を1時間実行した料金を計算すると次のようになります。

8(ACU) * 0.10(USD/時間) * 1(時間) = 0.8 USD  

プロビジョニング型のAmazon Auroraクラスターで使用できる同程度のオンデマンドインスタンスタイプdb.r6g.large(2vCPU、16GBメモリ)の料金は0.313(USD/時間)となっています。
そのため、コンピューティング料金に関して継続的に同じリソース量をフル使用する場合はAmazon Aurora Serverless v1料金は割高といえます。
ただし、これは単純な机上比較であり、一般的に複数インスタンスから構成されるクラスターの使い方によっては一概に比較できないため、「AWSサービスのServerlessオプション、オンデマンドモードの特徴・比較・まとめ・プロビジョニングとの違い」の記事に記載したユースケースを考慮して実際のより具体的な使用パターンごとにコスト計画をする必要があるでしょう。

Amazon Aurora Serverless v1の制限事項

Amazon Aurora Serverless v1の主な制限事項には次のものが挙げられます。

  • Amazon Aurora Serverless v1を使用できるAuroraバージョンが次のものに限られる
    Aurora MySQL 5.6:Version 1.22.3
    Aurora MySQL 5.7:Version 2.08.3
    Aurora PostgreSQL 10:Version 10.18
    Aurora PostgreSQL 11:Version 11.13
  • プロビジョニング型のAmazon Auroraクラスターでサポートされている次の機能が使えない
    Aurora Global Databases、Aurora Multi-Master Clusters、Auroraレプリカ、AWS IAM Database Authentication、バックトラック、Database Activity Streams、Performance Insights、AWSマネジメントコンソールでのログ参照、バックアップウィンドウの優先設定、マルチAZ構成
  • AWS Database Migration Service(AWS DMS)とChange Data Capture(CDC)が使用できない
  • Aurora Serverless v1 DBクラスターのスナップショットをAmazon S3バケットにエクスポートできない
  • Aurora Serverless v1 DBクラスターのデータをAmazon S3バケットにエクスポートおよびインポートできない
  • Aurora Serverless v1 DBクラスターにIAMロールをアタッチできない
  • Aurora Serverless v1 DBクラスターの接続は24時間で切断される
  • その他、Aurora Serverless v1 MySQLとPostgreSQLでそれぞれ固有の制限事項がある

<参考資料>
AWS Documentation(Using Amazon Aurora Serverless v1 - Amazon Aurora)
Amazon Aurora Pricing

Amazon Aurora Serverless v2

Amazon Auroraの概要

Amazon Auroraはクォーラムモデルによる分散システム技術とマルチAZデプロイメントによって高可用性・高耐久性と一貫性のあるハイパフォーマンスを両立し、バックトラック、クローン機能、Performance Insights、クロスリージョン配置、マルチマスター配置、Serverlessなど拡張性の高い機能を備えたMySQLおよびPostgreSQLと互換性のあるフルマネージド型リレーショナルデータベースエンジンです。
Amazon Aurora Serverless v2はAmazon Auroraにおける第2世代のServerless構成です。

Amazon Aurora Serverless v2の特徴

Amazon Aurora Serverless v1はプロビジョニング型のDBクラスターと互換性が低く、クラスター全体を設定の少ないServerless構成にします

一方でAmazon Aurora Serverless v2はプロビジョニング型のDBクラスターと類似した設定項目およびAuroraの機能をもち、DBインスタンスクラスを設定すること無く、リクエスト処理に応じてコンピューティングリソースとメモリリソースを自動的にスケーリングします

Amazon Aurora Serverless v2ではDBクラスター内のDBインスタンス単位でServerless構成にできるため、Amazon Aurora Serverless v2をサポートしたAuroraバージョンでDBクラスターを作成するとプロビジョニング型のDBインスタンスとServerless DBインスタンスの両方を含むクラスターを構成できます

Amazon Aurora Serverless v2の設定項目

AWSマネジメントコンソールからAmazon AuroraでServerless DBクラスターを作成するにはサポートしているAurora MySQLまたはAurora PostgreSQLのバージョンを指定した上で「DB instance class」のフィールドで指定します。
Amazon Aurora Serverless v2の作成に必要な主な設定項目には次のものがあります。
※Amazon Aurora ServerlessのキャパシティはAurora Capacity Unit(ACU)で設定するようになっており、1ACUで2GBメモリが割り当てられ、メモリ容量に比例したCPUとネットワークパフォーマンスが提供されます。

DB cluster identifier:一意のDBクラスター識別子  
Master username:DBインスタンスのマスターユーザーID
Master password:DBインスタンスのマスターユーザーパスワード  
Capacity range:使用するAurora Capacity Unit(ACU)の最小値と最大値を設定する
Multi-AZ deployment:リーダー ノード、Auroraレプリカを別のAZに作成するマルチAZ構成を有効化するかどうか  
Compute resource:Amazon EC2インスタンスへの接続を自動的に設定するかどうか  
Network type:IPv4を使用するか、IPv4とIPv6を使用するかの選択  
Virtual private cloud (VPC):Amazon Aurora Serverless v2を配置するAmazon VPC  
DB Subnet group:Amazon Aurora Serverless v2で使用するDBサブネットグループ  
Public access:DBクラスターにパブリックIPアドレスを割り当てるかどうか
VPC security group:Amazon Aurora Serverless v2に設定するセキュリティグループ  
Database port;データベース接続に使用するポート番号  
Database authentication:Password authentication、Password and IAM database authentication
Performance Insights:データベースパフォーマンス監視機能であるPerformance Insightsの設定  
Initial database name(任意):最初に作成するデータベース名  
DB cluster parameter group:DBクラスターのパラメータグループの指定  
DB parameter group:DBパラメータグループの指定
Failover priority:フェイルオーバーの優先順を指定する階層の選択(Tier-0~Tier-15)  
Backup retention period:バックアップ保持期間(1~35日で指定)  
Enable encryption:暗号化を有効化するかどうか  
AWS KMS key:暗号化に使用するAWS KMSキー名(暗号化は任意)  
Log exports:Amazon CloudWatch Logsに出力するログの選択(Audit log、Error log、General log、Slow query log)  
Enable auto minor version upgrade:自動的なマイナーバージョンアップグレードを有効にするかどうか  
Maintenance window:メンテナンスウィンドウ(保留中の変更やメンテナンスを適用する期間)の指定  

Deletion protection:削除保護を有効化するかどうか  

Amazon Aurora Serverless v2の料金

Amazon Aurora Serverless v2のアジアパシフィック(東京, ap-northeast-1)リージョンにおけるvCPU、メモリの料金は次のようになっています。

<Aurora MySQL>
Aurora Capacity Unit(ACU):0.20 (USD/時間)

<Aurora PostgreSQL>
Aurora Capacity Unit(ACU):0.20 (USD/時間)

1ACUで2GBメモリが割り当てられ、メモリ容量に比例したCPUとネットワークパフォーマンスが提供されます。

プロビジョニング型とServerlessオプションの料金比較

プロビジョニング型とServerlessオプションの料金は適しているユースケースが異なるため、ユースケースに合わせて料金シミュレーションをすることが必要です。

ただ、ここでは単純に同様の条件下で料金を比較してみます。

Amazon Aurora Serverless v2で8ACU(16GBメモリ)をすべて使用する処理を1時間実行した料金を計算すると次のようになります。

8(ACU) * 0.20(USD/時間) * 1(時間) = 1.6 USD  

プロビジョニング型のAmazon Auroraクラスターで使用できる同程度のオンデマンドインスタンスタイプdb.r6g.large(2vCPU、16GBメモリ)の料金は0.313(USD/時間)となっています。
そのため、コンピューティング料金に関して継続的に同じリソース量をフル使用する場合はAmazon Aurora Serverless v2料金は割高といえます。
ただし、これは単純な机上比較であり、一般的に複数インスタンスから構成されるクラスターの使い方によっては一概に比較できないため、「AWSサービスのServerlessオプション、オンデマンドモードの特徴・比較・まとめ・プロビジョニングとの違い」の記事に記載したユースケースを考慮して実際のより具体的な使用パターンごとにコスト計画をする必要があるでしょう。

Amazon Aurora Serverless v2の制限事項

Amazon Aurora Serverless v2の主な制限事項には次のものが挙げられます。

  • Amazon Aurora Serverless v2を使用できるAuroraバージョンが次のものに限られる
    Aurora MySQL Version 3:Version 3.02.0
    Aurora PostgreSQL 13:Version 13.6以降
    Aurora PostgreSQL 14:Version 14.3以降
  • プロビジョニング型のAmazon Auroraクラスターでサポートされている次の機能が使えない
    Database Activity Streams、バックトラック(Aurora MySQL Version 3のみ)
  • その他、Aurora Serverless v2 MySQLとPostgreSQLでそれぞれ固有の制限事項がある

<参考資料>
AWS Documentation(Using Aurora Serverless v2 - Amazon Aurora)
Amazon Aurora Pricing

Amazon Neptune Serverless

Amazon Neptuneの概要

Amazon Neptuneは一般的なグラフクエリ言語であるApache TinkerPop GremlinとW3CのSPARQLをサポートした高速で信頼性が高いフルマネージドグラフデータベースサービスです。
Amazon Neptune ServerlessはAmazon NeptuneにおけるServerless構成です。

Amazon Neptune Serverlessの特徴

Amazon Neptune ServerlessはAmazon Aurora Serverless v2とよく似た仕組みで構成されています

Amazon Neptune Serverlessはプロビジョニング型のDBクラスターと類似した設定項目およびNeptuneの機能をもち、DBインスタンスクラスを設定すること無く、リクエスト処理に応じてコンピューティングリソースとメモリリソースを自動的にスケーリングします

Amazon Neptune ServerlessではDBクラスター内のDBインスタンス単位でServerless構成にできるため、Amazon Neptune ServerlessをサポートしたNeptuneバージョンでDBクラスターを作成するとプロビジョニング型のDBインスタンスとServerless DBインスタンスの両方を含むクラスターを構成できます

Amazon Neptune Serverlessの設定項目

AWSマネジメントコンソールからAmazon NeptuneでServerless DBクラスターを作成するには「Engine type」のフィールドでServerlessを指定します。
Amazon Neptune Serverlessの作成に必要な主な設定項目には次のものがあります。
※Amazon Neptune ServerlessのキャパシティはNeptune Capacity Unit(NCU)で設定するようになっており、1NCUで2GBメモリが割り当てられ、メモリ容量に比例したCPUとネットワークパフォーマンスが提供されます。

DB cluster identifier:一意のDBクラスター識別子  
Capacity settings:使用するNeptune Capacity Unit(NCU)の最小値と最大値を設定する  
Multi-AZ deployment:Neptuneレプリカを別のAZに作成するマルチAZ構成を有効化するかどうか  
Virtual Private Cloud (VPC):Amazon Neptune Serverlessを配置するAmazon VPC  
Subnet group:Amazon Neptune Serverlessで使用するDBサブネットグループ  
VPC security group:Amazon Neptune Serverlessに設定するセキュリティグループ  
Database port:データベース接続に使用するポート番号  
Create notebook:Neptuneクラスターのデータをクエリ・視覚化するNeptuneノートブックを作成するかどうか  
DB instance identifier:一意のDBインスタンス識別子  
DB cluster parameter group:DBクラスターのパラメータグループの指定  
DB parameter group:DBパラメータグループの指定  
Failover priority:フェイルオーバーの優先順を指定する階層の選択(Tier-0~Tier-15)  
Backup retention period:バックアップ保持期間(1~35日で指定)  
Log exports:Amazon CloudWatch Logsに出力するログの選択(Audit log)  
Enable auto minor version upgrade:自動的なマイナーバージョンアップグレードを有効にするかどうか  
Maintenance window:メンテナンスウィンドウ(保留中の変更やメンテナンスを適用する期間)の指定  
Deletion protection:削除保護を有効化するかどうか  

Amazon Neptune Serverlessの料金

Amazon Neptune Serverlessのアジアパシフィック(東京, ap-northeast-1)リージョンにおけるvCPU、メモリの料金は次のようになっています。

Neptune Capacity Unit(NCU):0.1941(USD/時間)  

1NCUで2GBメモリが割り当てられ、メモリ容量に比例したCPUとネットワークパフォーマンスが提供されます。

プロビジョニング型とServerlessオプションの料金比較

プロビジョニング型とServerlessオプションの料金は適しているユースケースが異なるため、ユースケースに合わせて料金シミュレーションをすることが必要です。

ただ、ここでは単純に同様の条件下で料金を比較してみます。

Amazon Neptune Serverlessで8NCU(16GBメモリ)をすべて使用する処理を1時間実行した料金を計算すると次のようになります。

8(NCU) * 0.1941(USD/時間) * 1(時間) = 1.5528 USD  

プロビジョニング型のAmazon Neptuneクラスターで使用できる同程度のオンデマンドインスタンスタイプdb.r6g.large(2vCPU、16GBメモリ)の料金は0.3967(USD/時間)となっています。
そのため、コンピューティング料金に関して継続的に同じリソース量をフル使用する場合はAmazon Neptune Serverless料金は割高といえます。
ただし、これは単純な机上比較であり、一般的に複数インスタンスから構成されるクラスターの使い方によっては一概に比較できないため、「AWSサービスのServerlessオプション、オンデマンドモードの特徴・比較・まとめ・プロビジョニングとの違い」の記事に記載したユースケースを考慮して実際のより具体的な使用パターンごとにコスト計画をする必要があるでしょう。

Amazon Neptune Serverlessの制限事項

Amazon Neptune Serverlessの主な制限事項には次のものが挙げられます。

  • Amazon Neptune Serverlessを使用できるNeptuneバージョンが次のものに限られる
    Neptune 1.2.0.1.R1

<参考資料>
AWS Documentation(Amazon Neptune Serverless - Amazon Neptune)
Amazon Neptune Pricing

Amazon EMR Serverless

Amazon EMRの概要

Amazon EMRは必要十分なキャパシティのプロビジョニングや変化するコンピューティング需要を管理するスケーリングルールを設定し、Apache Spark、Apache Hive、Prestoといったオープンソースフレームワークを使用したデータ処理、インタラクティブ分析、機械学習などを実行できるビッグデータプラットフォームサービスです。
Amazon EMR ServerlessはAmazon EMRのServerless構成です。

Amazon EMR Serverlessの特徴

Amazon EMRをAmazon EC2インスタンスから構成されるクラスターで使用する場合には、インスタンスタイプ、クラスター構成などのプロビジョニング設定と管理をする必要があり、リクエストを処理するにはクラスターを起動しておく必要があります。
また、Amazon EC2を使用したAmazon EMRクラスターでAuto Scalingを使用するにはリソースの構成やしきい値などのスケーリングポリシーを設定する必要があり、一部のインスタンスが起動していることを前提としてインスタンスを増減させることでスケールアウトさせます。

一方でAmazon EMR Serverlessは少ない設定項目でリクエスト処理に応じてコンピューティングリソースとメモリリソースを自動的にスケーリングします

Amazon EC2を使用したAmazon EMRクラスターはApache Spark、Apache Hiveに加えて様々なフレームワークをサポートし、単一のアベイラビリティーゾーン(AZ)を使用します。

それに対し、Amazon EMR Serverlessでサポートしているフレームワークは本記事執筆時点でApache Spark、Apache Hiveがあり、複数のアベイラビリティーゾーン(AZ)を使用したAZ障害耐性があります

Amazon EMR Serverlessの設定項目

Amazon EMR ServerlessをAWSマネジメントコンソールから作成するには無料のEMR Studioを使用します。
Amazon EMR Serverlessの作成に必要な主な設定項目には次のものがあります。

Name:Amazon EMR Serverlessアプリケーションの名称  
Type:Apache Spark、Apache Hiveの選択  
Release version:EMRのバージョン  
Pre-initialized capacity(任意):アプリケーション起動時に即座に適用するドライバーとワーカーのリソース(CPU、メモリ、ディスク容量)  
Application limits(任意):同時実行されているすべてのジョブで使用できる最大のCPU、メモリ、ディスク容量  
Application behavior(任意):ジョブの送信時にアプリケーションを自動的に開始するかの有無、アプリケーションがアイドル状態になった後に自動停止するまでの時間(分)  
Network connections(任意):アプリケーションがアクセスするAmazon VPC  

Amazon EMR Serverlessの料金

Amazon EMR Serverlessのアジアパシフィック(東京, ap-northeast-1)リージョンにおけるvCPU、メモリの料金は次のようになっています。

vCPU:0.065728 (USD/vCPU数・時間)  
メモリ:0.007189(USD/GB・時間)  
プロビジョニング型とServerlessオプションの料金比較

プロビジョニング型とServerlessオプションの料金は適しているユースケースが異なるため、ユースケースに合わせて料金シミュレーションをすることが必要です。

ただ、ここでは単純に同様の条件下で料金を比較してみます。

Amazon EMR Serverlessで2vCPU、8GBメモリをすべて使用するジョブを1時間実行した料金を計算すると次のようになります。

2(vCPU) x 1(時間) x 0.065728 (USD/vCPU数・時間) = 0.1315 USD  
8(GBメモリ) x 1(時間) x 0.007189 (USD/GB・時間) = 0.0575 USD  
0.1315 USD + 0.0575 USD = 0.189 USD  

Amazon EC2を使用したAmazon EMRクラスターで使用できるオンデマンドインスタンスタイプm6g.xlarge(2vCPU、8GBメモリ)のEMR料金は0.039(USD/時間)となっています。

そのため、コンピューティング料金に関して継続的に同じリソース量をフル使用する場合はAmazon EMR Serverless料金は割高といえます。
ただし、これは単純な机上比較であり、一般的に複数インスタンスから構成されるクラスターの使い方によっては一概に比較できないため、「AWSサービスのServerlessオプション、オンデマンドモードの特徴・比較・まとめ・プロビジョニングとの違い」の記事に記載したユースケースを考慮して実際のより具体的な使用パターンごとにコスト計画をする必要があるでしょう。

Amazon EMR Serverlessの制限事項

Amazon EMR Serverlessの主な制限事項には次のものが挙げられます。

  • 使用できるフレームワークがApache Spark、Apache Hiveに限定される
  • EMR Studioやその他のノートブックサービスからのインタラクティブなワークロード実行がサポートされていない
  • HDFSをサポートしていない
  • emr-dynamodb-connectorをサポートしていない
  • ジョブ実行時間はデフォルトで12時間(executionTimeoutInMinutesプロパティで変更が可能)

<参考資料>
AWS Documentation(Amazon EMR Serverless User Guide - Amazon EMR)
Amazon EMR Pricing

Amazon Redshift Serverless

Amazon Redshiftの概要

Amazon Redshiftは標準SQLと既存のビジネスインテリジェンス(BI)ツールを使用して、ペタバイト規模のデータを迅速かつ費用効果の高い方法で分析できるフルマネージド型データウェアハウスサービスです。
Amazon Redshift ServerlessはAmazon RedshiftのServerless構成です。

Amazon Redshift Serverlessの特徴

従来のAmazon Redshiftクラスターは、ノードタイプ、クラスター構成などのプロビジョニング設定と管理をする必要があり、リクエストを処理するにはクラスターを起動しておく必要があります。
また、Amazon Redshiftクラスターでのスケーリング方法にはワークロード管理(WLM)を使用した同時ユーザーと同時クエリの一貫した高速なパフォーマンスを提供する同時実行スケーリング(Concurrency Scaling)がありますが、リクエストを処理するためにクラスターを起動しておくことには変わりありません。

一方でAmazon Redshift Serverlessはノードタイプ、パラメータグループ、メンテナンスウィンドウ、ワークロード管理(WLM)といった設定をする必要がなく、少ない設定項目でリクエスト処理に応じてコンピューティング性能(Redshift Processing Unit)を自動的にスケーリングします

また、Amazon Redshift Serverlessは従来のAmazon Redshiftクラスターと同様にAmazon Redshift Spectrum、AWS KMSカスタマーマネージドキーによる暗号化、IAMまたはRedshiftユーザーによるユーザー管理、JDBCおよびODBC接続が可能です。

さらにAmazon Redshift ServerlessはAmazon Redshift Data API、ポイントインタイムリカバリ、新しいシステムビュー監視、Amazon CloudWatch Logsによる監査ログをサポートしています。

Amazon Redshift Serverlessの設定項目

AWSマネジメントコンソールにおけるAmazon Redshift Serverlessの作成に必要な主な設定項目には次のものがあります。

Namespace name:一意のネームスペース名。  
Database name:最初のデータベース名。「dev」の固定値。  
Admin user credentials(任意):Admin userのnameとpasswordの設定。設定しなければデフォルトのIAM認証情報を使用  
Associated IAM roles(任意):Amazon Redshift Serverless Endpointに付与するIAMロール(LOAD、UNLOAD、COPY、SELECTなどの権限を与える)  
Customize encryption settings(任意):AWS KMSカスタマーマネージドキーを使用した暗号化の設定  
Audit logging(任意):監査ログ(User log、Connection log、User activity log)を出力するかの設定  
Workgroup name:一意のワークグループ名。  
Virtual private cloud(VPC):Amazon Redshift Serverlessを配置するAmazon VPC  
VPC security groups:Amazon Redshift Serverlessに設定するセキュリティグループ  
Subnet:Amazon VPCで使用するサブネット(異なるアベイラビリティゾーンを使用する3つ以上のサブネットを指定)  
Enhanced VPC routing:データベースとデータリポジトリ間のトラフィックをAmazon VPC経由に強制するかの設定  

Amazon Redshift Serverlessの料金

Amazon Redshift Serverlessのアジアパシフィック(東京, ap-northeast-1)リージョンにおけるvCPU、メモリの料金は次のようになっています。

Redshift Processing Unit(RPU):0.494(USD/RPU・時間)  

1RPUで16GBメモリが割り当てられ、メモリ容量に比例したCPUとネットワークパフォーマンスが提供されます。
※AWSの一部資料では1RPUで16GBメモリ、2vCPUが割り当てられるとの記載があります。
 最新のDWHおよびデータレイク動向について

RPUのデフォルト値は128RPUで設定されますが、AWSマネジメントコンソールまたはAmazon Redshift APIでベースを32RPUから512RPUまで8ユニット(32、40、48~最大512)ごとに調整できます。

プロビジョニング型とServerlessオプションの料金比較

プロビジョニング型とServerlessオプションの料金は適しているユースケースが異なるため、ユースケースに合わせて料金シミュレーションをすることが必要です。

ただ、ここでは単純に同様の条件下で料金を比較してみます。

プロビジョニング型のAmazon Redshiftクラスターで使用できる最大メモリサイズのオンデマンドインスタンスタイプはra3.16xlarge(48vCPU、384GBメモリ)の料金は15.347(USD/時間)となっています。

Amazon Redshift Serverlessの最小構成である32RPU(512GBメモリ)をすべて使用する処理を1時間実行した料金を計算すると次のようになります。

32(RPU) * 0.494(USD/RPU・時間) * 1(時間) = 15.808 USD  

また、Amazon Redshift Serverlessの最小構成が32RPUであるため、不可能な構成ではありますがra3.16xlargeにあわせて24RPU(384GBメモリ)をすべて使用する処理を1時間実行すると仮定した料金を計算すると次のようになります。

24(RPU) * 0.494(USD/RPU・時間) * 1(時間) = 11.856 USD  

これらのことから、コンピューティング料金に関して継続的に同じリソース量をフル使用する場合でもAmazon Redshift Serverlessの料金はプロビジョニング型のAmazon Redshiftクラスターに比べて割安といえます。

また、上記でも触れたように本記事執筆時点でプロビジョニング型のAmazon Redshiftクラスターで使用できる最大メモリサイズのオンデマンドインスタンスタイプはra3.16xlarge(48vCPU、384GBメモリ)です。

そのため、他のAWSサービスのServerlessオプションの位置づけとは異なり、Amazon Redshift Serverlessはプロビジョニング型のオンデマンドインスタンスの最大メモリサイズを超えるようなユースケースに対応するための構成とも言えます。

もちろん、Amazon Redshiftクラスターは複数のインスタンスで構成することができ、使い方によっては一概にAmazon Redshift Serverlessが割安とは言えないため、「AWSサービスのServerlessオプション、オンデマンドモードの特徴・比較・まとめ・プロビジョニングとの違い」の記事に記載したユースケースを考慮して実際のより具体的な使用パターンごとにコスト計画をする必要があるでしょう。

Amazon Redshift Serverlessの制限事項

Amazon EMR Serverlessの主な制限事項には次のものが挙げられます。

  • Amazon VPCで使用するサブネットを異なるアベイラビリティゾーンで3つ以上指定する必要がある
  • Advanced Query Accelerator(AQUA)はサポートされていない
  • ソフトウェアのバージョンアップデートが自動的に適用される(バージョンアップデートで接続やクエリ実行が中断されることはない)
  • カーソルを宣言するとAmazon Redshift Serverlessの結果セットのサイズがDECLAREに指定される
  • 最大クエリ実行時間が86,399秒(24時間)。これを超えるとクエリがタイムアウトする。
  • その他、Amazon Redshift Serverless独自のクォータがある

<参考資料>
AWS Documentation(Amazon Redshift Serverless - Amazon Redshift)
Amazon Redshift Pricing

Amazon Managed Streaming for Apache Kafka(Amazon MSK) Serverless

Amazon MSKの概要

Amazon Managed Streaming for Apache Kafka(Amazon MSK)はApache Kafkaを使用してストリーミングデータを処理するアプリケーションを構築および実行できるようにするフルマネージドサービスです。
Amazon MSK ServerlessはAmazon MSKのServerless構成です。

Amazon MSK Serverlessの特徴

プロビジョニングタイプのAmazon MSKクラスターは、ブローカータイプ、クラスター構成などのプロビジョニング設定と管理をする必要があり、リクエストを処理するにはクラスターを起動しておく必要があります。
また、Amazon MSKのAuto ScalingでAuto Scalingを使用するにはリソースの構成やしきい値などのスケーリングポリシーを設定する必要があり、一部のインスタンスが起動していることを前提としてインスタンスを増減させることでスケールアウトさせます。

一方でAmazon MSK Serverlessは少ない設定項目でブローカーインスタンスタイプを指定せず、クラスターごとに最大200MBpsの書き込みキャパシティと400MBpsの読み込みキャパシティ、パーティションごとに最大5MBpsのインスタント書き込みキャパシティと10MBpsのインスタント読み込みキャパシティを割り当て、スループット容量までリクエストに応じて自動的にスケーリングします

Amazon MSK Serverlessの設定項目

AWSマネジメントコンソールにおけるAmazon MSK Serverlessの作成に必要な主な設定項目には次のものがあります。

Cluster name:一意のクラスター名  
VPC:Amazon MSK Serverlessクラスターを配置するAmazon VPC  
Subnets:Amazon VPCで使用するサブネット(異なるアベイラビリティゾーンを使用する3つ以上のサブネットを指定) 
Security groups:Amazon MSK Serverlessクラスターに設定するVPCセキュリティグループ  

Amazon MSK Serverlessの料金

Amazon MSK Serverlessのアジアパシフィック(東京, ap-northeast-1)リージョンにおける料金は次のようになっています。

クラスター:0.9675(USD/クラスター数・時間)
パーティション:0.0019(USD/パーティション数・時間)
ストレージ:0.12(USD/GB・月)  
データ(イン):0.129(USD/GB)  
データ(アウト):0.0645(USD/GB)  
プロビジョニング型とServerlessオプションの料金比較

プロビジョニング型とServerlessオプションの料金は適しているユースケースが異なるため、ユースケースに合わせて料金シミュレーションをすることが必要です。

ただ、ここでは単純に同様の条件下で料金を比較してみます。
Amazon MSK Serverlessとプロビジョニング型Amazon MSKクラスターの料金を次の条件で比較してみます。

  • 1クラスター、5トピック、20パーティションで730時間(1か月)継続して処理
  • データはインターネットから受信し、リージョン内のコンシューマーに送信する
  • データの受信:1(GB/時間)
  • データの送信:1(GB/時間)
  • データ保持日数:24時間(1日)
  • ストレージ容量(クラスターあたり):150(GB/月)
  • プロビジョニング型Amazon MSKクラスターはm5.largeブローカータイプの3ノードを使用する

この条件下でAmazon MSK Serverlessとプロビジョニング型Amazon MSKクラスターのアジアパシフィック(東京, ap-northeast-1)リージョンにおける料金を算出すると以下のようになります。

<Amazon MSK Serverlessの料金>
クラスター料金:0.9675(USD/時間) * 730(時間) = 706.275(USD/月)  
パーティション料金:0.0019(USD/パーティション数・時間) * 5(トピック) * 20(パーティション) * 730(時間) = 138.7(USD/時間)  
ストレージ料金:0.12(USD/GB・月) * 150(GB/月) = 18(USD/月)  
データ(イン)料金:0.129(USD/GB) * 1(GB/時間) * 730(時間) = 94.17(USD/月)  
データ(アウト)料金:0.0645(USD/GB) * 1(GB/時間) * 730(時間) = 47.085(USD/月)  
クラスター料金 + パーティション料金 + ストレージ料金 + データ(イン)料金 + データ(アウト)料金 = 1004.23(USD/月)

<プロビジョニング型Amazon MSKクラスターの料金>
クラスター料金:3(ブローカーノード) * 0.271(USD/時間) * 730(時間) = 593.49(USD/月)  
ストレージ料金:0.12(USD/GB・月) * 150(GB/月) = 18(USD/月)  
受信データ転送料金(インターネット):無料  
送信データ転送料金(リージョン内):730(GB/月) * 0.01(USD/GBアウトバウンド) + 730(GB/月) * 0.01(USD/GBインバウンド) = 14.60(USD/月)  
クラスター料金 + ストレージ料金 + 受信データ転送料金(インターネット) + 送信データ転送料金(リージョン内)= 626.09(USD/月)

このことから断続的にプロビジョニング型Amazon MSKクラスターを余すことなくフル使用する場合はAmazon MSK Serverlessは割高といえます。
また、Amazon MSK Serverlessでは「クラスター料金」の変動が少ないのに対して「データ(イン)」「データ(アウト)」に関係するデータサイズが料金に大きな影響を与えることがわかります。
ただし、Amazon MSK Serverlessの料金は多くの項目から計算するため、プロビジョニング型Amazon MSKクラスターの比較は他のServerlessオプションを提供するAWSサービスよりも複雑です。

そのため、「AWSサービスのServerlessオプション、オンデマンドモードの特徴・比較・まとめ・プロビジョニングとの違い」の記事に記載したユースケースを考慮して実際のより具体的な使用パターンごとにコスト計画をする必要があるでしょう。

Amazon MSK Serverlessの制限事項

Amazon MSK Serverlessの主な制限事項には次のものが挙げられます。

  • ブローカーインスタンスタイプの指定が不要である一方で次のスループットに関するクォータが決められている
<スループットに関するクォータ>
クラスターあたりの最大入力スループット:200MBps
クラスターあたりの最大出力スループット:400MBps
パーティションあたりの最大入力スループット:5MBps
パーティションあたりの最大出力スループット:10MBps

<その他のクォータ>
保存の最長期間:24時間(サポートケースにより調整可能)  
クライアント接続の最大数:1000
接続の最大試行:100/秒
最大メッセージサイズ(MB):8MB
最大リクエストサイズ:100MB
最大リクエストレート:15,000/秒
リクエストあたりの最大フェッチバイト数:55MB
ユーザーグループの最大数:500
パーティションの最大数:120(サポートケースにより調整可能)  
パーティションの作成と削除の最大レート:5分あたり120
最大パーティションサイズ:250GB
サーバーレスクラスターあたりのクライアントVPCの最大数:5
アカウントあたりのサーバーレスクラスターの最大数:3

<参考資料>
AWS Documentation(MSK Serverless - Amazon Managed Streaming for Apache Kafka)
Amazon MSK Pricing

Amazon SageMaker Serverless Inference(Amazon SageMakerサーバーレス推論)

Amazon SageMakerの概要

Amazon SageMakerは機械学習(ML)モデルを迅速に構築、トレーニング、デプロイできるようにするフルマネージドサービスです。
Amazon SageMakerはインスタンスを実行し、エンドポイントをプロビジョニングしてリアルタイム推論をします。
Amazon SageMaker Serverless InferenceはAmazon SageMakerにおける推論のServerless構成です。

Amazon SageMaker Serverless Inferenceの特徴

Amazon SageMakerでリアルタイム推論(Amazon SageMaker Real-Time Inference)をするにはエンドポイントをプロビジョニングして、インスタンスを起動しておく必要があります。
リアルタイム推論のエンドポイントはフルマネージドで自動的にスケーリングしますが、リアルタイム推論を実行するためにインスタンスを起動しておくことには変わりありません。

一方でAmazon SageMaker Serverless Inferenceは少ない設定項目でトラフィックに応じてコンピューティングリソースとメモリリソースを事前に選択したメモリサイズまで自動的にスケーリングするサーバーレス推論を提供します

Amazon SageMaker Serverless Inferenceの設定項目

Amazon SageMaker Serverless Inferenceを使用するにはエンドポイントタイプをServerlessにしたエンドポイント設定でエンドポイントを作成し、モデルと関連付けます。
Amazon SageMaker Serverless Inferenceを使用するために必要なエンドポイント設定の項目には次のものがあります。

メモリサイズ:設定するメモリサイズ(1024、2048、3072、4096、5120、6144から選択)  
最大同時実行数:エンドポイントを同時呼び出せる最大数  

Amazon SageMaker Serverless Inferenceの料金

mazon SageMaker Serverless Inferenceのアジアパシフィック(東京, ap-northeast-1)リージョンにおけるメモリサイズおよびデータ処理量の料金は次のようになっています。

<選択可能なメモリサイズ>
1024(MB):0.0000200 (USD/秒)
2048(MB):0.0000400 (USD/秒)
3072(MB):0.0000600 (USD/秒)
4096(MB):0.0000800 (USD/秒)
5120(MB):0.0001000 (USD/秒)
6144(MB):0.0001200 (USD/秒)

※メモリ容量に比例したvCPUとネットワークパフォーマンスが提供されます。  

<データ処理量>
データ処理量(入力):0.016(USD/GB)
データ処理量(出力):0.016(USD/GB)
プロビジョニング型とServerlessオプションの料金比較

プロビジョニング型とServerlessオプションの料金は適しているユースケースが異なるため、ユースケースに合わせて料金シミュレーションをすることが必要です。

ただ、ここでは単純に同様の条件下で料金を比較してみます。
Amazon SageMaker Serverless Inference(サーバーレス推論)とAmazon SageMaker Real-Time Inference(リアルタイム推論)の料金を次の条件で比較してみます。

  • 5(リクエスト/秒)に対して各0.2(秒/リクエスト)を730時間(1か月)継続する推論時間:5(リクエスト/秒) * 730(時間) * 60(分) * 60(秒) * 0.2(秒/リクエスト) = 2,628,000(秒)
  • 入力データ量:10(GB)
  • 出力データ量:10(GB)
  • Serverless Inferenceは4GBメモリを割り当てる
  • Real-Time Inferenceは1モデル、1エンドポイント、1インスタンス(ml.c6g.large(vCPU:2、メモリ:4GB))を730時間(1か月)実行する

この条件下でAmazon SageMaker Serverless InferenceとAmazon SageMaker Real-Time Inferenceのアジアパシフィック(東京, ap-northeast-1)リージョンにおける料金を算出すると以下のようになります。

<Amazon SageMaker Serverless Inferenceの料金>
コンピューティング料金:0.0000800(USD/秒) * 2,628,000(秒) = 210.24(USD/月)  
データ処理料金(入力):0.016(USD/GB) * 10(GB/月) = 0.16(USD/月)  
データ処理料金(出力):0.016(USD/GB) * 10(GB/月) = 0.16(USD/月)  
コンピューティング料金 + データ処理料金(入力) + データ処理料金(出力) = 210.56(USD/月)  

<Amazon SageMaker Real-Time Inferenceの料金>
コンピューティング料金:0.10272(USD/時間) * RoundUp{1(モデル) / 1(エンドポイント/モデル)} * 1(インスタンス/エンドポイント) * 730(時間) = 74.9856(USD/月)  
データ処理料金(入力):0.016(USD/GB) * 10(GB/月) = 0.16(USD/月)  
データ処理料金(出力):0.016(USD/GB) * 10(GB/月) = 0.16(USD/月)  
コンピューティング料金 + データ処理料金(入力) + データ処理料金(出力) = 75.3056(USD/月) 

このことから、コンピューティング料金に関しては断続的にAmazon SageMaker Real-Time Inferenceを余すことなくフル使用する場合はAmazon SageMaker Serverless Inferenceは割高といえます。
上記の条件下のAmazon SageMaker Serverless Inferenceでは推論時間が現状より約1/3倍になった場合にAmazon SageMaker Real-Time Inferenceの料金より低くなります。
ただし、これは単純な机上比較で使い方によっては一概に割高とは言えないため、「AWSサービスのServerlessオプション、オンデマンドモードの特徴・比較・まとめ・プロビジョニングとの違い」の記事に記載したユースケースを考慮して実際のより具体的な使用パターンごとにコスト計画をする必要があるでしょう。

Amazon SageMaker Serverless Inferenceの制限事項

Amazon MSK Serverlessの主な制限事項には次のものが挙げられます。

  • メモリリソースとそれに比例するコンピューティングリソースは事前にメモリサイズを選択する必要がある(上限なくスケールするわけではない)
  • リアルタイム推論でサポートされている次のような機能をサポートしていない
    GPU、AWSマーケットプレイスモデルパッケージ、プライベートDockerレジストリ、マルチモデルエンドポイント、VPC設定、ネットワーク分離、データキャプチャ、複数の本番バリアント、モデル監視、インターフェイスパイプラインなど

<参考資料>
AWS Documentation(Serverless Inference - Amazon SageMaker)
Amazon SageMaker Pricing

まとめ

今回は「AWSサービスのServerlessオプション、オンデマンドモードの特徴・比較・まとめ・プロビジョニングとの違い」の記事の一部としてクラスターやインスタンスをプロビジョニングするAWSサービスの一部で用意されているServerlessオプションについてまとめました。

AWSサービスのServerlessオプション、オンデマンドモードの特徴・比較・まとめ・プロビジョニングとの違い」ではServerlessオプション、オンデマンドモードの特徴、共通点、ユースケース、比較についてまとめていますのであわせて御覧ください。

Hidekazu Konishi, ALL AWS Certifications Engineer

執筆者小西秀和

ALL AWS Certifications Engineer(AWS認定全取得)の知識をベースにAWSクラウドの活用に取り組んでいます。

hidekazu-konishi.comをはてなブックマークに追加