

# Amazon RDS for SQL Server での SQL Server Integration Services のサポート
<a name="Appendix.SQLServer.Options.SSIS"></a>

Microsoft SQL Server Integration Services (SSIS) は、幅広いデータ移行タスクの実行に使用できるコンポーネントです。SSIS は、データ統合およびワークフローアプリケーションに対応したプラットフォームです。データの抽出、変換、ロード (ETL) に使用されるデータウェアハウジングツールを備えています。このツールを使用して、SQL Server データベースのメンテナンスと多次元キューブデータの更新を自動化することもできます。

SSIS プロジェクトはパッケージに編成されて、XML ベースの .dtsx ファイルとして保存されます。パッケージには、制御フローとデータフローを含めることができます。データフローを使用して、ETL オペレーションを表します。デプロイ後、パッケージは SQL Server の SSISDB データベースに保存されます。SSISDB は、完全復旧モードで動作するオンライントランザクション処理 (OLTP) データベースです。

Amazon RDS for SQL Server は RDS DB インスタンスでの SSIS の直接実行をサポートしています。既存または新規の DB インスタンスで SSIS を有効にできます。SSIS はデータベースエンジンと同じ DB インスタンスにインストールされます。

RDS は、次のバージョンで SQL Server スタンダードエディションおよびエンタープライズエディションの SSIS をサポートします。
+ SQL Server 2022、すべてのバージョン
+ SQL Server 2019、バージョン 15.00.4043.16.v1 以降
+ SQL Server 2017、バージョン 14.00.3223.3.v1 以降
+ SQL Server 2016、バージョン 13.00.5426.0.v1 以降

**Contents**
+ [制限と推奨事項](#SSIS.Limitations)
+ [SSIS の有効化](#SSIS.Enabling)
  + [SSIS のオプショングループの作成](#SSIS.OptionGroup)
  + [オプショングループへの SSIS オプションの追加](#SSIS.Add)
  + [SSIS のパラメータグループの作成](#SSIS.CreateParamGroup)
  + [SSIS のパラメータの変更](#SSIS.ModifyParam)
  + [オプショングループとパラメータグループを DB インスタンスに関連付ける](#SSIS.Apply)
  + [S3 統合を有効にする](#SSIS.EnableS3)
+ [SSISDB の管理権限](SSIS.Permissions.md)
  + [SSIS 用の Windows 認証ユーザーの設定](SSIS.Permissions.md#SSIS.Use.Auth)
+ [SSIS プロジェクトのデプロイ](SSIS.Deploy.md)
+ [デプロイタスクのステータスのモニタリング](SSIS.Monitor.md)
+ [SSIS の使用](SSIS.Use.md)
  + [SSIS プロジェクトのデータベース接続マネージャーの設定](SSIS.Use.md#SSIS.Use.ConnMgrs)
  + [SSIS プロキシの作成](SSIS.Use.md#SSIS.Use.Proxy)
  + [SQL Server エージェントを使用した SSIS パッケージのスケジュール](SSIS.Use.md#SSIS.Use.Schedule)
  + [プロキシからの SSIS アクセスの取り消し](SSIS.Use.md#SSIS.Use.Revoke)
+ [SSIS データベースの無効化と削除](SSIS.DisableDrop.md)
  + [SSIS の無効化](SSIS.DisableDrop.md#SSIS.Disable)
  + [SSISDB データベースの削除](SSIS.DisableDrop.md#SSIS.Drop)

## 制限と推奨事項
<a name="SSIS.Limitations"></a>

RDS for SQL Server で SSIS を実行する場合は、以下の制限と推奨事項が適用されます。
+ また、DB インスタンスには、`clr enabled` パラメータが 1 に設定されたパラメータグループが関連付けられている必要があります。詳細については、「[SSIS のパラメータの変更](#SSIS.ModifyParam)」を参照してください。
**注記**  
SQL Server 2017 または 2019 で `clr enabled` パラメータを有効にしている場合、DB インスタンスで共通言語ランタイム (CLR) を使用できません。詳細については、「[サポート対象外の機能とサポートが制限されている機能](SQLServer.Concepts.General.FeatureNonSupport.md)」を参照してください。
+ 以下の制御フロータスクがサポートされています。
  + Analysis Services DDL 実行タスク
  + Analysis Services 処理タスク
  + 一括挿入タスク
  + データベース整合性チェックタスク
  + データフロータスク
  + データマイニングクエリタスク
  + データプロファイリングタスク
  + パッケージ実行タスク
  + SQL Server エージェントジョブ実行タスク
  + SQL 実行タスク
  + T-SQL ステートメント実行タスク
  + オペレーター通知タスク
  + インデックス再構築タスク
  + インデックス再編成タスク
  + データベース縮小タスク
  + データベース転送タスク
  + ジョブ転送タスク
  + ログイン転送タスク
  + SQL Server オブジェクト転送タスク
  + 統計更新タスク
+ プロジェクトのデプロイのみがサポートされています。
+ SQL Server エージェントを使用した SSIS パッケージの実行がサポートされています。
+ SSIS ログレコードは、ユーザーが作成したデータベースにのみ挿入できます。
+ ファイルの操作には `D:\S3` フォルダのみを使用します。他のディレクトリにあるファイルは削除されます。ファイルの場所について、そのほか以下の詳細にも注意してください。
  + SSIS プロジェクトの入力ファイルと出力ファイルは `D:\S3` フォルダに配置します。
  + データフロータスクの場合、`BLOBTempStoragePath` と `BufferTempStoragePath` の場所を `D:\S3` フォルダ内のファイルに変更します。ファイルパスは `D:\S3\` で始まる必要があります。
  + ファイル接続に使用されるすべてのパラメータ、可変、表現が `D:\S3` フォルダを指していることを確認します。
  + マルチ AZ インスタンスでは、SSIS によって `D:\S3` フォルダに作成されたファイルは、フェイルオーバー後に削除されます。詳細については、「[S3 統合のマルチ AZ の制限](User.SQLServer.Options.S3-integration.md#S3-MAZ)」を参照してください。
  + SSIS によって `D:\S3` フォルダに作成されたファイルは、耐久性を高めるために、Amazon S3 バケットにアップロードします。
+ 列のインポートと列のエクスポートの変換、およびデータフロータスクのスクリプトコンポーネントはサポートされていません。
+ SSIS パッケージの実行時にダンプを有効にしたり、SSIS パッケージにデータタップを追加したりすることはできません。
+ SSIS スケールアウト機能はサポートされていません。
+ プロジェクトを直接デプロイすることはできません。この機能を実行するための RDS ストアドプロシージャが提供されています。詳細については、「[SSIS プロジェクトのデプロイ](SSIS.Deploy.md)」を参照してください。
+ RDS にデプロイする SSIS プロジェクト (.ispac) ファイルは `DoNotSavePasswords` 保護モードで構築します。
+ SSIS は、リードレプリカを使用する Always On インスタンスではサポートされていません。
+ `SSIS` オプションに関連付けられている SSISDB データベースをバックアップすることはできません。
+ SSIS の他のインスタンスからの SSISDB データベースのインポートと復元はサポートされていません。
+ 他の SQL Server DB インスタンスまたは Oracle データソースに接続できます。RDS for SQL Server 上の SSIS では、MySQL または PostgreSQL などの他のデータベースエンジンへの接続はサポートされていません。Oracle データソースへの接続に関する詳細については、[Oracle OLEDB とリンクされたサーバー](Appendix.SQLServer.Options.LinkedServers_Oracle_OLEDB.md) を参照してください。
+ SSIS は、オンプレミスドメインへの送信の信頼を持つドメイン参加インスタンスをサポートしていません。送信の信頼を使用する場合は、ローカル AWS ドメインのアカウントから SSIS ジョブを実行します。
+ ファイルシステムベースのパッケージの実行はサポートされていません。

## SSIS の有効化
<a name="SSIS.Enabling"></a>

SSIS を有効にするには、DB インスタンスに SSIS オプションを追加します。以下のプロセスを使用します。

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

1. オプショングループに [`SSIS`] オプションを追加します。

1. 新しいパラメータグループを作成するか、既存のパラメータグループを選択します。

1. パラメータグループを変更して、`clr enabled` パラメータを 1 に設定します。

1. オプショングループとパラメータグループを DB インスタンスに関連付けます。

1. Amazon S3 統合を有効にする

**注記**  
DB インスタンスに既に SSISDB という名前のデータベースがある場合や、SSIS ログインが予約されている場合、そのインスタンスで SSIS を有効にすることはできません。

### SSIS のオプショングループの作成
<a name="SSIS.OptionGroup"></a>

SSIS を使用するには、使用する DB インスタンスの SQL Server のエディションとバージョンに対応するオプショングループを作成または変更します。そのためには、AWS マネジメントコンソール または AWS CLI を使用します。

#### コンソール
<a name="SSIS.OptionGroup.Console"></a>

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

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

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

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

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

1. [**Create subnet group**(オプショングループの作成)] ウィンドウで以下を行います。

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

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

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

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

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

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

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

**オプショングループを作成するには**
+ 以下のいずれかのコマンドを実行します。  
**Example**  

  Linux、macOS、Unix の場合:

  ```
  aws rds create-option-group \
      --option-group-name {{ssis-se-2016}} \
      --engine-name {{sqlserver-se}} \
      --major-engine-version {{13.00}} \
      --option-group-description "{{SSIS option group for SQL Server SE 2016}}"
  ```

  Windows の場合:

  ```
  aws rds create-option-group ^
      --option-group-name {{ssis-se-2016}} ^
      --engine-name {{sqlserver-se}} ^
      --major-engine-version {{13.00}} ^
      --option-group-description "{{SSIS option group for SQL Server SE 2016}}"
  ```

### オプショングループへの SSIS オプションの追加
<a name="SSIS.Add"></a>

次に、AWS マネジメントコンソール または AWS CLI を使用して `SSIS` オプションをオプショングループに追加します。

#### コンソール
<a name="SSIS.Add.Console"></a>

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

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

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

1. 作成したオプショングループ (この例では **ssis-se-2016**) を選択します。

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

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

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

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

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

**SSIS オプションを追加するには**
+ オプショングループに [`SSIS`] オプションを追加します。  
**Example**  

  Linux、macOS、Unix の場合:

  ```
  aws rds add-option-to-option-group \
      --option-group-name {{ssis-se-2016}} \
      --options OptionName=SSIS \
      --apply-immediately
  ```

  Windows の場合:

  ```
  aws rds add-option-to-option-group ^
      --option-group-name {{ssis-se-2016}} ^
      --options OptionName=SSIS ^
      --apply-immediately
  ```

### SSIS のパラメータグループの作成
<a name="SSIS.CreateParamGroup"></a>

SSIS で使用する DB インスタンスの SQL Server のエディションとバージョンに対応する `clr enabled` パラメータのパラメータグループを作成または変更します。

#### コンソール
<a name="SSIS.CreateParamGroup.Console"></a>

以下の例では、SQL Server Standard Edition 2016 のパラメータグループを作成します。

**パラメータグループを作成するには**

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、**[パラメータグループ]** を選択します。

1. [**Create parameter group**] を選択します。

1. [**パラメータグループの作成**] ペインで、次の操作を行います。

   1. [**パラメータグループファミリー**] で、[**sqlserver-se-13.0**] を選択します。

   1. [**グループ名**] に、パラメータグループの識別子 (**ssis-sqlserver-se-13** など) を入力します。

   1. [**説明**] に「**clr enabled parameter group**」と入力します。

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

#### CLI
<a name="SSIS.CreateParamGroup.CLI"></a>

以下の例では、SQL Server Standard Edition 2016 のパラメータグループを作成します。

**パラメータグループを作成するには**
+ 以下のいずれかのコマンドを実行します。  
**Example**  

  Linux、macOS、Unix の場合:

  ```
  aws rds create-db-parameter-group \
      --db-parameter-group-name {{ssis-sqlserver-se-13}} \
      --db-parameter-group-family "{{sqlserver-se-13.0}}" \
      --description "{{clr enabled parameter group}}"
  ```

  Windows の場合:

  ```
  aws rds create-db-parameter-group ^
      --db-parameter-group-name {{ssis-sqlserver-se-13}} ^
      --db-parameter-group-family "{{sqlserver-se-13.0}}" ^
      --description "{{clr enabled parameter group}}"
  ```

### SSIS のパラメータの変更
<a name="SSIS.ModifyParam"></a>

DB インスタンスの SQL Server のエディションとバージョンに対応するパラメータグループの `clr enabled` パラメータを変更します。SSIS の場合、`clr enabled` パラメータを 1 に設定します。

#### コンソール
<a name="SSIS.ModifyParam.Console"></a>

以下の手順では、SQL Server Standard Edition 2016 用に作成したパラメータグループを変更します。

**パラメータグループを変更するには**

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、[**パラメータグループ**] を選択します。

1. [**ssis-sqlserver-se-13**] などのパラメータグループを選択します。

1. [**パラメータ**] で、パラメータのリストを **clr** でフィルタ処理します。

1. [**clr enabled (clr 有効化)**] を選択します。

1. [**Edit parameters**] を選択します。

1. [**Values (値)**] から [**1**] を選択します。

1. **[Save changes]** (変更の保存) をクリックします。

#### CLI
<a name="SSIS.ModifyParam.CLI"></a>

以下の手順では、SQL Server Standard Edition 2016 用に作成したパラメータグループを変更します。

**パラメータグループを変更するには**
+ 以下のいずれかのコマンドを実行します。  
**Example**  

  Linux、macOS、Unix の場合:

  ```
  aws rds modify-db-parameter-group \
      --db-parameter-group-name {{ssis-sqlserver-se-13}} \
      --parameters "ParameterName='clr enabled',ParameterValue={{1}},ApplyMethod=immediate"
  ```

  Windows の場合:

  ```
  aws rds modify-db-parameter-group ^
      --db-parameter-group-name {{ssis-sqlserver-se-13}} ^
      --parameters "ParameterName='clr enabled',ParameterValue={{1}},ApplyMethod=immediate"
  ```

### オプショングループとパラメータグループを DB インスタンスに関連付ける
<a name="SSIS.Apply"></a>

SSIS オプショングループおよびパラメータグループを DB インスタンスに関連付けるには、AWS マネジメントコンソール または AWS CLI を使用します。

**注記**  
既存のインスタンスを使用する場合は、このインスタンスに Active Directory ドメインと AWS Identity and Access Management (IAM) ロールが既に関連付けられている必要があります。新しいインスタンスを作成する場合は、既存の Active Directory ドメインと IAM ロールを指定します。詳細については、「[RDS for SQL Server による Active Directory の操作](User.SQLServer.ActiveDirectoryWindowsAuth.md)」を参照してください。

#### コンソール
<a name="SSIS.Apply.Console"></a>

SSIS の有効化を完了するには、SSIS オプショングループおよびパラメータグループを新規または既存の DB インスタンスに関連付けます。
+ 新しい DB インスタンスの場合は、インスタンスを起動するときにそれらを関連付けます。詳細については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」を参照してください。
+ 既存の DB インスタンスの場合は、インスタンスを変更することでそれらを関連付けます。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

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

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

**SSIS オプショングループおよびパラメータグループを使用してインスタンスを作成するには**
+ オプショングループの作成時に使用したものと同じ DB エンジンのタイプとメジャーバージョンを指定します。  
**Example**  

  Linux、macOS、Unix の場合:

  ```
  aws rds create-db-instance \
      --db-instance-identifier {{myssisinstance}} \
      --db-instance-class {{db.m5.2xlarge}} \
      --engine {{sqlserver-se}} \
      --engine-version {{13.00.5426.0.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 {{ssis-se-2016}} \
      --db-parameter-group-name {{ssis-sqlserver-se-13}}
  ```

  Windows の場合:

  ```
  aws rds create-db-instance ^
      --db-instance-identifier {{myssisinstance}} ^
      --db-instance-class {{db.m5.2xlarge}} ^
      --engine {{sqlserver-se}} ^
      --engine-version {{13.00.5426.0.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 {{ssis-se-2016}} ^
      --db-parameter-group-name {{ssis-sqlserver-se-13}}
  ```

**インスタンスを変更し、SSIS オプショングループおよびパラメータグループを関連付けるには**
+ 以下のいずれかのコマンドを実行します。  
**Example**  

  Linux、macOS、Unix の場合:

  ```
  aws rds modify-db-instance \
      --db-instance-identifier {{myssisinstance}} \
      --option-group-name {{ssis-se-2016}} \
      --db-parameter-group-name {{ssis-sqlserver-se-13}} \
      --apply-immediately
  ```

  Windows の場合:

  ```
  aws rds modify-db-instance ^
      --db-instance-identifier {{myssisinstance}} ^
      --option-group-name {{ssis-se-2016}} ^
      --db-parameter-group-name {{ssis-sqlserver-se-13}} ^
      --apply-immediately
  ```

### S3 統合を有効にする
<a name="SSIS.EnableS3"></a>

SSIS プロジェクト (.ispac) ファイルをデプロイのためにホストにダウンロードするには、S3 ファイル統合を使用します。詳細については、「[Amazon RDS for SQL Server DB インスタンスと Amazon S3 の統合](User.SQLServer.Options.S3-integration.md)」を参照してください。