

# Amazon RDS for SQL Server에서 SQL Server Reporting Services 지원
<a name="Appendix.SQLServer.Options.SSRS"></a>

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 2022, 모든 버전
+ SQL Server 2019, 버전 15.00.4043.16.v1 이상
+ SQL Server 2017, 버전 14.00.3223.3.v1 이상
+ SQL Server 2016, 13.00.5820.21.v1 이상 버전

**Contents**
+ [제한 및 권장 사항](#SSRS.Limitations)
+ [SSRS 설정](SSRS.Enabling.md)
  + [SSRS용 옵션 그룹 생성](SSRS.Enabling.md#SSRS.OptionGroup)
  + [옵션 그룹에 SSRS 옵션 추가](SSRS.Enabling.md#SSRS.Add)
  + [옵션 그룹을 DB 인스턴스와 연결](SSRS.Enabling.md#SSRS.Apply)
  + [VPC 보안 그룹에 대한 인바운드 액세스 허용](SSRS.Enabling.md#SSRS.Inbound)
+ [보고서 서버 데이터베이스](#SSRS.DBs)
+ [SSRS 로그 파일](#SSRS.Logs)
+ [SSRS 웹 포털 액세스](SSRS.Access.md)
  + [RDS에서 SSL 사용](SSRS.Access.md#SSRS.Access.SSL)
  + [도메인 사용자에게 액세스 권한 부여](SSRS.Access.md#SSRS.Access.Grant)
  + [웹 포털 액세스](SSRS.Access.md#SSRS.Access)
+ [보고서 배포 및 보고서 데이터 소스 구성](SSRS.DeployConfig.md)
  + [SSRS에 보고서 배포](SSRS.DeployConfig.md#SSRS.Deploy)
  + [보고서 데이터 소스 구성](SSRS.DeployConfig.md#SSRS.ConfigureDataSource)
+ [SSRS 이메일을 사용하여 보고서 보내기](SSRS.Email.md)
+ [시스템 수준 권한 취소](SSRS.Access.Revoke.md)
+ [작업의 상태 모니터링](SSRS.Monitor.md)
+ [SSRS 데이터베이스 비활성화 및 삭제](SSRS.DisableDelete.md)
  + [SSRS 해제](SSRS.DisableDelete.md#SSRS.Disable)
  + [SSRS 데이터베이스 삭제](SSRS.DisableDelete.md#SSRS.Drop)

## 제한 및 권장 사항
<a name="SSRS.Limitations"></a>

RDS for SQL Server에서 SSRS를 실행하는 경우 다음과 같은 제한 및 권장 사항이 적용됩니다.
+ 읽기 전용 복제본이 있는 DB 인스턴스에서는 SSRS를 사용할 수 없습니다.
+ 인스턴스에서 자체 관리형 Active Directory 또는 SSRS용 AWS Directory Service for Microsoft Active Directory 웹 포털 및 웹 서버 인증을 사용해야 합니다. 자세한 내용은 [RDS for SQL Server를 사용하여 Active Directory 작업](User.SQLServer.ActiveDirectoryWindowsAuth.md) 단원을 참조하십시오.
+ SSRS 옵션으로 만든 보고 서버 데이터베이스는 백업할 수 없습니다.
+ 다른 SSRS 인스턴스에서 보고서 서버 데이터베이스를 가져오고 복원하는 것은 지원되지 않습니다. 자세한 내용은 [보고서 서버 데이터베이스](#SSRS.DBs) 단원을 참조하십시오.
+ 기본 SSL 포트(443)에서 수신하도록 SSRS를 구성할 수 없습니다. 허용되는 값은 1150–49511(1234, 1434, 3260, 3343, 3389, 47001 제외)입니다.
+ Windows 파일 공유를 통한 구독은 지원되지 않습니다.
+ 보고 서비스 구성 관리자를 사용하는 것은 지원되지 않습니다.
+ 역할을 생성 및 수정하는 것은 지원되지 않습니다.
+ 보고서 서버 속성을 수정하는 것은 지원되지 않습니다.
+ 시스템 관리자 및 시스템 사용자 역할은 부여되지 않습니다.
+ 웹 포털을 통해 시스템 수준의 역할 할당을 편집할 수 없습니다.

# SSRS 설정
<a name="SSRS.Enabling"></a>

다음 프로세스를 사용하여 DB 인스턴스에 대해 SSRS를 켭니다.

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

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

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

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

## SSRS용 옵션 그룹 생성
<a name="SSRS.OptionGroup"></a>

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

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

### 콘솔
<a name="SSRS.OptionGroup.Console"></a>

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

**옵션 그룹을 생성하려면**

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

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

1. **그룹 생성**을 선택합니다.

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

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

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

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

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

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

### CLI
<a name="SSRS.OptionGroup.CLI"></a>

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

**옵션 그룹을 생성하려면**
+ 다음 명령 중 하나를 실행합니다.

**Example**  
대상 LinuxmacOS, 또는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 옵션 추가
<a name="SSRS.Add"></a>

그런 다음 AWS Management Console 또는 AWS CLI를 사용하여 `SSRS` 옵션을 옵션 그룹에 추가합니다.

### 콘솔
<a name="SSRS.Add.CON"></a>

**SSRS 옵션을 추가하려면**

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

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

1. 방금 생성한 옵션 그룹을 선택한 다음 **옵션 추가**를 선택합니다.

1. **옵션 세부 정보**에서 **옵션 이름**으로 **SSRS**를 선택합니다.

1. **옵션 설정**에서 다음을 수행합니다.

   1. SSRS 서비스가 수신할 포트를 입력합니다. 기본값은 8443입니다. 허용되는 값 목록은 [제한 및 권장 사항](Appendix.SQLServer.Options.SSRS.md#SSRS.Limitations) 단원을 참조하십시오.

   1. **최대 메모리**에 값을 입력합니다.

      **최대 메모리**는 상한 임계값을 지정합니다. 이 임계값을 넘으면 보고서 서버 애플리케이션에 새 메모리 할당 요청이 수락되지 않습니다. 숫자는 DB 인스턴스에 대한 총 메모리 비율입니다. 허용되는 값은 10–80입니다.

   1. **보안 그룹**의 경우 옵션과 연결할 VPC 보안 그룹을 선택합니다. DB 인스턴스와 연결된 보안 그룹을 사용합니다.

1. SSRS 이메일을 사용하여 보고서를 보내려면 **보고 서비스의 이메일 배달** 아래에서 **이메일 배달 옵션 구성** 확인란을 선택한 후 다음을 수행합니다.

   1. **발신자 이메일 주소**에 대해 SSRS 이메일에서 보낸 메시지의 **보낸 사람** 필드에 사용할 이메일 주소를 입력합니다.

      SMTP 서버에서 메일을 보낼 수 있는 권한이 있는 사용자 계정을 지정합니다.

   1. 에 대한**SMTP 서버**, 사용할 SMTP 서버 또는 게이트웨이를 지정합니다.

      IP 주소, 회사 인트라넷에 있는 컴퓨터의 NetBIOS 이름 또는 정규화된 도메인 이름이 될 수 있습니다.

   1. **SMTP 포트**에 메일 서버에 연결할 때 사용할 포트를 입력합니다. 기본값은 25입니다.

   1. 인증을 사용하려면:

      1. **인증 사용**확인란을 선택합니다.

      1. **Secret Amazon 리소스 이름(ARN**)에 사용자 자격 증명에 대한 AWS Secrets Manager ARN을 입력합니다.

         다음 형식을 사용합니다.

         **arn:aws:secretsmanager:*Region*:*AccountId*:secret:*SecretName*-*6RandomCharacters***

         예:

         **arn:aws:secretsmanager:*us-west-2*:*123456789012*:secret:*MySecret-a1b2c3***

         새 SFTP 비밀 생성에 대한 자세한 정보는 [SSRS 이메일을 사용하여 보고서 보내기](SSRS.Email.md) 단원을 참조하십시오.

   1. SSL을 사용하여 이메일 메시지를 암호화하려면 **SSL(Secure Sockets Layer) 사용** 확인란을 선택합니다.

1. **예약**에서 옵션을 즉시 추가할지 또는 다음 유지 관리 기간에 추가할지를 선택합니다.

1. **옵션 추가**를 선택합니다.

### CLI
<a name="SSRS.Add.CLI"></a>

**SSRS 옵션을 추가하려면**

1. JSON 파일 (예: `ssrs-option.json`)을 새 제품으로 합니다.

   1. 다음 필수 파라미터를 설정합니다.
      + `OptionGroupName` – 이전에 생성했거나 선택한 옵션 그룹의 이름입니다(다음 예의 경우 `ssrs-se-2017`).
      + `Port` – SSRS 서비스가 수신할 포트입니다. 기본값은 8443입니다. 허용되는 값 목록은 [제한 및 권장 사항](Appendix.SQLServer.Options.SSRS.md#SSRS.Limitations) 단원을 참조하십시오.
      + `VpcSecurityGroupMemberships` – RDS DB 인스턴스에 대한 VPC 보안 그룹 멤버십입니다.
      + `MAX_MEMORY` – 상한 임계값을 지정합니다. 이 임계값을 넘으면 보고서 서버 애플리케이션에 새 메모리 할당 요청이 수락되지 않습니다. 숫자는 DB 인스턴스에 대한 총 메모리 비율입니다. 허용되는 값은 10–80입니다.

   1. (선택 사항) SSRS 이메일을 사용하려면 다음 파라미터를 설정합니다.
      + `SMTP_ENABLE_EMAIL` — `true`로 설정하여 SSRS 이메일을 사용합니다. 기본값은 `false`입니다.
      + `SMTP_SENDER_EMAIL_ADDRESS` — SSRS 이메일에서 보낸 메시지의 **보낸 사람** 필드에 사용할 전자 메일 주소입니다. SMTP 서버에서 메일을 보낼 수 있는 권한이 있는 사용자 계정을 지정합니다.
      + `SMTP_SERVER` — 사용할 SMTP 서버 또는 게이트웨이입니다. IP 주소, 회사 인트라넷에 있는 컴퓨터의 NetBIOS 이름 또는 정규화된 도메인 이름이 될 수 있습니다.
      + `SMTP_PORT` — 메일 서버에 연결하는 데 사용할 포트입니다. 기본값은 25입니다.
      + `SMTP_USE_SSL` — `true`를 설정하여 SSL을 사용하는 이메일 메시지를 암호화합니다. 기본값은 `true`입니다.
      + `SMTP_EMAIL_CREDENTIALS_SECRET_ARN` — 사용자 자격 증명을 보관하는 Secrets Manager ARN. 다음 형식을 사용합니다.

        **arn:aws:secretsmanager:*Region*:*AccountId*:secret:*SecretName*-*6RandomCharacters***

        비밀 생성에 대한 자세한 내용은 [SSRS 이메일을 사용하여 보고서 보내기](SSRS.Email.md) 단원을 참조하세요.
      + `SMTP_USE_ANONYMOUS_AUTHENTICATION` — 인증을 사용하지 않으려면 `true`로 설정하고 `SMTP_EMAIL_CREDENTIALS_SECRET_ARN`을 포함하지 마세요.

        기본값은 `SMTP_ENABLE_EMAIL`이 `true`일 때 `false`입니다.

   다음 예에는 암호 ARN을 사용하는 SSRS 이메일 파라미터가 포함되어 있습니다.

   ```
   {
   "OptionGroupName": "ssrs-se-2017",
   "OptionsToInclude": [
   	{
   	"OptionName": "SSRS",
   	"Port": 8443,
   	"VpcSecurityGroupMemberships": ["sg-0abcdef123"],
   	"OptionSettings": [
               {"Name": "MAX_MEMORY","Value": "60"},
               {"Name": "SMTP_ENABLE_EMAIL","Value": "true"}
               {"Name": "SMTP_SENDER_EMAIL_ADDRESS","Value": "nobody@example.com"},
               {"Name": "SMTP_SERVER","Value": "email-smtp.us-west-2.amazonaws.com"},
               {"Name": "SMTP_PORT","Value": "25"},
               {"Name": "SMTP_USE_SSL","Value": "true"},
               {"Name": "SMTP_EMAIL_CREDENTIALS_SECRET_ARN","Value": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret-a1b2c3"}
               ]
   	}],
   "ApplyImmediately": true
   }
   ```

1. [`SSRS`] 옵션을 옵션 그룹에 추가합니다.  
**Example**  

   대상 LinuxmacOS, 또는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 인스턴스와 연결
<a name="SSRS.Apply"></a>

AWS Management Console 또는 AWS CLI를 사용하여 옵션 그룹을 DB 인스턴스와 연결할 수 있습니다.

기존 DB 인스턴스를 사용하는 경우 이미 Active Directory 도메인과 AWS Identity and Access Management(IAM) 역할이 연결되어 있어야 합니다. 새 인스턴스를 생성하는 경우 기존 Active Directory 도메인 및 IAM 역할을 지정합니다. 자세한 내용은 [RDS for SQL Server를 사용하여 Active Directory 작업](User.SQLServer.ActiveDirectoryWindowsAuth.md) 섹션을 참조하세요.

### 콘솔
<a name="SSRS.Apply.Console"></a>

옵션 그룹을 새 DB 인스턴스 또는 기존 DB 인스턴스와 연결할 수 있습니다.
+ 새 DB 인스턴스의 경우, 인스턴스를 시작할 때 옵션 그룹을 연결하십시오. 자세한 내용은 [Amazon RDS DB 인스턴스 생성](USER_CreateDBInstance.md) 섹션을 참조하세요.
+ 기존 DB 인스턴스의 경우 인스턴스를 수정하고 새 옵션 그룹을 연결합니다. 자세한 내용은 [Amazon RDS DB 인스턴스 수정](Overview.DBInstance.Modifying.md)을 참조하세요.

### CLI
<a name="SSRS.Apply.CLI"></a>

옵션 그룹을 새 DB 인스턴스 또는 기존 DB 인스턴스와 연결할 수 있습니다.

**옵션 그룹을 사용하는 DB 인스턴스를 생성하려면**
+ 옵션 그룹을 생성할 때 사용한 것과 동일한 DB 엔진 유형과 메이저 버전을 지정합니다.  
**Example**  

  대상 LinuxmacOS, 또는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 \
      --manage-master-user-password  \
      --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 ^
      --manage-master-user-password ^
      --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 인스턴스를 수정하려면**
+ 다음 명령 중 하나를 실행합니다.  
**Example**  

  대상 LinuxmacOS, 또는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 보안 그룹에 대한 인바운드 액세스 허용
<a name="SSRS.Inbound"></a>

DB 인스턴스와 연결된 VPC 보안 그룹에 대한 인바운드 액세스를 허용하려면 지정된 SSRS 리스너 포트에 대한 인바운드 규칙을 생성합니다. 보안 그룹 설정에 대한 자세한 내용은 [보안 그룹을 생성하여 VPC 내부의 DB 인스턴스에 대한 액세스를 제공](CHAP_SettingUp.md#CHAP_SettingUp.SecurityGroup) 단원을 참조하십시오.

## 보고서 서버 데이터베이스
<a name="SSRS.DBs"></a>

DB 인스턴스가 SSRS 옵션과 연결되면 DB 인스턴스에 두 개의 새 데이터베이스가 생성됩니다.
+ `rdsadmin_ReportServer`
+ `rdsadmin_ReportServerTempDB`

이러한 데이터베이스는 ReportServer 및 ReportServerTempDB 데이터베이스로 작동합니다. SSRS는 ReportServer 데이터베이스에 데이터를 저장하고 ReportServerTempDB 데이터베이스에 데이터를 캐시합니다. 자세한 정보는 Microsoft 문서의 [보고서 서버 데이터베이스](https://learn.microsoft.com/en-us/sql/reporting-services/report-server/report-server-database-ssrs-native-mode?view=sql-server-ver15)를 참조하세요.

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

## SSRS 로그 파일
<a name="SSRS.Logs"></a>

SSRS 로그 파일을 나열하고 보고 다운로드할 수 있습니다. SSRS 로그 파일은 ReportServerService\$1*timestamp*.log의 명명 규칙을 따릅니다. 이러한 보고서 서버 로그는 `D:\rdsdbdata\Log\SSRS` 디렉터리에 있습니다. (`D:\rdsdbdata\Log` 디렉터리는 오류 로그 및 SQL Server 에이전트 로그의 상위 디렉터리이기도 합니다.) 자세한 내용은 [데이터베이스 로그 파일 보기 및 나열](USER_LogAccess.Procedural.Viewing.md) 단원을 참조하십시오.

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

자세한 내용은 [Amazon RDS for Microsoft SQL Server 로그 작업](Appendix.SQLServer.CommonDBATasks.Logs.md)을 참조하세요.

# SSRS 웹 포털 액세스
<a name="SSRS.Access"></a>

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

1. Secure Sockets Layer(SSL) 설정

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

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

## RDS에서 SSL 사용
<a name="SSRS.Access.SSL"></a>

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

SSL 인증서에 대한 자세한 내용은 [SSL/TLS를 사용하여 DB 인스턴스 또는 클러스터 에 대한 연결 암호화](UsingWithRDS.SSL.md) 단원을 참조하십시오. SQL Server에서 SSL을 사용하는 방법에 대한 자세한 내용은 [Microsoft SQL Server DB 인스턴스와 함께 SSL 사용](SQLServer.Concepts.General.SSL.Using.md) 단원을 참조하십시오.

## 도메인 사용자에게 액세스 권한 부여
<a name="SSRS.Access.Grant"></a>

새 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` 역할도 부여됩니다.

## 웹 포털 액세스
<a name="SSRS.Access"></a>

`SSRS_GRANT_PORTAL_PERMISSION` 작업이 성공적으로 완료되면 웹 브라우저를 사용하여 포털에 액세스할 수 있습니다. 웹 포털 URL의 형식은 다음과 같습니다.

```
https://rds_endpoint:port/Reports
```

위의 형식에서 각 요소는 다음과 같습니다.
+ *`rds_endpoint`* – SSRS와 함께 사용 중인 RDS DB 인스턴스의 엔드포인트입니다.

  이 엔드포인트는 DB 인스턴스의 **연결 및 보안** 탭에서 찾을 수 있습니다. 자세한 내용은 [Microsoft SQL Server DB 인스턴스에 연결](USER_ConnectToMicrosoftSQLServerInstance.md) 섹션을 참조하세요.
+ `port` – `SSRS` 옵션에서 설정한 SSRS의 리스너 포트입니다.

**웹 포털에 액세스하려면**

1. 브라우저에 웹 포털 URL을 입력합니다.

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

1. `SSRS_GRANT_PORTAL_PERMISSION` 작업을 통해 액세스 권한을 부여한 도메인 사용자의 자격 증명으로 로그인합니다.

# 보고서 배포 및 보고서 데이터 소스 구성
<a name="SSRS.DeployConfig"></a>

다음 절차에 따라 보고서를 SSRS에 배포하고 보고 데이터 소스를 구성합니다.

**Topics**
+ [SSRS에 보고서 배포](#SSRS.Deploy)
+ [보고서 데이터 소스 구성](#SSRS.ConfigureDataSource)

## SSRS에 보고서 배포
<a name="SSRS.Deploy"></a>

웹 포털에 대한 액세스 권한이 있으면 웹 포털에 보고서를 배포할 수 있습니다. 웹 포털의 업로드 도구를 사용하여 보고서를 업로드하거나 [SQL Server 데이터 도구(SSDT)](https://docs.microsoft.com/en-us/sql/ssdt/download-sql-server-data-tools-ssdt)에서 직접 배포할 수 있습니다. SSDT에서 배포하는 경우 다음을 확인하세요.
+ SSDT를 시작한 사용자가 SSRS 웹 포털에 액세스할 수 있습니다.
+ SSRS 프로젝트 속성의 `TargetServerURL` 값이 다음과 같이 `ReportServer` 접미사가 붙은 RDS DB 인스턴스의 HTTPS 엔드포인트로 설정됩니다.

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

## 보고서 데이터 소스 구성
<a name="SSRS.ConfigureDataSource"></a>

보고서를 SSRS에 배포한 후에는 보고서 데이터 소스를 구성해야 합니다. 보고서 데이터 소스를 구성할 때 다음 요구 사항을 충족해야 합니다.
+ AWS Directory Service for Microsoft Active Directory에 연결된 RDS for SQL Server DB 인스턴스의 경우 정규화된 도메인 이름(FQDN)을 연결 문자열의 데이터 소스 이름으로 사용합니다. 예를 들어 `myssrsinstance.corp-ad.example.com`입니다. 여기서 `myssrsinstance`는 DB 인스턴스 이름이고 `corp-ad.example.com`은 정규화된 도메인 이름입니다.
+ 자체 관리형 Active Directory에 연결된 RDS for SQL Server DB 인스턴스의 경우 `.` 또는 `LocalHost`를 연결 문자열의 데이터 소스 이름으로 사용합니다.

# SSRS 이메일을 사용하여 보고서 보내기
<a name="SSRS.Email"></a>

SSRS에는 사용자에게 보고서를 보내는 데 사용할 수 있는 SSRS 전자 메일 확장이 포함되어 있습니다.

SSRS 이메일을 구성하려면 `SSRS` 옵션 설정을 사용합니다. 자세한 내용은 [옵션 그룹에 SSRS 옵션 추가](SSRS.Enabling.md#SSRS.Add)을 참조하세요.

SSRS 이메일을 구성한 후 보고서 서버에서 보고서를 구독할 수 있습니다. 자세한 내용은 [보고 서비스를 통한 이메일 전달](https://docs.microsoft.com/en-us/sql/reporting-services/subscriptions/e-mail-delivery-in-reporting-services)을 알아보려면 다음 섹션을 참조하세요.마이크로소프트 설명서에서

SSRS 이메일이 RDS에서 작동하려면 AWS Secrets Manager와의 통합이 필요합니다. Secrets Manager와 통합하려면 보안 암호를 생성합니다.

**참고**  
나중에 암호를 변경하는 경우 옵션 그룹의 `SSRS` 옵션도 업데이트해야 합니다.

**SSRS 이메일에 보안 암호를 만들려면**

1. *AWS Secrets Manager 사용 설명서*의 [암호 생성](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html) 단계를 따릅니다.

   1. **암호 유형 선택**에서 **다른 유형의 암호**를 선택합니다.

   1. **키/값 쌍**의 경우 다음을 입력합니다.
      + **SMTP\$1USERNAME** - SMTP 서버에서 메일을 보낼 권한이 있는 사용자를 입력합니다.
      + **SMTP\$1PASSWORD** - SMTP 사용자의 암호를 입력합니다.

   1. **암호화 키**의 경우 기본 AWS KMS key을 사용하지 않습니다. 기존의 키를 사용하거나 새 키를 생성합니다.

      KMS 키 정책은 다음과 같은 `kms:Decrypt` 작업을 허용해야 합니다.

      ```
      {
          "Sid": "Allow use of the key",
          "Effect": "Allow",
          "Principal": {
              "Service": [
                  "rds.amazonaws.com"
              ]
          },
          "Action": [
              "kms:Decrypt"
          ],
          "Resource": "*"
      }
      ```

1. *AWS Secrets Manager 사용 설명서*의 [암호에 권한 정책 연결](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_resource-policies.html)의 단계를 따르세요. 권한 정책은 `rds.amazonaws.com` 서비스 주체에게 `secretsmanager:GetSecretValue` 작업을 제공합니다.

   *혼란스러운 대리인* 문제를 피하기 위해 정책의 `aws:sourceAccount` 및 `aws:sourceArn` 조건을 사용하는 것이 좋습니다. `aws:sourceAccount`에 대해 AWS 계정 및 `aws:sourceArn`의 옵션 그룹 ARN을 사용합니다. 자세한 내용은 [교차 서비스 혼동된 대리자 문제 방지](cross-service-confused-deputy-prevention.md) 단원을 감사하세요.

   다음 예는 권한 정책을 보여 줍니다.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement" : [ {
       "Effect" : "Allow",
       "Principal" : {
         "Service" : "rds.amazonaws.com"
       },
       "Action" : "secretsmanager:GetSecretValue",
       "Resource" : "*",
       "Condition" : {
         "StringEquals" : {
           "aws:sourceAccount" : "123456789012"
         },
         "ArnLike" : {
           "aws:sourceArn" : "arn:aws:rds:us-west-2:123456789012:og:ssrs-se-2017"
         }
       }
     } ]
   }
   ```

------

   더 많은 예제는 **AWS Secrets Manager 사용 설명서의 [AWS Secrets Manager에 대한 권한 정책 예](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples.html)를 참조하세요.

# 시스템 수준 권한 취소
<a name="SSRS.Access.Revoke"></a>

`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` 항목 수준 역할(역할을 가진 경우)에서 삭제됩니다.

# 작업의 상태 모니터링
<a name="SSRS.Monitor"></a>

권한 부여 또는 취소 작업의 상태를 추적하려면 `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의 경우 작업 유형은 다음과 같을 수 있습니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/SSRS.Monitor.html)  | 
| `database_name` | SSRS 작업에는 적용되지 않습니다. | 
| `% complete` | 백분율로 나타낸 작업의 진행률입니다. | 
| `duration (mins)` | 작업에 소요된 시간입니다(분). | 
| `lifecycle` |  작업의 상태입니다. 가능한 상태는 다음과 같습니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/SSRS.Monitor.html)  | 
| `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 데이터베이스 비활성화 및 삭제
<a name="SSRS.DisableDelete"></a>

다음 절차에 따라 SSRS를 비활성화하고 SSRS 데이터베이스를 삭제합니다.

**Topics**
+ [SSRS 해제](#SSRS.Disable)
+ [SSRS 데이터베이스 삭제](#SSRS.Drop)

## SSRS 해제
<a name="SSRS.Disable"></a>

SSRS를 해제하려면 해당 옵션 그룹에서 `SSRS` 옵션을 제거합니다. 이 옵션을 제거해도 SSRS 데이터베이스는 삭제되지 않습니다. 자세한 내용은 [SSRS 데이터베이스 삭제](#SSRS.Drop)을 참조하세요.

`SSRS` 옵션을 다시 추가하여 SSRS를 다시 켤 수 있어야 합니다. SSRS 데이터베이스도 삭제한 경우 동일한 DB 인스턴스에서 옵션을 읽으면 새 보고서 서버 데이터베이스가 생성됩니다.

### 콘솔
<a name="SSRS.Disable.Console"></a>

**옵션 그룹에서 SSRS 옵션을 제거하려면**

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

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

1. `SSRS` 옵션이 있는 옵션 그룹을 선택합니다(이전 예제의 경우 `ssrs-se-2017`).

1. **옵션 삭제**를 선택합니다.

1. **옵션 삭제**에서 **SSRS** 또는 **삭제할 옵션**을 선택합니다.

1. **즉시 적용**에서 옵션을 즉시 삭제하려면 **예**를 선택하고 다음 유지 관리 기간에 삭제하려면 **아니오**를 선택합니다.

1. **Delete**(삭제)를 선택합니다.

### CLI
<a name="SSRS.Disable.CLI"></a>

**옵션 그룹에서 SSRS 옵션을 제거하려면**
+ 다음 명령 중 하나를 실행합니다.  
**Example**  

  대상 LinuxmacOS, 또는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 데이터베이스 삭제
<a name="SSRS.Drop"></a>

`SSRS` 옵션을 제거해도 보고서 서버 데이터베이스는 삭제되지 않습니다. 삭제하려면 다음 저장 프로시저를 사용합니다.

보고서 서버 데이터베이스를 삭제하려면 먼저 `SSRS` 옵션을 제거해야 합니다.

**SSRS 데이터베이스를 삭제하려면**
+ 다음 저장 프로시저를 사용합니다.

  ```
  exec msdb.dbo.rds_drop_ssrs_databases
  ```