サーバーレス・インスタンスにおけるアーキテクチャーと概念
このトピックでは、IBM Analytics Engineサーバーレス・インスタンスのアーキテクチャーを示し、いくつかの主要な概念と定義について説明します。
インスタンス・アーキテクチャー
IBM Analytics Engineサービスは、IBM Cloud®IDおよびアクセス管理(IAM)を使用して管理されます。 IBM Cloudアカウント所有者には、アカウント管理者役割が割り当てられます。
IBM Cloudアカウントを使用すると、以下を使用してサーバーレスAnalytics Engineインスタンスをプロビジョンおよび管理できます:
- IBM Cloudコンソール
- CLI
- REST API
APIゲートウェイを介してアクセスされるコントロール・プレーン内のAnalytics Engineマイクロサービスは、インスタンスの作成、キャパシティー・プロビジョニング、カスタマイズ、およびランタイム管理を処理し、Sparkアプリケーションはデータ・プレーン内の分離された名前空間で実行されます。 サブミットした各Sparkアプリケーションは、独自のSparkクラスター(Sparkマスター・ノードと実行プログラム・ノードの組み合わせ)で実行されます。 分離とネットワーク・アクセスを参照してください。
各Analytics Engineインスタンスは、インスタンス内で実行されるすべてのアプリケーションからアクセス可能なインスタンス関連データのIBM Cloud Object Storageインスタンスに関連付けられます。 現在、すべてのSparkイベントはこのインスタンスにも保管されます。 Sparkアプリケーション・ログは、Log Analysisログ・サーバーに集約されます。
主なコンセプト
IBM Analytics Engine サーバーレス・インスタンスを使用すると、必要に応じてApache Sparkクラスターをスピンアップし、SparkランタイムおよびデフォルトのSpark構成オプションをカスタマイズできます。
以下のセクションでは、サーバーレス・インスタンスをプロビジョニングする際の主要な概念について説明します。
IBM Analytics Engine サービス・インスタンス
IBM Cloud®サービスは、コードを実行するためのデータベース、メッセージング、Webソフトウェア、またはアプリケーション管理やモニタリング機能など、すぐに使える機能を提供するクラウド拡張機能です。 サービスでは、通常、インストールおよびメンテナンスは必要ありません。またアプリケーションを作成するためにサービスを結合できます。 サービスのインスタンスは、特定のアプリケーションまたはサービス用に予約されているリソースで構成されるエンティティーです。
カタログから IBM Analytics Engine を作成する場合、サービス・インスタンスに任意の名前を付け、インスタンスに関連付けるデフォルトの Spark ランタイムを選択し、そのインスタンスで使用するデフォルトの Spark 構成を指定します。 さらに、 Instance home
を指定する必要があります。これは、インスタンス関連データのみのためにインスタンスに接続されるストレージです。
注:
- IBM Analytics Engine サービス・インスタンスを作成する場合、Spark アプリケーションを実行しているか、Spark ヒストリー・サーバーにアクセスしていない限り、コストは発生しません。
- パブリック・エンドポイントを介して IBM Cloud Object Storage にアクセスした場合、および IBM Analytics Engine ログの IBM Log Analysisへの転送を有効にした場合に、コストが発生します。
- IBM Cloud® アカウントごとに許可されるサービス・インスタンスの数、および特定の IBM Analytics Engine サービス・インスタンスで使用できる CPU とメモリーの量には、デフォルトの制限があります。 Analytics Engine インスタンスの制限と割り当て量 を参照してください。 これらの制限を調整する必要がある場合は、 IBM サポート・チケットをオープンしてください。
- IBM Analytics Engine サービス・インスタンス内で実行できる Spark アプリケーションの数に制限はありません。
デフォルトのSparkランタイム
インスタンス・プロビジョニングの時点で、使用する Spark バージョンを選択できます。 Spark3.4.がデフォルトのバージョンです。
ランタイムにはオープン・ソースの Spark バイナリーが含まれています。この構成により、インスタンスの作成とインスタンスでの Spark アプリケーションの実行を迅速に進めることができます。 Sparkバイナリーに加え、ランタイムには地理空間、データスキップ、Parquetモジュール暗号化ライブラリーも含まれている。
すべての Spark ランタイム・バージョンで、以下の言語で作成された Spark アプリケーションをサブミットできます。
- Scala
- Python
- R
以下の表に、Spark ランタイムのバージョンとランタイム言語のバージョンを示します。
Sparkバージョン | Apache Spark リリース | 状況 | サポートされている言語 |
---|---|---|---|
3.1 | 3.1.2 | 削除済み (サポート対象外) | Java 8, Scala 2.12、 Python 3.10 および R 4.2 |
3.3 | 3.3.2 | 削除済み (サポート対象外) | Java 11, Scala 2.12、 Python 3.10 および R 4.2 |
3.4 | 3.4.1 | 最新バージョン | Java 11, Scala 2.12、 Python 3.10 および R 4.2 |
言語バージョンは定期的にアップグレードされ、ランタイムにセキュリティーの脆弱性がないようにします。 アプリケーションをサブミットするときは、いつでも Spark ランタイム・バージョンをオーバーライドできます。 ペイロードに追加する内容について詳しくは、 アプリケーションのサブミット時にランタイム Spark バージョンを渡す を参照してください。
インスタンス・ホーム
インスタンス・ホームは、インスタンス関連データ(カスタム・アプリケーション・ライブラリーやSpark履歴イベントなど)についてのみ、インスタンスに接続されるストレージです。 現在、インスタンス・ホームとして受け入れられるのはIBM Cloud Object Storageのみです。 このインスタンスは、IBM Cloud®アカウントのインスタンスにすることも、別のアカウントのインスタンスにすることもできます。
IBM Cloudコンソールを使用してインスタンスをプロビジョンすると、IBM Cloud®アカウント内の IBM Cloud Object Storageインスタンスが自動的に検出されてリストに表示され、そこから選択できるようになります。 アカウント内にIBM Cloud Object Storageインスタンスが見つからない場合は、インスタンス作成後にREST APIを使用してインスタンス・ホームを更新できます。
インスタンス作成後にインスタンス・ホームを変更することはできません。 編集できるのはアクセス・キーのみです。
デフォルトのSpark構成
Analytics Engine インスタンスのプロビジョニング時にデフォルトの Spark 構成を指定できます ( IBM Analytics Engine サーバーレス・インスタンスのプロビジョニング を参照)。 構成は、インスタンスでサブミットされた Spark アプリケーションに自動的に適用されます。 インスタンスの作成後に構成を更新することもできます。 Analytics Engine 「インスタンスの詳細」 ページ ( Analytics Engine Rest API または IAE CLI ) の 「構成」 セクションから構成を編集できます。 インスタンス・レベルのデフォルトとして指定された値は、Sparkアプリケーションの実行依頼時にオーバーライドできます。
さまざまな Apache Spark 構成について詳しくは、 Spark 構成 を参照してください。
サーバーレス・インスタンスの機能と実行方法
以下の表に、アクセス・ロールおよび実行メソッドごとに、サポートされるサーバーレス・インスタンス・フィーチャーを示します。
操作 | アクセス役割 | IBMコンソール | API | CLI |
---|---|---|---|---|
インスタンスのプロビジョニング | 管理者 | ![]() |
![]() |
![]() |
インスタンスを削除する | 管理者 | ![]() |
![]() |
![]() |
ユーザー権限の付与 | 管理者 | ![]() |
![]() |
![]() |
インスタンス・ホーム・ストレージの管理 | 管理者 | ![]() |
![]() |
![]() |
ロギングの構成 | 管理者 開発者 Devops |
![]() |
![]() |
使用不可 |
Sparkアプリケーションのサブミット | 管理者 開発者 |
使用不可 | ![]() |
![]() |
サブミットされたSparkアプリケーションのリストの表示 | 管理者 開発者 DevOps |
使用不可 | ![]() |
![]() |
サブミットされたSparkアプリケーションの停止 | 管理者 開発者 DevOps |
使用不可 | ![]() |
![]() |
ライブラリーのカスタマイズ | 管理者 開発者 |
使用不可 | ![]() |
使用不可 |
ジョブ・ログへのアクセス | 管理者 開発者 DevOps |
Log Analysis コンソールからの ![]() |
適用外 | 適用外 |
インスタンスの詳細を表示します;表示される詳細は、アクセス役割によって異なる場合があります | 管理者 開発者 DevOps |
![]() |
![]() |
![]() |
Spark ヒストリー・サーバーの管理 | 管理者 開発者 |
![]() |
![]() |
![]() |
Spark 履歴へのアクセス | 管理者 開発者 DevOps |
![]() |
![]() |
![]() |