このトピックでは、ApsaraDB RDS for SQL Serverインスタンスのホストアカウントを使用してRDSインスタンスが存在するホストにログインし、SQL Server Reporting Services (SSRS) を使用してRDSインスタンスを管理する方法について説明します。
背景情報
ApsaraDB RDS for SQL Serverはwebshellログインをサポートしています。これにより、webshell URLを使用してRDSインスタンスのオペレーティングシステムにログインし、オペレーティングシステムでコマンドの実行やファイルのアップロードやダウンロードなどの操作を実行できます。 Webシェルは、特にSSHクライアントを使用できないシナリオで、RDSインスタンスをリモートで管理および保守するための便利で効率的なアプローチです。
SSRSは、Microsoftが提供するエンタープライズレベルのレポートサービスです。 SSRSは、SQL Serverデータベースやその他のデータソースに対してさまざまな種類のレポートを生成できます。 レポートの種類には、表形式レポート、チャートレポート、クロスタブレポート、多次元データレポートが含まれます。 SSRSは、RDSインスタンスに接続し、RDSインスタンスをデータソースとして使用して、さまざまな種類のレポートを生成できます。 これにより、企業や個人ユーザーはデータをより効率的に管理および分析し、さまざまな種類のレポートを生成してビジネスの意思決定と管理をサポートできます。
シナリオ
たとえば、中小企業のデータベース管理者であり、その企業のSQL Serverデータベースを管理しているとします。 ワークロードが増加するにつれて、データベースアクセス要求も増加します。 データベースをより適切に管理および最適化するには、SSRSを使用してデータベースを分析および監視する必要があります。 ただし、エンタープライズのサーバーは別のリージョンにデプロイされているため、サーバーに直接ログインして操作を実行することはできません。
この場合、ApsaraDB RDSコンソールでホストアカウントを作成し、そのホストアカウントを使用してWebシェルにログインし、RDSインスタンスが存在するホストにログインできます。 ホストにログインした後、SSRSを使用してSQL Serverデータベースを管理し、データベースを監視できます。
前提条件
RDSインスタンスは次の要件を満たしています。
RDSインスタンスは、RDS Basic Edition、RDS High-availability Edition、またはRDS Cluster Editionを実行します。 RDSインスタンスがRDS High-availability Editionを実行している場合は、インスタンスがSQL Server 2012以降を実行していることを確認してください。
RDSインスタンスは、汎用または専用インスタンスファミリーに属しています。 共有インスタンスファミリーはサポートされていません。
RDSは、サブスクリプションまたは従量課金方法を使用します。 サーバーレスインスタンスはサポートされていません。
RDSインスタンスは仮想プライベートクラウド (VPC) にあります。 RDSインスタンスのネットワークタイプを変更する方法の詳細については、「ネットワークタイプの変更」をご参照ください。
RDSインスタンスの作成時間は、次の要件を満たしています。
RDSインスタンスがRDS High-availability EditionまたはRDS Cluster Editionを実行している場合、インスタンスは2021年1月1日以降に作成されます。
RDSインスタンスがRDS Basic Editionを実行する場合、インスタンスは2022年9月2日以降に作成されます。
説明ApsaraDB RDSコンソールの 基本情報 ページの 実行ステータス セクションで、RDSインスタンスの [作成時刻] パラメーターを表示できます。
Alibaba Cloudアカウントを使用してRDSインスタンスにログインします。
システム管理者アカウントを作成する権限が付与されます。 詳細は、「前提条件 (Prerequisites)」をご参照ください。
ユーザーアカウント タブにシステム管理者アカウントが作成されます。 詳細については、「システム管理者アカウントの作成」をご参照ください。
アカウントタイプが システム管理者アカウント のホストアカウントは、ホストアカウント タブに作成されます。 詳細については、「ログオン用のホストアカウントの作成と使用」をご参照ください。
影響
システム管理者アカウントは、RDSインスタンスに対して最も高い権限を持っています。 ホストアカウントは、ホスト上で最も高い権限を持っています。 最も高い権限は、ApsaraDB RDS for SQL Serverの管理範囲を超えています。 RDSインスタンスのシステム管理者アカウントまたはホストアカウントを作成する場合、
サービスレベル契約 (SLA) は、RDSインスタンスに対して保証されなくなりました。 ただし、RDSインスタンスを使用して、期待どおりにアフターサービスを取得できます。 RDSインスタンスのシステム管理者アカウントまたはホストアカウントを作成しない場合、SLAで指定されているサービスの可用性はRDSインスタンスに対して保証されます。手順1: webshellを使用してログインするRDSインスタンスのホストに
[インスタンス] ページに移動します。 上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。 次に、RDSインスタンスを見つけ、インスタンスのIDをクリックします。
左側のナビゲーションウィンドウで、アカウント管理 をクリックします。
表示されるページで、ホストアカウント タブをクリックします。 必要なホストアカウントを見つけて、操作 列の リモート接続 (プライマリ) をクリックします。
リモート接続 ダイアログボックスで、ホストアカウントのパスワードを入力します。
OK をクリックします。
システムはwebshell URLを生成し、そのURLを使用してRDSインスタンスが存在するホストに自動的に接続します。 ポップアップウィンドウにWebシェルページが表示されます。 ページはブラウザによってブロックされる可能性があります。 ページがブロックされている場合は、ページを表示できるようにブラウザを設定できます。 以下の図は一例です。
手順2: ホストでのSSRSの設定と使用
前提条件
RDSインスタンスが存在するホストのSSRSを構成する前に、SQL Server Reporting Services (MSSQLSERVER) が有効かつ実行中であることを確認してください。 SSRSのステータスを表示または変更する方法の詳細については、「SSRSのステータスの表示または変更」をご参照ください。
使用上の注意
RDSインスタンスがRDS High-availability EditionまたはRDS Cluster Editionを実行している場合、RDSインスタンスはミラーリング状態またはAlways On可用性グループ状態です。 これにより、SSRS設定にエラーが発生する可能性があります。 エラーが発生した場合は、システム管理者アカウントを使用してRDSインスタンスにログインし、必要なステートメントを実行してエラーを解決する必要があります。 詳細については、「システム管理者アカウントの作成」をご参照ください。
RDSインスタンスは、イメージまたは可用性グループを定期的に作成します。 SSRSを設定すると、複数の設定エラーが発生する可能性があります。 エラーを解決するには、エラーが発生するたびにシステム管理者アカウントを使用してRDSインスタンスにログインし、次のステートメントを実行する必要があります。
-- Execute the following statements to disable the image of the database on an RDS instance that runs RDS High-availability Edition:
ALTER DATABASE [ReportServer] SET PARTNER OFF;
ALTER DATABASE [ReportServerTempDB] SET PARTNER OFF;
-- Execute the following statements to remove the database from the ag-rds availability group of an RDS instance that runs RDS Cluster Edition:
ALTER AVAILABILITY GROUP [ag-rds] REMOVE DATABASE [ReportServer];
ALTER AVAILABILITY GROUP [ag-rds] REMOVE DATABASE [ReportServerTempDB];
これらのステートメントにより、SSRSを適切に設定して実行できます。 RDSインスタンスがRDS Cluster Editionを実行している場合は、システム管理者アカウントを使用してRDSインスタンスにログインし、SSRSの設定後に次のステートメントを実行してデータベースを可用性グループに追加する必要があります。 これにより、高可用性と適切なデータベースのバックアップと復元が保証されます。 詳細については、「システム管理者アカウントの作成」をご参照ください。
ALTER AVAILABILITY GROUP [AG-RDS] ADD DATABASE [ReportServer]
ALTER AVAILABILITY GROUP [AG-RDS] ADD DATABASE [ReportServerTempDB]
手順
システム管理者アカウントを使用してRDSインスタンスにログインし、次のステートメントを実行します。
DISABLE TRIGGER [_$$_tr_$$_rds_alter_database] ON ALL SERVER;
説明RDSインスタンスへの接続方法の詳細については、「ApsaraDB RDS For SQL Serverインスタンスへの接続」をご参照ください。
アイコンをクリックし、Reporting Services構成マネージャーを選択します。
表示されるダイアログボックスで、レポートサーバーの名前を確認し、[接続] をクリックします。
説明RDSインスタンスがRDS High-availability EditionまたはRDS Cluster Editionを実行している場合、RDSインスタンスがミラーリング状態またはAlways On可用性グループ状態であるため、RDSインスタンスをレポートサーバーに接続できない場合があります。 接続に失敗した場合は、[使用状況] に基づいて問題を解決できます。
左側のナビゲーションウィンドウで、[サービスアカウント] と [WebサービスURL] をクリックし、ビジネス要件に基づいてパラメーターを設定します。
説明詳細については、「公式ドキュメント」をご参照ください。
左側のナビゲーションウィンドウで、[データベース] をクリックします。 ページの右側で、[データベースの変更] をクリックして、ホスト上にレポートサーバーデータベースを作成します。
[新規レポートサーバーデータベースの作成] を選択し、[次へ] をクリックします。
サーバー名を確認し、次のパラメーターを設定して、[次へ] をクリックします。
パラメーター
説明
サーバー名
サーバーの名前。 名前は変更できません。
認証タイプ
認証タイプ。 [SQL Serverアカウント] を選択します。
ユーザー名
ユーザーアカウント タブでRDSインスタンス用に作成されたシステム管理者アカウントのユーザー名。
Password
ユーザーアカウント タブでRDSインスタンス用に作成されたシステム管理者アカウントのパスワード。
レポートサーバーデータベースの名前を入力し、スクリプトの言語を選択します。 [次へ] をクリックします。
レポートサーバーに接続するアカウントの資格情報を指定し、[次へ] をクリックします。
[概要] ページの情報を確認し、[次へ] をクリックします。 レポートサーバーデータベースが作成されるまで待ちます。 次に、[完了] をクリックします。
システム管理者アカウントを使用してRDSインスタンスにログインし、次のステートメントを実行します。
USE [master] GO -- Change the recovery model of the database to FULL. Use the NO_WAIT parameter to allow the change to immediately take effect. ALTER DATABASE [ReportServer] SET RECOVERY FULL WITH NO_WAIT GO ALTER DATABASE [ReportServerTempDB] SET RECOVERY FULL WITH NO_WAIT GO -- Enable a specific trigger on all databases on the server. ENABLE TRIGGER [_$$_tr_$$_rds_alter_database] ON ALL SERVER;
データソースの作成などのその後の操作は、ビジネス要件によって異なります。 詳細については、「ECSインスタンスへのSSRSのインストールと使用」の手順6〜手順8、または公式ドキュメントをご参照ください。
SSRSのステータスの表示または変更
RDSインスタンスが存在するホストにログインします。 検索ボックスに
services.msc
と入力して [サービス] を開きます。[サービス (ローカル)] ウィンドウで、
SQL Server Reporting Services (MSSQLSERVER)
のステータスを表示します。説明SSRSは、次のスタートアップタイプをサポートします。
手動: システムの起動時にサービスは自動的に起動しないため、手動で起動する必要があります。
自動: システムの起動時にサービスが自動的に起動します。
自動 (遅延開始): サービスは、システムの起動から一定期間後に自動的に開始されます。
無効: サービスは無効であり、開始できません。
必要に応じて、 SSRSのステータスを変更し、サービスを開始します。
サービスをダブルクリックします。 表示されるダイアログボックスで、[スタートアップタイプ] パラメーターの値を変更します。
サービスを右クリックします。 表示されるダイアログボックスで、[開始] をクリックします。
SSRSの新しいステータスを表示します。
よくある質問
RDSインスタンスのホスト名と、RDSインスタンスのホストに接続するためのwebshell URLを取得する操作を呼び出すことはできますか。
はい。DescribeDBInstanceIpHostname操作を呼び出してRDSインスタンスのホスト名を取得し、DescribeHostWebShell操作を呼び出してWebシェルURLを取得してRDSインスタンスのホストに接続できます。 ホスト名はIpHostnameInfosパラメーターで指定し、webshell URLはLoginUrlパラメーターで指定します。
webshell URLは2分間有効です。 できるだけ早い機会にURLを使用する必要があります。 URLが無効な場合、RDSインスタンスのホストに接続できません。
この場合、必要な操作を呼び出して、最新のURLを取得できます。