この記事について問い合わせる

オンプレからRDS移行の勘所――第2回 移行時のBulkInsert対応「課題と解決策」

はじめに

前回の記事(第1回)では、オンプレミスSQL ServerからAWS RDS for SQL Serverへの移行で考慮したポイントについてまとめました。
第2回となる今回は、BulkInsert処理のAWS RDS対応において実際に遭遇した課題と、その解決策についてご紹介します。

BulkInsertをAWS RDSで利用する際のポイント

システム概要と要件

現行環境:オンプレミスSQL Server
移行先 :AWS RDS for SQL Server
要件  :ストアドプロシージャからファイルへのBulkInsertを引き続き実施したい

オンプレ環境では、ストアドプロシージャ内でファイルから直接BulkInsertを行う運用をしていました。移行後も、同様の運用を目指しました。

AWS RDSにおけるBulkInsertの制限と対応策

RDS版SQL Serverでは、ローカルディスク上のファイルを直接BulkInsertすることはできません
そのため、以下の手順でデータ投入を試みました。

• ファイルをAmazon S3へアップロード
• S3統合タスク(例:rds_download_from_s3)でS3からRDSの一時領域にダウンロード
• ストアドプロシージャでBulkInsertを実行
• 使用済みファイルを削除(rds_delete_file_on_disk)

想定外だった性能問題 ―「5分以上かかる」BulkInsert

実運用環境で上記構成を検証したところ、全体で5分半以上も処理時間がかかってしまいました!

S3→RDSダウンロード(rds_download_from_s3):約2分半
BulkInsert実行時間               :約1秒(高速!)
S3ファイル削除 (rds_delete_file_on_disk)   :約3分

AWS公式ドキュメントには「S3統合タスクの起動に最大5分かかる場合がある」と明記されており、まさにその事象に直面しました。

方針転換 ― SqlBulkCopyへの切り替え

上記の結果を受けて、BulkInsertの利用を取り止めることに決定。
代わりに、アプリケーション側(VB.NETなど)からSqlBulkCopyを使って直接RDSへデータ投入する方式に変更しました。

その理由
• S3統合タスクは大容量バッチ処理や一時的な移行には最適だが、小規模ファイルや高頻度連携には不向き
• RDSの仕様やS3タスクの遅延が頻繁なデータ投入のボトルネックになった
• SqlBulkCopyを使うことでS3や統合タスクを経由せず、処理時間を大幅に短縮できた

まとめ:クラウド移行で重要なのは「柔軟な対応力」

AWS RDSや周辺サービス(S3統合タスク)には、オンプレ時と異なる制約や特徴があるため、理想的な設計と現実的な運用との間にギャップが生じるケースも多いです。

本事例のように、
• 「同じ機能が使える=運用上も最適」とは限らないこと
• 実績値や運用テストに基づくプラン検討が重要

これらを意識しておく必要があります。
クラウド移行の設計段階から、「現実的」かつ「柔軟な」運用フローを検討することが、サービス品質の維持・向上への近道です。
記事がクラウド移行に取り組む方の一助となれば幸いです。

お問い合わせ

タイトル 必須
お名前 必須
お名前(フリガナ) 必須
メールアドレス 必須
会社名 必須
部署
役職
電話番号 必須
お問い合わせ内容

個人情報保護方針

株式会社システムズは、コンピュータ関連システムの構築、コンサルテーション、ソフトウェアの 開発・設計・販売・保守等を提供するに当たり、個人情報はお客様、お取引先様、株主様および 従業者等からお預かりした重要な資産であるという認識のもと、情報社会の一端を担う企業とし ての社会的責務を全うするため、個人情報に関する法令、国が定める指針、規範に基づき以下 に個人情報保護方針を定め、個人情報の厳正な取り扱いに努めます。

1.目的

個人情報の重要性を全社員・役員に認識させ、個人情報に関する法令、国が定める指針、規範を遵守するとともに、管理規程を制定し着実に実施いたします。またこれらの取り組みを継続的に維持および改善いたします。

2.個人情報の取得

個人情報はお客様ご本人に利用目的を明示し同意を得た上で、サービス提供上必要な範囲内で取得します。

3.個人情報の利用

取得した個人情報は利用目的にのみ使用します。お客様の同意がある場合または法令・指針・規範等に基づく場合を除き、目的外利用および第三者への提供・開示はいたしません。またそのための措置を講じます。

4.Googleアナリティクスの利用

  1. 当サイトは、利用状況を把握し、サイトの改善を図るため、Googleアナリティクスを利用しています。Google社が訪問履歴を収集・記録・分析しますが、個人を識別する情報は含まれておりません。
  2. 当サイトではGoogleアナリティクスデータとお問い合わせフォームから送信された個人情報を紐付けることが可能ですが、これを第三者に無断で提供・販売することはありません。
  3. Googleアナリティクスの利用規約とプライバシーポリシーにつきましては、Google社のサイトでご確認ください。
    Google Analyticsの利用規約
    Googleのプライバシーポリシー

また、Googleアナリティクスによる情報収集を停止することも可能です。「Google アナリティクス オプトアウトアドオン」をインストールし、ブラウザのアドオン設定を変更してください。

5.クッキーについて

当サイトでは、ウェブサイトの利便性向上を目的にクッキーを利用しています。クッキーはサーバーから利用者に送信されブラウザに保存される情報です。クッキーは無効にすることもできますが、その結果サイト機能の一部またはすべてが利用できなくなる可能性があります。

6.個人情報の管理

取得した個人情報について、充分な安全対策を実施し管理することで、不正アクセス・漏えい・滅失・毀損等の防止・是正をいたします。

7.苦情・お問い合わせへの対応

個人情報への扱いに対するお客様からの苦情およびお問い合わせには、誠意ある対応をいたします。

8.個人情報の開示等

取得した個人情報に関して、お客様ご本人からの訂正・削除および開示等のご要望には迅速かつ適切な対応をいたします。

制定日 2005年4月1日
改定日 2011年10月1日
株式会社 システムズ
代表取締役社長 小河原 隆史

当社の個人情報の取扱いにつきまして、ご意見・ご質問等ございましたら、下記までご連絡くださいますようお願い申し上げます。

株式会社 システムズ 個人情報保護に関するお問い合わせ先
個人情報お問い合わせ窓口
株式会社 システムズ 個人情報窓口

TEL:03-3493-0033
FAX:03-3493-2033
メールアドレス:kojin_jyouhou@systems-inc.co.jp