ワークグループの作成
ワークグループを作成するには、CreateWorkgroup
API アクションへのアクセス権限が必要です。「ワークグループとタグへのアクセスを構成する」および「IAM ポリシーを使用してワークグループのアクセスを制御する」を参照してください。タグを追加している場合は、TagResource
にアクセス権限を追加する必要もあります。「ワークグループのタグポリシーの例」を参照してください。
次の手順では、 Athena コンソールを使用してパラメータグループを編集する方法を示します。Athena API を使用してワークグループを作成するには、「CreateWorkGroup」を参照してください。
Athena コンソールでワークグループを作成するには
-
作成するワークグループを決定します。以下のような考慮すべき点があります。
-
各ワークグループでクエリを実行できるユーザー、およびワークグループ設定を所有しているユーザー。IAM ポリシーを使用してワークグループのアクセス許可を適用します。詳細については、「IAM ポリシーを使用してワークグループのアクセスを制御する」を参照してください。
-
ワークグループのクエリ結果に使用する Amazon S3 内の場所。ワークグループを使用するすべてのユーザーが、この場所にアクセスできる必要があります。
-
ワークグループのクエリ結果を暗号化する必要があるかどうか。暗号化はワークグループごと (クエリごとではない) であるため、暗号化されたクエリ結果と暗号化されていないクエリ結果に対して別々のワークグループを作成する必要があります。詳細については、「Amazon S3 に保存された Athena クエリ結果を暗号化する」を参照してください。
-
コンソールのナビゲーションペインが表示されない場合は、左側の展開メニューをクリックします。
-
Athena コンソールのナビゲーションペインで、[Workgroups] (ワークグループ) をクリックします。
-
[Workgroups] (ワークグループ) ページで、[Create workgroup] (ワークグループを作成する) をクリックします。
-
[Create workgroup] (ワークグループを作成する) ページで、次のようにフィールドに入力します。
フィールド 説明 ワークグループ名 必須。ワークグループの一意の名前を入力します。名前には、英数字、ダッシュ、アンダースコアを含む 1~128 文字を含めることができます。ワークグループを作成したら、その名前を変更することはできません。 説明 オプション。ワークグループの説明を入力します。最大 1024 文字を含めることができます。 [Choose the type of engine] (エンジンのタイプを選択する) Amazon S3 のデータに対してアドホック SQL クエリを実行する場合、または事前構築済みのデータソースコネクタを使用して、Amazon S3 の外部のさまざまなデータソースに対してフェデレーテッドクエリを実行する場合には、[Athena SQL] を選択します。Athena クエリエディタ、AWS CLI
、または Athena API を使用してクエリを実行できます。 Python と Apache Spark を使用して Jupyter Notebook アプリケーションを作成、編集、実行する場合には、[Apache Spark] を選択します。Jupyter Notebook には、コード、テキスト、マークダウン、数学、プロット、リッチメディアを含むセルのリストが含まれています。セルは Athena のインタラクティブなノートブックセッションで、計算として順番に実行されます。Spark 対応ワークグループの作成と設定については、「ステップ 1: Athena で Spark 対応のワークグループを作成する」を参照してください。
ワークグループを作成すると、その分析エンジンをアップグレードできますが (例えば、Athena エンジンバージョン 2 から Athena エンジンバージョン 3 へ)、そのエンジンタイプは変更できません。例えば、Athena エンジンのバージョン 3 のワークグループを PySpark エンジンのバージョン 3 のワークグループに変更することはできません。
クエリエンジンを更新する 新しい Athena エンジンバージョンがリリースされるときに、ワークグループを更新する方法を選択します。Athena にワークグループを更新するタイミングを決定させる、またはエンジンバージョンを手動で選択することができます。詳細については、「Athena エンジンのバージョニング」を参照してください。 認証 [AWS Identity and Access Management (IAM)] を選択してワークグループに IAM 認証またはフェデレーションを使用します。Microsoft Active Directory などの SAML 2.0 ID プロバイダーのユーザーやグループなどのワークフォースアイデンティティをサポートしたい場合は、[IAM アイデンティティセンター] を選択してください。詳細については、「IAM アイデンティティセンターが有効な Athena ワークグループを使用する」と「AWS IAM Identity Center ユーザーガイド」の「アプリケーション間での信頼されたアイデンティティのプロパゲーション」を参照してください。ワークグループの作成後に、ワークグループの認証の種類を変更することはできません。 IAM アイデンティティセンターにアクセスするためのサービスロール Athena には、ユーザーに代わって IAM アイデンティティセンターにアクセスするための IAM アクセス許可が必要です。IAM サービスロールの詳細については、「IAM ユーザーガイド」の「AWS のサービスにアクセス許可を委任するロールの作成」を参照してください。 クエリ結果の場所 Amazon S3 バケットまたはプレフィックスへのパスを入力します。このバケットとプレフィックスは、指定する前に存在している必要があります。Amazon S3 バケットを作成する方法については、「Creating a bucket」(バケットを作成する) を参照してください。
注記
クエリ結果の場所をワークグループまたは [Settings] で指定しない場合、Athena クエリは失敗します。API またはドライバーを使用してクエリを実行する場合、クエリ結果の場所を OutputLocation (個々のクエリ) または WorkGroupConfiguration (ワークグループ) の 2 つの場所の少なくとも 1 つに指定する必要があります。
予想されるバケット所有者 オプション。出力先バケットの所有者になると予想される AWS アカウント の ID を入力します。これは追加のセキュリティ対策です。バケット所有者のアカウント ID がここで指定した ID と一致しない場合、バケットに出力できません。詳細については、「Amazon S3 ユーザーガイド」の「バケット所有者条件によるバケット所有者の確認」を参照してください。 注記
予期されるバケット所有者の設定は、Athena クエリの結果の出力先として指定した Amazon S3 内の場所にのみ適用されます。これは、外部 Simple Storage Service (Amazon S3) バケット内のデータソースの場所、
CTAS
やINSERT INTO
の書き込み先のテーブルの場所、UNLOAD
ステートメントの出力場所、串刺検索のバケットのスピルオペレーション、別のアカウントのテーブルに対して実行されるSELECT
クエリなど、他の Amazon S3 ロケーションには適用されません。クエリ結果に対するフルコントロールをバケット所有者に割り当てる このフィールドは、デフォルトでは選択されていません。これを選択し、クエリ結果の場所バケットで ACL が有効になっている場合、クエリ結果に対するフルコントロールアクセスがバケット所有者に付与されます。たとえば、クエリ結果の場所を別のアカウントが所有している場合に、このオプションを使用して、クエリ結果の所有権とフルコントロールを他のアカウントに付与することができます。
バケットの S3 オブジェクトの所有権の設定が [Bucket owner preferred] (バケット所有者推奨) となっている場合、バケット所有者は、このワークグループから書き込まれたすべてのクエリ結果オブジェクトも所有します。たとえば、外部アカウントのワークグループでこのオプションが有効になっており、そのクエリ結果の場所がアカウントの Simple Storage Service (Amazon S3) バケットに設定されている場合に、このバケットの S3 オブジェクトの所有権が [Bucket owner preferred] (バケット所有者推奨) と設定されていると、外部ワークグループのクエリ結果を所有し、フルコントロールアクセスを持つことになります。
クエリ結果バケットの S3 オブジェクトの所有権設定が [Bucket owner enforced] (バケット所有者の強制) となっているときにこのプションを選択しても、効果はありません。詳細については、「Simple Storage Service (Amazon S3) ユーザーガイド」の「オブジェクトの所有権の設定」を参照してください。
クエリ結果の暗号化 オプション。すべてのワークグループクエリについて、Amazon S3 でクエリ結果を暗号化します。ワークグループ内のすべてのクエリは暗号化する必要があるため、暗号化されたクエリと暗号化されていないクエリには個別のワークグループを作成することをお勧めします。
選択すると、[Encryption type (暗号化タイプ)]、[Encryption key (暗号化キー)] を選択して、[KMS Key ARN (KMS キー ARN)] を入力できます。
キーがない場合は、AWS KMS コンソール
を開いて作成します。詳細については、「デベロッパーガイド」の「AWS Key Management Serviceキーの作成」を参照してください。 暗号化タイプ
を最小暗号化として設定オプション。このオプションを選択すると、ワークグループのすべてのユーザーに対して、クエリ結果に暗号化の最小限のタイプを強制できます。このオプションを選択すると、暗号化タイプの階層を示す表が表示されます。この表には、特定の暗号化タイプを最小限として指定した場合に、ワークグループユーザが使用できる暗号化タイプも表示されます。このオプションを使用するには、[クライアント側設定の上書き] を選択しないでください。
詳細については、「ワークグループの最低限の暗号化を設定する」を参照してください。
S3 Access Grants を有効にする 認証モードとして [IAM アイデンティティセンター] を選択すると、このフィールドがデフォルトで選択されます。このオプションを選択すると、IAM アイデンティティセンターのユーザーまたはグループベースのアクセス権限が Amazon S3 ロケーションに適用されます。 ユーザー ID ベースの S3 プレフィックスを作成する このオプションを選択すると、Athena はクエリ結果を保存するときに Amazon S3 プレフィックスを作成します。プレフィックスはユーザーの IAM アイデンティティセンターのユーザー ID に基づいています。 [Override client-side settings (クライアント側設定の上書き)] このフィールドは、デフォルトでは選択されていません。選択すると、ワークグループ設定はワークグループのすべてのクエリに適用され、クライアント側の設定を上書きします。詳細については、「[Override client-side settings (クライアント側設定の上書き)]」を参照してください。 [Publish query metrics to CloudWatch] (クエリメトリクスを CloudWatch に発行) このフィールドは、デフォルトで選択されています。クエリメトリクスを CloudWatch に発行します。「CloudWatch による Athena クエリメトリクスのモニタリング」を参照してください。 リクエスタ支払い S3 バケット オプション。ワークグループユーザーが、リクエスタ支払いとして設定された Amazon S3 バケットに保存されているデータでクエリを実行する場合は、[Turn on queries on requester pays buckets in Amazon S3] (Amazon S3 のリクエスタ支払いバケットでのクエリをオンにする) を選択します。クエリを実行しているユーザーのアカウントには、クエリに関連付けられた該当するデータアクセスの料金とデータ転送料金が請求されます。詳細については、「Amazon Simple Storage Service ユーザーガイド」の「リクエスタ支払いバケット」を参照してください。
クエリごとのデータ使用量の制御 オプション。クエリがスキャンできるデータの最大量の制限を設定します。ワークグループに対してクエリごとの制限を 1 つだけ設定できます。この制限は、ワークグループのすべてのクエリに適用され、クエリが制限を超えるとキャンセルされます。詳細については、「クエリごとおよびワークグループごとのデータ使用量の制御を設定する」を参照してください。 ワークグループのデータ使用に関するアラート オプション。このワークグループで実行しているクエリが特定の期間内に指定した量のデータをスキャンする際、複数のアラートしきい値を設定します。アラートは Amazon CloudWatch アラームを使用して実装され、ワークグループ内のすべてのクエリに適用されます。詳細については、『Amazon CloudWatch ユーザーガイド』の「Amazon CloudWatch アラームの使用」を参照してください。 [タグ] オプション。ワークグループに 1 つ以上のタグを追加します。タグは、Athena ワークグループリソースに割り当てるラベルです。キーと値から構成されます。AWS タグ付けのベストプラクティスを使用して、一貫性のあるタグのセットを作成し、目的、所有者、環境に基づいてワークグループを分類します。IAM ポリシーでタグを使用したり、課金コストを管理することもできます。同じワークグループに重複したタグキーを使用しないでください。詳細については、「Athena リソースにタグ付けする」を参照してください。 -
[Create workgroup] (ワークグループの作成) を選択します。ワークグループが [Workgroups] (ワークグループ) ページのリストに表示されます。
クエリエディターでは、Athena がコンソールの右上にある [Workgroup] (ワークグループ) オプションに、現在のワークグループを表示します。このオプションを使用して、ワークグループを切り替えることができます。クエリを実行すると、現在のワークグループでクエリが実行されます。
-
ユーザー、グループ、またはロール用の IAM ポリシーを作成して、それらがワークグループにアクセスできるようにします。ポリシーは、ワークグループメンバーシップおよび
workgroup
リソースのアクションへのアクセスを確立します。詳細については、「IAM ポリシーを使用してワークグループのアクセスを制御する」を参照してください。JSON ポリシーの例については、「ワークグループとタグへのアクセスを構成する」を参照してください。 -
(オプション) ワークグループ全体の暗号化がクライアント側設定のオーバーライドによって強制されない場合、ワークグループからのすべてのクエリ結果に対して Amazon S3 で最小レベルの暗号化を設定します。この機能を使用すると、クエリ結果が暗号化されていない状態で Amazon S3 バケットに保存されないようにすることができます。詳細については、「ワークグループの最低限の暗号化を設定する」を参照してください。
-
(オプション) Amazon CloudWatch と Amazon EventBridge を使用して、ワークグループのクエリをモニタリングし、コストを管理できます。詳細については、「CloudWatch と EventBridge を使用してクエリをモニタリングし、コストを管理する」を参照してください。
-
(オプション) 請求およびコストマネジメントコンソールを使用して、ワークグループにコスト配分タグを付けます。詳細については、「AWS Billingユーザーガイド」の [Using user-defined cost allocation tags] をご参照ください。
-
(オプション) ワークグループ内のクエリ専用の処理キャパシティを取得するには、キャパシティ予約にワークグループを追加します。1 つ以上のワークグループを予約に割り当てることができます。詳細については、「クエリ処理キャパシティを管理する」を参照してください。