Direkt zum Inhalt

SQL Serverでs3からのリストアが失敗

0

EC2ではSQL Server2022を使用しており、Microsoft SQL Server Management Studio を起動して exec msdb.dbo.rds_restore_database @restore_db_name='dbname', @s3_arn_to_restore_from='arn:aws:s3:::s3-name/dbname.bak', @with_norecovery=0; でリストアを実施するとtask_infoにエラーメッセージが表示されます。 [2024-06-26 08:39:22.047] Aborted the task because of a task failure or a concurrent HA_RESTORE_DB request. [2024-06-26 08:39:22.077] Task has been aborted [2024-06-26 08:39:22.083] Could not parse the amazon resource name string provided: --endpoint-url https://bucket.vpce-xxx.s3.ap-northeast-1.vpce.amazonaws.com arn:aws:s3:::s3-name/dbname.bak

コマンドで aws s3 --endpoint-url https://bucket.vpce-xxx.s3.ap-northeast-1.vpce.amazonaws.com --region ap-northeast-1 cp s3://s3-name/dbname.bak e:\dbnamebak でEC2へのコピーは正常にいけます。(endpoint-urlを指定しないとエラーします)

exec msdb.dbo.rds_restore_database のパラメータにendpoint-urlの指定はありませんが、AWS管理コンソールで何らかの設定が必要であればご教示ください。

gefragt vor einem Jahr586 Aufrufe
3 Antworten
1

VPCエンドポイント経由での接続がうまくできていないように見えます。
SQL Serverに詳しくないのですが、「msdb.dbo.rds_restore_database」がVPCエンドポイント経由でのS3アクセスに対応しているのでしょうか?
ちなみにインターフェース型のVPCエンドポイントではなくゲートウェイ型のVPCエンドポイントで設定した場合はコマンドが成功しますか?
EC2上のSQL Server2022で「msdb.dbo.rds_restore_database」が使用できるのでしょうか?
この機能自体はRDS SQL Serverで使用するものな気がしています。
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.html

EXPERTE
beantwortet vor einem Jahr
  • VPCエンドポイントは社内環境の制約により変更できません。 EC2上のSQL Server2022で「msdb.dbo.rds_restore_database」は使用可能です。 EC2上のSQL Server2022で「msdb.dbo.rds_restore_database」を開き、exec msdb.dbo.rds_restore_databaseでDBをリストアした際にエラーします。

    なお、RDSを作成する際、個人情報を扱うDBのため、設定でコンピューティングリソースは「EC2コンピューティングリソースに接続しない」を選択しています。 IAMロールを紐づけ、EC2からでもアクセス可能にはしているつもりです。

    @s3_arn_to_restore_from='arn:aws:s3:::s3-name/dbname.bak', にすると [2024-06-27 02:18:22.107] Aborted the task because of a task failure or a concurrent HA_RESTORE_DB request. [2024-06-27 02:18:22.137] Task has been aborted [2024-06-27 02:18:22.140] Access Denied となります

  • 「Access Denied」なので、RDSからS3にアクセスするときに使用しているIAMロールに問題がある気がします。 おそらくRDSで以下のような設定を行っていると思うのですが、RDSのオプショングループで設定しているIAMロールにはどのようなIAMポリシーが設定されていますか? https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.html#SQLServer.Procedural.Importing.Native.Enabling https://dev.classmethod.jp/articles/import-export-mssql-by-s3-bak-file/

0

お忙しい中、ご回答いただきありがとうございます。 RDSのオプショングループでSQLSERVER_BACKUP_RESTOREを指定しています。 今回の問題はEC2でSMSの画面から実行するexec msdb.dbo.rds_restore_databaseが endpoint-url を指定できない部分が問題箇所かと思われます。

beantwortet vor einem Jahr
0

返信遅くなり申し訳ありません。
VPCエンドポイントのプライベートDNSホストゾーンを有効化してみるのはいかがでしょうか?
こちらを有効化するとendpoint-urlの指定が不要になるかと思います。
https://bftnagoya.hateblo.jp/entry/2022/02/03/163658

EXPERTE
beantwortet vor einem Jahr

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.