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 서비스 제품군의 일부입니다. SQL Server를 기반으로 하는 서비스인 SSRS를 사용하여 다양한 데이터 원본에서 데이터를 수집하고 쉽게 이해 및 분석 가능한 방식으로 제공할 수 있습니다.

Amazon RDS for SQL Server는 RDS DB 인스턴스에서 SSRS를 직접 실행할 수 있도록 지원합니다. 기존 DB 인스턴스 또는 새 DB 인스턴스에서 SSRS를 활성화할 수 있습니다.

RDS는 다음 버전에서 SQL Server Standard 및 Enterprise Edition용 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 이상

제한 및 권장 사항

RDS for SQL Server에서 SSRS를 실행하는 경우 다음과 같은 제한 및 권장 사항이 적용됩니다.

  • 읽기 전용 복제본이 있는 DB 인스턴스에서는 SSRS를 사용할 수 없습니다.

  • 인스턴스에서 SSRS용 AWS Managed Microsoft AD 웹 포털 및 웹 서버 인증을 사용해야 합니다.

  • 다른 SSRS 인스턴스에서 보고서 서버 데이터베이스를 가져오고 복원하는 것은 지원되지 않습니다.

    RDS DB 인스턴스에 SSRS 옵션을 추가할 때 생성되는 데이터베이스를 사용해야 합니다. 자세한 내용은 보고서 서버 데이터베이스 섹션을 참조하세요.

  • 기본 SSL 포트(443)에서 수신하도록 SSRS를 구성할 수 없습니다. 허용되는 값은 1150–49511(1234, 1434, 3260, 3343, 3389, 47001 제외)입니다.

  • 이메일 또는 Windows 파일 공유를 통한 구독은 지원되지 않습니다.

  • 보고 서비스 구성 관리자를 사용하는 것은 지원되지 않습니다.

  • 역할을 생성 및 수정하는 것은 지원되지 않습니다.

  • 보고서 서버 속성을 수정하는 것은 지원되지 않습니다.

  • 시스템 관리자 및 시스템 사용자 역할은 부여되지 않습니다.

  • 웹 포털을 통해 시스템 수준의 역할 할당을 편집할 수 없습니다.

SSRS 활성화

DB 인스턴스에 SSRS를 활성화하려면 다음 프로세스를 사용합니다.

  1. 새 옵션 그룹을 생성하거나 기존 옵션 그룹을 선택합니다.

  2. [SSRS] 옵션을 옵션 그룹에 추가합니다.

  3. 옵션 그룹을 DB 인스턴스에 연동시킵니다.

  4. SSRS 리스너 포트의 Virtual Private Cloud(VPC) 보안 그룹에 대한 인바운드 액세스를 허용합니다.

SSRS용 옵션 그룹 생성

SSRS를 사용하려면 SQL Server 엔진과 사용할 DB 인스턴스 버전에 해당하는 옵션 그룹을 생성합니다. 이렇게 하려면 AWS Management Console 또는 AWS CLI를 사용합니다.

참고

올바른 SQL Server 엔진 및 버전인 경우 기존 옵션 그룹을 사용할 수도 있습니다.

다음 절차에서는 SQL Server Standard Edition 2017에 대한 옵션 그룹을 생성합니다.

옵션 그룹을 생성하려면

  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 탐색 창에서 옵션 그룹을 선택합니다.

  3. 그룹 생성(Create group)을 선택합니다.

  4. 보안 그룹 생성 창에서 다음을 수행합니다.

    1. [이름(Name)]에 AWS 계정 내에서 쉽게 식별할 수 있는 옵션 그룹 이름을 입력합니다(예: ssrs-se-2017). 이름은 글자, 숫자 및 하이픈만 사용 가능합니다.

    2. 설명에 옵션 그룹에 대한 간단한 설명을 입력합니다(예: SSRS option group for SQL Server SE 2017). 이 설명은 표시 용도로만 사용됩니다.

    3. 엔진에 대해 sqlserver-se를 선택합니다.

    4. 메이저 엔진 버전에 대해 14.00을 선택합니다.

  5. 생성(Create)을 선택합니다.

다음 절차에서는 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에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon 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 인스턴스와 연결할 수 있습니다.

  • 새 DB 인스턴스의 경우, 인스턴스를 시작할 때 옵션 그룹을 연결하십시오. 자세한 내용은 Amazon RDS DB 인스턴스 생성 섹션을 참조하세요.

  • 기존 DB 인스턴스의 경우 인스턴스를 수정하고 새 옵션 그룹을 연결합니다. 자세한 정보는 Amazon RDS DB 인스턴스 수정을 참조하십시오.

옵션 그룹을 새 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가 생성됩니다. 이러한 데이터베이스는 ReportServer 및 ReportServerTempDB 데이터베이스로 작동합니다. SSRS는 ReportServer 데이터베이스에 데이터를 저장하고 ReportServerTempDB 데이터베이스에 데이터를 캐시합니다.

RDS는 이러한 데이터베이스를 소유하고 관리하므로 ALTER 및 DROP 등의 데이터베이스 작업은 허용되지 않습니다. 그러나 rdsadmin_ReportServer 데이터베이스에서 읽기 작업을 수행할 수 있습니다.

SSRS 로그 파일

ReportServerService_timestamp.log 파일에 액세스할 수 있습니다. 이러한 보고서 서버 로그는 D:\rdsdbdata\Log\SSRS 디렉터리에 있습니다. (D:\rdsdbdata\Log 디렉터리는 오류 로그 및 SQL Server 에이전트 로그의 상위 디렉터리이기도 합니다.)

기존 SSRS 인스턴스의 경우 보고서 서버 로그에 액세스하려면 SSRS 서비스를 다시 시작해야 할 수 있습니다. SSRS 옵션을 업데이트하여 서비스를 재시작하면 됩니다.

자세한 정보는 Microsoft SQL Server 로그 작업을 참조하십시오.

SSRS 웹 포털 액세스

SSRS 웹 포털에 액세스하려면 다음 프로세스를 사용합니다.

  1. Secure Sockets Layer(SSL)를 활성화합니다.

  2. 도메인 사용자에게 액세스 권한을 부여합니다.

  3. 브라우저 및 도메인 사용자 자격 증명을 사용하여 웹 포털에 액세스합니다.

RDS에서 SSL 활성화

SSRS는 연결에 HTTPS SSL 프로토콜을 사용합니다. 이 프로토콜을 사용할 수 있도록 클라이언트 컴퓨터의 Microsoft Windows 운영 체제로 SSL 인증서를 가져옵니다.

SSL 인증서에 대한 자세한 내용은 SSL/TLS를 사용하여 DB 인스턴스에 대한 연결 암호화 단원을 참조하십시오. 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 함수를 호출합니다. 두 가지 파라미터가 필요합니다. 첫 번째 파라미터는 SSRS에 적용되지 않기 때문에 항상 NULL이어야 합니다. 두 번째 파라미터는 작업 ID를 수락합니다.

모든 작업 목록을 보려면 다음 예와 같이 첫 번째 파라미터를 NULL로, 두 번째 파라미터를 0으로 설정하십시오.

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

특정 작업을 수행하려면 다음 예와 같이 첫 번째 파라미터를 NULL로, 두 번째 파라미터를 작업 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에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon 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