Azure SQL Database を無料で使用する
目次
-
- 2.1. SQL データベースの作成開始
- 2.2. サーバーの作成
- 2.3. データベースの作成
- 2.4. データベースの作成完了
- 2.5. パブリックアクセスを許可する
-
- 3.1. C# の場合
- 3.2. Python の場合
はじめに
Azue SQL Database にいつのまにか無料プランが追加されていました。1
Azure SQL Database を無料でデプロイする
無料レベルのプランで無料で Azure SQL Database をお試しください。 各 Azure サブスクリプションでは、最大 10 個の General Purpose データベースを作成できます。
各データベースに対して、サブスクリプションの有効期間中無料で、100,000 仮想コア秒のコンピューティング、32 GB のデータ ストレージ、32 GB のバックアップ ストレージの毎月の許容量を受け取ります。
「100,000 仮想コア秒」は単純計算で約 27 時間になります。サーバーレス構成であれば、データベースの一時停止中にはコア時間を消費しませんので、お試しや技術的検証、学習用には最適ではないかと思います。32 GB のストレージも試作開発と考えれば十分な容量です。
さっそく、無料プランの SQL Database を作成してみましょう。
SQL Database を作成する
1SQL データベースの作成開始
Azure のポータルから Azure SQL
> Azure SQL Database
の 無料で試す
をクリックします(図1)。
Free database offer applied! You got first 100,000 vCore seconds and 32GB of data & 32GB of backup storage free per month for lifetime of the subscription.
これが無料プランを選択していることを表すメッセージになります(図2)。
サーバーの「新規作成」をクリックします(図3)。
SQL Database サーバーが作成済みの場合は既存のサーバーを選択してもよいです。その場合は 3. へ。
2サーバーの作成
簡単に「SQL データベース」と「SQL(データベース)サーバー」の違いを整理しておきます。
項目 | SQL データベース | SQL サーバー(論理サーバー) |
---|---|---|
リソース単位 | 1 つのデータベース | 複数のデータベースをまとめる単位 |
課金対象 | 課金される(vCore・ストレージなど) | 課金されない |
管理対象 | スケーリング・バックアップなど | 認証・ファイアウォール |
サーバーの配下にデータベースがぶら下がるイメージになります。このあたりはオンプレのデータベースサーバーとデータベースの関係と同じですね。認証はサーバー単位に設定するので、データベースごとに違う認証方式は使えません。また、ファイアウォールの構成もサーバー単位になります。
- サーバー名: 必須
- 場所(リージョン): 必須
- 認証方法: 任意の認証方法を選択してください。
ここでは「SQL 認証」を選択しています
「OK」ボタンを押下して、サーバーの作成を完了しましょう。
自動的にデータベースの作成画面に戻ります。
3データベースの作成
必須項目を入力します(図5) 。
- リソースグループ: 必須
- データベース名: 必須
- サーバー: 2. で作成したサーバー、または既存の SQL サーバー
Behavior when free offer limit reached
無料枠の制限に達した時の動作を選択します。Auto-pause the database until next month
: 自動で停止Continue using database for additional charges
: 稼働を継続(課金対象となります)
Behavior when free offer limit reached
の設定はデータベースの作成後に変更できますので、いったん Auto-pause
で作成しておいてもよいでしょう。
「確認および作成」をクリックしてデータベース作成を確定します。
4データベースの作成完了
デプロイが完了したデータベースを確認すると価格プランに「無料」と表示されています(図6)。
5パブリックアクセスを許可する
この手順は必須ではありませんが、ローカル PC から接続できるように設定してみましょう。
サーバーの 設定
> ネットワーク
> パブリックアクセス
タブで「選択されたネットワーク」を選択します(図7)。
「+クライアント IPv4 アドレス (xxx.xxx.xxx.xxx) の追加」をクリックすると1行追加されるので、「保存」をクリックします。(図8)。
ここで追加した IP アドレスは、現時点での自分のグローバル IP アドレスになります。自分のグローバル IP アドレスからアクセスした場合のみ接続できるように設定したわけですが、ほとんどの方は固定 IP ではないと思います。IP アドレスが変わった際には改めて「クライアント IPv4 アドレスの追加」を行う必要があります(接続エラーになるのですぐ気づくと思いますが)。新しい IP アドレスを追加した場合は、古い IP アドレスは念のため削除しておきましょう。
ローカル PC から接続してみます。
ここでは、SSMS(SQL Server Management Studio)を使用します(図9)。
接続情報は以下のように入力します。
- Server Name:
2. で作成したサーバー名
+.database.windows.net
- User Name:
2. で登録したユーザー名
- Password:
2. で登録したパスワード
- Database Name:
3. で作成したデータベース名
「接続」ボタンを押して接続します。
データベースを作成しただけなので、テーブルは何もない状態です(図10)。
プログラムから SQL Database にアクセス
C# の場合
作成した SQL Database に Entity Framework Core でコードファースト の「最小構成でコードファースト」の手順でテーブルを作成してみます。
接続文字列は SQL Database > 設定
> 接続文字列
> ADO.NET (SQL 認証)
からコピーできます。
テーブルを作成するだけでは物足りないのでレコードを登録するコードも追加(3 〜 5 行目)しました。
using Microsoft.EntityFrameworkCore;
var context = new AppDbContext();
context.Hoge.Add(new Hoge { Name = "hoge" });
context.SaveChanges();
public class AppDbContext : DbContext
{
public DbSet<Hoge> Hoge { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options.UseSqlServer("<接続文字列>");
}
public record Hoge
{
public int Id { get; set; }
public string Name { get; set; }
}
Add-Migration
> Update-Database
> プログラム実行で、データが登録されました(図11)。
Python の場合
SQL Server に接続するために pymssql
をインストールします。
pip install pymssql
import pymssql
conn = pymssql.connect(
server='<サーバー名>.database.windows.net',
user='<ユーザー名>',
password='<パスワード>',
database='<データベース名>'
)
cursor = conn.cursor()
cursor.execute('SELECT * FROM Hoge')
for row in cursor:
print(row)
conn.close()
登録されているデータが表示されました。
> python hoge.py
(1, 'hoge')
参考資料
脚注
-
2025年2月に追加されたようです。
Generally Available: Azure SQL Database free offer↩