[アップデート] SQL Server 2022入りのAMIがリリースされました
しばたです。
先週SQL Server 2022が正式リリースされ、その後わりとすぐのタイミングでSQL Server 2022入りのAMIがリリースされました。
SQL Server 2022
SQL Server 2022自体の機能面についてはリリースノートとムッシュの記事を見て頂くと良いでしょう。
AWS向けにはS3へのバックアップ機能が便利に使えそうです。
提供リージョン
SQL Server 2022入りAMIは全てのAWSリージョンで提供済みとのことです。
本日時点の東京リージョンでAMIを検索すると以下のものがヒットしました。
日本語版 Windows Server
対象OSはWindows Server 2019 - 2022、対象エディションはWeb, Standard, Enterpriseでした。
AMI ID | イメージ名 |
---|---|
ami-07ab02fb22aaf3a0e | Windows_Server-2022-Japanese-Full-SQL_2022_Web-2022.11.21 |
ami-0eee6534cf84c69a5 | Windows_Server-2022-Japanese-Full-SQL_2022_Standard-2022.11.21 |
ami-0441d3bb39561d31c | Windows_Server-2022-Japanese-Full-SQL_2022_Enterprise-2022.11.21 |
ami-0b87bae1267615c91 | Windows_Server-2019-Japanese-Full-SQL_2022_Web-2022.11.21 |
ami-0ebd4d7e044fb9546 | Windows_Server-2019-Japanese-Full-SQL_2022_Standard-2022.11.21 |
ami-049d97d3c2744c6c8 | Windows_Server-2019-Japanese-Full-SQL_2022_Enterprise-2022.11.21 |
英語版 Windows Server
対象OSはWindows Server 2019 - 2022、対象エディションはExpressj, Web, Standard, Enterpriseでした。
AMI ID | イメージ名 |
---|---|
ami-0b7384fb20af2c593 | Windows_Server-2022-English-Full-SQL_2022_Express-2022.11.21 |
ami-0f8676245e2466aa2 | Windows_Server-2022-English-Full-SQL_2022_Web-2022.11.21 |
ami-06a8816dd0dd51a60 | Windows_Server-2022-English-Full-SQL_2022_Standard-2022.11.21 |
ami-0811ab8afb1ca5f5d | Windows_Server-2022-English-Full-SQL_2022_Enterprise-2022.11.21 |
ami-0a4153f725af96bd6 | Windows_Server-2019-English-Full-SQL_2022_Express-2022.11.21 |
ami-0428776bef5c330ee | Windows_Server-2019-English-Full-SQL_2022_Web-2022.11.21 |
ami-0d3f9329b8b5a722c | Windows_Server-2019-English-Full-SQL_2022_Enterprise-2022.11.21 |
ami-0ce2a6174d8e9ed97 | Windows_Server-2019-English-Full-SQL_2022_Standard-2022.11.21 |
Linux
LinuxではRHEL 8.6環境のAMIが見つかりました。
AMI ID | イメージ名 |
---|---|
ami-07201676e22691102 | RHEL_8.6-x86_64-SQL_2022_Express-2022.11.18 |
ami-064d2a8f528240c59 | RHEL_8.6-x86_64-SQL_2022_Standard-2022.11.18 |
ami-01a8f91450a1a2493 | RHEL_8.6-x86_64-SQL_2022_Web-2022.11.18 |
ami-0ea7bab75ee4931b9 | RHEL_8.6-x86_64-SQL_2022_Enterprise-2022.11.18 |
ami-0365fc5e4eebb06c1 | RHEL_HA_8.6-x86_64-SQL_2022_Standard-2022.11.18 |
ami-02dd740f01d9774dd | RHEL_HA_8.6-x86_64-SQL_2022_Enterprise-2022.11.18 |
RDS for SQL Serverに関して
RDS for SQL Serverの対応はまだなのでご注意ください。
試してみた
それでは早速試してみます。
今回は私の検証用AWSアカウントの東京リージョンでami-0eee6534cf84c69a5 (Windows_Server-2022-Japanese-Full-SQL_2022_Standard-2022.11.21)
のEC2インスタンス作ってみます。
インスタンスタイプはm6i.large
、EBSは最小の65GiBにしています。
ちなみにSQL Server入りAMIの場合エディションによりサポートされるインスタンスタイプとEBSの最低容量が異なります。
EC2の料金ページに該当するインスタンスタイプが存在するかでサポート状況を判定するのが一番手っ取り早いでしょう。
作成したEC2にRDP接続しSSMSからデータベースを確認してみました。
ちゃんとSQL Server 2022ですね。
同梱されるSSMSのバージョン
このAMIにインストールされているSSMSのバージョンがVer.18.11.1
だったため、GUI上でテーブル作成や編集を行おうとすると
このバックエンド バージョンでは、データベース ダイアグラムまたはテーブルのデザインはサポートされていません。 (MS Visual Database Tools)
というエラーメッセージが出てしまいます。
GUIによる操作を行いたい場合は現在プレビューのVer.19(本日時点でVer.19 Preview 3が最新)を使ってください。
S3へのバックアップ
最後にS3へのバックアップを試します。
手順としては前掲のAWS Blogの記事に倣います。
前提条件
SQL Server 2022のS3バックアップではIAMロールは使えずアクセスキーを使う必要があります。
このため適当なIAMユーザーを事前に用意し、アクセスキーを払い出しておきます。
IAMユーザーにはS3に対する
- s3:ListBucket
- s3:PutObject
- s3:GetObject
の権限を与えておく必要があります。
今回はAWS Blogの例と同様に以下のsql-backups-2022
で始まるS3バケットに対する権限を与えました。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::sql-backups-2022*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::sql-backups-2022*/*"
]
}
]
}
バックアップ先のS3バケットはsql-backups-2022-shibata-test
という名前で用意しておきました。
資格情報の作成
はじめにCREATE CREDENTIAL
文を実行して資格情報を作成する必要があります。
Microsoftのドキュメント上は
CREATE CREDENTIAL [s3://<endpoint>:<port>/<bucket>]
WITH
IDENTITY = 'S3 Access Key',
SECRET = '<AccessKeyID>:<SecretKeyID>';
という書式なのですが、エンドポイント指定に関してはS3バケットをURL形式で指定する形で良い模様です。
このため今回は、
CREATE CREDENTIAL [s3://sql-backups-2022-shibata-test.s3.ap-northeast-1.amazonaws.com]
WITH IDENTITY = 'S3 Access Key'
,SECRET = 'AKIAXXXXXXXXXXXXXXX:ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ'
;
という形にしています。
IDENTITY
はS3 Access Key
という固定文字列なので注意してください。
そしてSECRET
にアクセスキーとシークレットキーをコロン区切りで記載する必要があるため、AWSで自動生成されたキーにコロンが混じっている場合は無くなるまで再作成する必要があります。
SQL文がエラー無く完了すればOKです。
データベースのバックアップ
続けてBACKUP DATABASE
文を実行します。
バックアップ先を前項で指定したURLを含めた形で指定してやります。
-- 事前にデータベース mydb は作成済み
BACKUP DATABASE mydb
TO URL = 's3://sql-backups-2022-shibata-test.s3.ap-northeast-1.amazonaws.com/mydb.bak'
;
これで無事S3にバックアップができました。
データベースのリストア
データベースのリストアはRESTORE DATABASE
文を実行してやればOKです。
リストア元ファイルをURL形式で指定してやります。
RESTORE DATABASE mydb
FROM URL = 's3://sql-backups-2022-shibata-test.s3.ap-northeast-1.amazonaws.com/mydb.bak'
WITH REPLACE
;
最後に
簡単ですが以上となります。
いずれRDS for SQL SeverでもSQL Server 2022が使える様になるはずですので期待して待ちたいですね。