Amazon RDS for SQL Server での SQL Server Reporting Services のサポート - Amazon Relational Database Service

Amazon RDS for SQL Server での SQL Server Reporting Services のサポート

Microsoft SQL Server Reporting Services (SSRS) は、レポートの生成とディストリビューションに使用されるサーバーベースのアプリケーションです。これは、SQL Server Analysis Services (SSAS) および SQL Server Integration Services (SSIS) を含む SQL Server サービスのスイートの一部です。SSRS は、SQL Server 上に構築されたサービスです。これを使用すると、さまざまなデータソースからデータを収集して、それを簡単に理解でき、分析の準備が整っている方法で提示できます。

Amazon RDS for SQL Server は、RDS DB インスタンスで SSRS を直接実行する操作をサポートしています。SSRS は、既存または新規の DB インスタンスで有効にすることができます。

RDS は、次のバージョンで SQL Server 標準エディションおよびエンタープライズエディションの SSRS をサポートします。

  • SQL Server 2019、バージョン 15.00.4043.16.v1 以降

  • SQL Server 2017、バージョン 14.00.3223.3.v1 以降

  • SQL Server 2016、バージョン 13.00.5820.21.v1 以降

制限と推奨事項

SQL Server 用 RDS で SSRS を実行する場合は、次の制限と推奨事項が適用されます。

  • インスタンスは、SSRS ウェブポータルおよびウェブサーバー認証に AWS Managed Microsoft AD を使用する必要があります。

  • SSRS の他のインスタンスからのレポートサーバーデータベースのインポートと復元はサポートされていません。

    SSRS オプションが RDS DB インスタンスに追加されたときに作成されるデータベースを使用してください。詳細については、「レポートサーバーデータベース」を参照してください。

  • デフォルトの SSL ポート (443) でリッスンするように SSRS を構成することはできません。指定できる値は、1234、1434、3260、3343、3389、47001 を除く、1150~49511 です。

  • 電子メールまたは Microsoft Windows ファイル共有によるサブスクリプションはサポートされていません。

  • Reporting Services Configuration Manager の使用はサポートされていません。

  • ロールの作成と変更はサポートされていません。

  • レポートサーバーのプロパティの変更はサポートされていません。

  • システム管理者とシステムユーザーのロールは付与されません。

  • ウェブポータルを使用してシステムレベルのロールの割り当てを編集することはできません。

SSRS の有効化

DB インスタンスの SSRS を有効にするには、次のプロセスを使用します。

  1. 新しいオプショングループを作成するか、既存のオプショングループを選択します。

  2. オプショングループに [SSRS] オプションを追加します。

  3. オプショングループを DB インスタンスに関連付けます。

  4. SSRS リスナーポートの Virtual Private Cloud (VPC) セキュリティグループへのインバウンドアクセスを許可します。

SSRS のオプショングループの作成

SSRS を使用するには、使用する DB インスタンスの SQL Server エンジンおよびバージョンに対応するオプショングループを作成します。そのためには、AWS Management Console または AWS CLI を使用します。

注記

既存のオプショングループが正しい SQL Server エンジンおよびバージョンに対応している場合は、それを使用することもできます。

次の手順では、SQL Server Standard Edition 2017 のオプショングループを作成します。

オプショングループを作成するには

  1. AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、[オプショングループ] を選択します。

  3. [Create group (グループの作成)] を選択します。

  4. [オプショングループの作成] ウィンドウで、次の操作を行います。

    1. [名前] に、AWS アカウント内で一意のオプショングループ名 (ssrs-se-2017 など) を入力します。名前には、英字、数字、ハイフンのみを使用できます。

    2. [説明] に、オプショングループの簡単な説明 (SSRS option group for SQL Server SE 2017 など) を入力します。この説明は表示用に使用されます。

    3. [エンジン] で [sqlserver-se] を選択します。

    4. [メジャーエンジンのバージョン] で、[14.00] を選択します。

  5. [作成] を選択します。

次の手順では、SQL Server Standard Edition 2017 のオプショングループを作成します。

オプショングループを作成するには

  • 以下のいずれかのコマンドを実行します。

Linux、macOS、Unix の場合:

aws rds create-option-group \ --option-group-name ssrs-se-2017 \ --engine-name sqlserver-se \ --major-engine-version 14.00 \ --option-group-description "SSRS option group for SQL Server SE 2017"

Windows の場合:

aws rds create-option-group ^ --option-group-name ssrs-se-2017 ^ --engine-name sqlserver-se ^ --major-engine-version 14.00 ^ --option-group-description "SSRS option group for SQL Server SE 2017"

オプショングループへの SSRS オプションの追加

次に、AWS Management Console または AWS CLI を使用して SSRS オプションをオプショングループに追加します。

SSRS オプションを追加するには

  1. AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、[オプショングループ] を選択します。

  3. 先ほど作成したオプショングループを選択します。

  4. [オプションの追加] を選択します。

  5. [オプションの詳細] で、[オプション名] として SSRS を選択します。

  6. [オプション設定] で、次の操作を行います。

    1. SSRS サービスがリッスンするポートを入力します。デフォルトは 8443 です。許可される値のリストについては、「制限と推奨事項」を参照してください。

    2. [最大メモリ] に値を入力します。

      [最大メモリ] は、レポートサーバーアプリケーションに対して新しいメモリ割り当て要求を許可しない上限しきい値を指定します。この値は、DB インスタンスの合計メモリに対する割合 (%) です。指定できる値は 10~80 です。

  7. [セキュリティグループ] で、オプションに関連付ける VPC セキュリティグループを選択します。DB インスタンスに関連付けられているものと同じセキュリティグループを使用します。

  8. [スケジュール] で、オプションをすぐに追加するか、次のメンテナンスウィンドウで追加するかを選択します。

  9. [オプションの追加] を選択します。

SSRS オプションを追加するには

  1. 次のパラメータを使用して JSON ファイル (ssrs-option.json など) を作成します。

    • OptionGroupName – 以前に作成または選択したオプショングループの名前 (次の例では ssrs-se-2017)。

    • Port – SSRS サービスがリッスンするポート。デフォルトは 8443 です。許可される値のリストについては、「制限と推奨事項」を参照してください。

    • VpcSecurityGroupMemberships – RDS DB インスタンスの VPC セキュリティグループのメンバーシップ。

    • MAX_MEMORY – レポートサーバーアプリケーションに対して新しいメモリ割り当て要求を許可しない上限しきい値。この値は、DB インスタンスの合計メモリに対する割合 (%) です。指定できる値は 10~80 です。

    { "OptionGroupName": "ssrs-se-2017", "OptionsToInclude": [ { "OptionName": "SSRS", "Port": 8443, "VpcSecurityGroupMemberships": ["sg-0abcdef123"], "OptionSettings": [{"Name": "MAX_MEMORY","Value": "60"}] }], "ApplyImmediately": true }
  2. オプショングループに [SSRS] オプションを追加します。

    Linux、macOS、Unix の場合:

    aws rds add-option-to-option-group \ --cli-input-json file://ssrs-option.json \ --apply-immediately

    Windows の場合:

    aws rds add-option-to-option-group ^ --cli-input-json file://ssrs-option.json ^ --apply-immediately

オプショングループと DB インスタンスの関連付け

AWS Management Console または AWS CLI を使用して、オプショングループを DB インスタンスに関連付けます。

既存の DB インスタンスを使用する場合は、このインスタンスに Active Directory ドメインと AWS Identity and Access Management (IAM) ロールがすでに関連付けられている必要があります。新しいインスタンスを作成する場合は、既存の Active Directory ドメインと IAM ロールを指定します。詳細については、「Amazon RDS for SQL Server DB インスタンスでの Windows 認証の使用」を参照してください。

オプショングループを新規または既存の DB インスタンスに関連付けることができます。

  • 新しい DB インスタンスの場合は、インスタンスを起動するときにオプショングループを関連付けます。詳細については、「Amazon RDS DB インスタンスの作成」を参照してください。

  • 既存の DB インスタンスの場合は、インスタンスを変更してから、新しいオプショングループを関連付けます。詳細については、「Amazon RDS DB インスタンスを変更する」を参照してください。

オプショングループを新規または既存の DB インスタンスに関連付けることができます。

オプショングループを使用する DB インスタンスを作成するには

  • オプショングループの作成時に使用したものと同じ DB エンジンのタイプとメジャーバージョンを指定します。

    Linux、macOS、Unix の場合:

    aws rds create-db-instance \ --db-instance-identifier myssrsinstance \ --db-instance-class db.m5.2xlarge \ --engine sqlserver-se \ --engine-version 14.00.3223.3.v1 \ --allocated-storage 100 \ --master-user-password secret123 \ --master-username admin \ --storage-type gp2 \ --license-model li \ --domain-iam-role-name my-directory-iam-role \ --domain my-domain-id \ --option-group-name ssrs-se-2017

    Windows の場合:

    aws rds create-db-instance ^ --db-instance-identifier myssrsinstance ^ --db-instance-class db.m5.2xlarge ^ --engine sqlserver-se ^ --engine-version 14.00.3223.3.v1 ^ --allocated-storage 100 ^ --master-user-password secret123 ^ --master-username admin ^ --storage-type gp2 ^ --license-model li ^ --domain-iam-role-name my-directory-iam-role ^ --domain my-domain-id ^ --option-group-name ssrs-se-2017

オプショングループを使用するように DB インスタンスを変更するには

  • 以下のいずれかのコマンドを実行します。

    Linux、macOS、Unix の場合:

    aws rds modify-db-instance \ --db-instance-identifier myssrsinstance \ --option-group-name ssrs-se-2017 \ --apply-immediately

    Windows の場合:

    aws rds modify-db-instance ^ --db-instance-identifier myssrsinstance ^ --option-group-name ssrs-se-2017 ^ --apply-immediately

VPC セキュリティグループへのインバウンドアクセスの許可

DB インスタンスに関連付けられた VPC セキュリティグループへのインバウンドアクセスを許可するには、指定された SSRS リスナーポートのインバウンドルールを作成します。セキュリティグループの設定の詳細については、「セキュリティグループを作成して VPC 内の DB インスタンスへのアクセスを提供する」を参照してください。

レポートサーバーデータベース

DB インスタンスが SSRS オプションに関連付けられている場合、DB インスタンスに rdsadmin_ReportServer と rdsadmin_ReportServerTempDB という 2 つの新しいデータベースが作成されます。これらのデータベースは、ReportServer および ReportServerTempDB データベースとして機能します。SSRS は、ReportServer データベースにデータを保存し、ReportServerTempDB にそのデータをキャッシュします。RDS はこれらのデータベースを所有および管理するため、ALTER や DROP などのデータベース操作は許可されません。

SSRS ウェブポータルへのアクセス

SSRS ウェブポータルにアクセスするには、次のプロセスを使用します。

  1. Secure Sockets Layer (SSL) を有効にします。

  2. ドメインユーザーへのアクセス権を付与します。

  3. ブラウザとドメインユーザーの認証情報を使用してウェブポータルにアクセスします。

RDS での SSL の有効化

SSRS は、接続に HTTPS SSL プロトコルを使用します。このプロトコルを使用するには、クライアントコンピュータの Microsoft Windows オペレーティングシステムに SSL 証明書をインポートします。

SSL 証明書の詳細については、「SSL/TLS を使用した DB instance への接続の暗号化」を参照してください。SQL Server での SSL の使用の詳細については、「Microsoft SQL Server DB インスタンスでの SSL の使用」を参照してください。

ドメインユーザーへのアクセスの許可

新しい SSRS アクティベーションでは、SSRS でのロールの割り当てはありません。ドメインユーザーまたはユーザーグループにウェブポータルへのアクセス権を付与するために、RDS にはストアドプロシージャが用意されています。

ウェブポータルでドメインユーザーにアクセス権を付与するには

  • 次のストアドプロシージャを使用します。

    exec msdb.dbo.rds_msbi_task @task_type='SSRS_GRANT_PORTAL_PERMISSION', @ssrs_group_or_username=N'AD_domain\user';

ドメインユーザーまたはユーザーグループに RDS_SSRS_ROLE システムロールが付与されます。このロールには、次のシステムレベルのタスクが付与されています。

  • レポート定義の実行

  • ジョブの管理

  • 共有スケジュールの管理

  • 共有スケジュールの表示

ルートフォルダでの Content Manager のアイテムレベルのロールも付与されます。

ウェブポータルへのアクセス

SSRS_GRANT_PORTAL_PERMISSION タスクが正常に終了すると、ウェブブラウザを使用してポータルにアクセスできるようになります。ウェブポータル URL の形式を次に示します。

https://rds_endpoint:port/Reports

この形式では、以下が適用されます。

ウェブポータルにアクセスするには

  1. ブラウザにウェブポータルの URL を入力します。

    https://myssrsinstance.cg034itsfake.us-east-1.rds.amazonaws.com:8443/Reports
  2. SSRS_GRANT_PORTAL_PERMISSION タスクでアクセス権を付与したドメインユーザーの認証情報を使用してログインします。

SSRS へのレポートのデプロイ

ウェブポータルにアクセスした後は、ウェブポータルにレポートをデプロイできます。ウェブポータルのアップロードツールを使用して、レポートをアップロードしたり、SQL Server データツール (SSDT) から直接デプロイしたりできます。SSDT からデプロイする場合は、次の点を確認してください。

  • SSDT を起動したユーザーは、SSRS ウェブポータルにアクセスできます。

  • SSRS プロジェクトプロパティの TargetServerURL の値は、ReportServer サフィックスが付加された RDS DB インスタンスの HTTPS エンドポイントに設定されます。次に例を示します。

    https://myssrsinstance.cg034itsfake.us-east-1.rds.amazonaws.com:8443/ReportServer

システムレベルのアクセス許可の取り消し

RDS_SSRS_ROLE システムロールには、システムレベルのロールの割り当てを削除するための十分なアクセス許可がありません。RDS_SSRS_ROLE からユーザーまたはユーザーグループを削除するには、ロールの付与に使用したものと同じストアドプロシージャを使用します。ただし、SSRS_REVOKE_PORTAL_PERMISSION タスクタイプを使用します。

ウェブポータルのドメインユーザーからアクセス権を取り消すには

  • 次のストアドプロシージャを使用します。

    exec msdb.dbo.rds_msbi_task @task_type='SSRS_REVOKE_PORTAL_PERMISSION', @ssrs_group_or_username=N'AD_domain\user';

これにより、ユーザーが RDS_SSRS_ROLE システムロールから削除されます。また、ユーザーが Content Manager アイテムレベルのロールを持っている場合、このロールからも削除されます。

タスクのステータスのモニタリング

タスクの権限付与または取り消しのステータスを追跡するには、rds_fn_task_status 関数を呼び出します。2 つのパラメータを使用します。1 つめのパラメータは、SSRS に適用されないため、常に NULL を設定してください。2 つめのパラメータは、タスク ID を受け入れます。

全タスクのリストを見るには、以下の例にあるように、最初のパラメータを NULL に設定し、2 つめのパラメータを 0 に設定します。

SELECT * FROM msdb.dbo.rds_fn_task_status(NULL,0);

特定のタスクを受け取るには、以下の例にあるように、最初のパラメータを NULL に設定し、2 つめのパラメータをタスク ID に設定します。

SELECT * FROM msdb.dbo.rds_fn_task_status(NULL,42);

rds_fn_task_status 機能は次の情報を返します。

出力パラメータ

説明

task_id

タスクの ID。

task_type

SSRS では、次のタスクタイプを使用できます。

  • SSRS_GRANT_PORTAL_PERMISSION

  • SSRS_REVOKE_PORTAL_PERMISSION

database_name

SSRS タスクは該当しません。

% complete

タスクの進行状況の割合。

duration (mins)

タスクにかかった時間 (分単位)。

lifecycle

タスクのステータス。有効な状態には以下のものがあります。

  • CREATED – SSRS ストアドプロシージャのいずれかを呼び出すと、タスクが作成され、ステータスが に設定されます。CREATED

  • IN_PROGRESS – タスクが開始すると、ステータスが に設定されます。IN_PROGRESSステータスが CREATED から IN_PROGRESS に変わるまで、最大 5 分かかることがあります。

  • SUCCESS – タスクが完了すると、ステータスが に設定されます。SUCCESS

  • ERROR – タスクが失敗すると、ステータスが に設定されます。ERRORエラーの詳細については、task_info 列を参照してください。

  • CANCEL_REQUESTEDrds_cancel_task ストアドプロシージャを呼び出すと、タスクのステータスが CANCEL_REQUESTED に設定されます。

  • CANCELLED – タスクが正常にキャンセルされると、タスクのステータスが に設定されます。CANCELLED

task_info

タスクに関する追加情報。処理中にエラーが発生した場合、この列にエラーに関する情報が含まれます。

last_updated

タスクのステータスが最後に更新された日時。

created_at

タスクが作成された日時。

S3_object_arn

SSRS タスクは該当しません。

overwrite_S3_backup_file

SSRS タスクは該当しません。

KMS_master_key_arn

SSRS タスクは該当しません。

filepath

SSRS タスクは該当しません。

overwrite_file

SSRS タスクは該当しません。

task_metadata

SSRS タスクに関連付けられたメタデータ。

SSRS の無効化

SSRS を無効にするには、オプショングループから SSRS オプションを削除します。このオプションを削除しても、SSRS データベースは削除されません。詳細については、「SSRS データベースの削除」を参照してください。

SSRS オプションを再度追加すると、SSRS は再度有効にすることができます。SSRS データベースも削除した場合は、同じ DB インスタンスで SSRS を再度有効にすると、新しいレポートサーバーデータベースが作成されます。

SSRS オプションをオプショングループから削除するには

  1. AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、[オプショングループ] を選択します。

  3. SSRS オプションが含まれているオプショングループ (前の例では ssrs-se-2017) を選択します。

  4. [オプションの削除] を選択します。

  5. [オプションの削除] で、[削除するオプション] として [SSRS] を選択します。

  6. [すぐに適用] で、オプションをすぐに削除する場合は [はい] を選択し、次のメンテナンスウィンドウで削除する場合は [いいえ] を選択します。

  7. [削除] を選択します。

SSRS オプションをオプショングループから削除するには

  • 以下のいずれかのコマンドを実行します。

    Linux、macOS、Unix の場合:

    aws rds remove-option-from-option-group \ --option-group-name ssrs-se-2017 \ --options SSRS \ --apply-immediately

    Windows の場合:

    aws rds remove-option-from-option-group ^ --option-group-name ssrs-se-2017 ^ --options SSRS ^ --apply-immediately

SSRS データベースの削除

SSRS オプションを削除しても、レポートサーバーデータベースは削除されません。それらを削除するには、次のストアドプロシージャを使用します。

レポートサーバーデータベースを削除するには、必ず最初に SSRS オプションを削除してください。

SSRS データベースを削除するには

  • 次のストアドプロシージャを使用します。

    exec msdb.dbo.rds_drop_ssrs_databases