Azure Databricks Disaster recovery 2026年4月更新の要点|DR設計と実務チェックリスト

Azure Databricks の Disaster recovery(ディザスターリカバリー/DR) でまず押さえるべき結論は、「高可用性(HA)だけではリージョン全体の障害には備えられない。DRは、別リージョンのワークスペース、データ、構成、ジョブ、接続先まで含めて事前に設計・同期・テストするもの」 という点です。

Microsoft Learn の「Disaster recovery – Azure Databricks」は 2026年4月22日に更新され、Azure Databricks を中核にしたデータ分析基盤で、リージョン障害を想定した復旧設計をどう組むべきかが整理されています。特に data engineers、DBA、analytics leaders は、単に「バックアップがあるか」ではなく、RPO/RTO、フェールオーバー手順、フェールバック、ストリーミングのチェックポイント、CI/CDと同期の使い分けまで確認する必要があります。 (Microsoft Learn)

目次

Azure DatabricksのDisaster recoveryで2026年4月更新から読むべきポイント

Azure Databricks の Disaster recovery は、ノートブックやジョブを別リージョンにコピーするだけの話ではありません。公式ドキュメントでは、Azure Databricks が ADLS、ストリーミング取り込み、BIツール、オーケストレーションツールなどを含むデータエコシステムの中核になりやすいことを前提に、リージョンをまたがる復旧パターンを設計する重要性が説明されています。 (Microsoft Learn)

今回の更新内容を実務目線で読むと、重要なのは次の4点です。

確認ポイント実務での意味
HAとDRを混同しない可用性ゾーン障害への耐性と、リージョン全体の障害対策は別物として設計する
RPO/RTOを業務単位で決めるすべてのジョブを同じ復旧目標にせず、売上・監査・顧客影響で優先度を分ける
ワークスペース構成も同期対象にするデータだけでなく、ジョブ、権限、クラスター、プール、シークレット、接続先も管理する
定期的にフェールオーバーをテストする手順書だけでは不十分。実際にセカンダリリージョンで稼働確認する

特に注意したいのは、「Azure Databricks のデータはどこにあるのか」を正確に把握することです。メインの顧客データは Azure Databricks の中だけで完結せず、ADLS、外部データソース、Delta Lake、BIツール、ADFなど複数の場所に分散します。そのため、DR設計では「Databricksワークスペース」だけでなく、データフロー全体を対象にする必要があります。 (Microsoft Learn)

HAとDRの違いを間違えると復旧計画は破綻する

Azure Databricks の運用でよくある誤解が、「Databricksは高可用性があるからDRも大丈夫」という考え方です。公式ドキュメントでは、Databricks HA は可用性ゾーン冗長性によるリージョン内のアップタイムを提供する一方、DRは別リージョンへのフェールオーバーを可能にするために、セカンダリワークスペースを構成し、データと構成をレプリケートするものだと明確に分けています。 (Microsoft Learn)

つまり、HAは「同一リージョン内で止まりにくくする仕組み」、DRは「リージョン全体が使えない場合に別リージョンで業務を再開する仕組み」です。

項目HADR
主な目的同一リージョン内の継続稼働別リージョンでの業務復旧
想定障害可用性ゾーン障害、個別VM障害などリージョン全体の障害、広域ネットワーク障害など
主な準備サービス側の冗長性、ZRSなどセカンダリワークスペース、データ同期、接続先切替、運用手順
利用者側の設計負荷比較的小さい大きい
代表的なリスク単一リージョン依存同期漏れ、接続先ミス、データ重複、フェールバック失敗

Azure Databricks のコントロールプレーンはゾーン障害に対する回復性を持ち、ゾーン障害から約15分以内に自動復旧する設計が説明されています。ただし、この保証はあくまでリージョン内の高可用性に関するものであり、リージョン全体の停止に対するDRとは別に考える必要があります。 (Microsoft Learn)

実務では、次のように判断すると分かりやすくなります。

  • 数時間の停止が許容でき、業務影響が限定的な分析環境なら、HA中心の設計で十分な場合がある
  • 日次の売上集計、規制対応レポート、顧客向けデータ提供などが止まると重大な影響が出る場合は、DR設計が必要
  • グローバル拠点で使うデータ基盤では、リージョン障害だけでなく、利用者・接続元・下流システムの切替も含めて検討する

まず決めるべきはRPOとRTO

DR設計で最初に決めるべきなのは、ツールではなく RPO と RTO です。

RPO(Recovery Point Objective)は「どの時点までのデータ損失を許容できるか」、RTO(Recovery Time Objective)は「どれくらいの時間で業務を再開する必要があるか」を示します。Azure Databricks の場合、ジョブやノートブックなどのワークスペースオブジェクトに加えて、ADLSなど外部にある顧客データのRPOも利用者側で定義する必要があります。 (Microsoft Learn)

たとえば、次のように業務単位で分けて考えます。

業務・ワークロードRPOの例RTOの例DR優先度
顧客向けダッシュボード15分〜1時間1〜2時間高
日次売上集計数時間〜1日当日中中〜高
社内探索分析1日以上数日低〜中
開発・検証ワークスペース再構築可能数日低
監査・規制対応データ業務要件次第業務要件次第高

ここで失敗しやすいのは、すべてのワークロードに同じRPO/RTOを設定することです。すべてを最短で復旧しようとすると、セカンダリ環境のコスト、同期処理、監視、テスト負荷が一気に増えます。逆に、重要ワークロードまで低優先度として扱うと、障害時に経営判断や顧客対応が遅れます。

analytics leaders は、技術チームに「Databricksを復旧できるか」と聞くだけでは不十分です。次のように、業務影響に直結する問いに置き換える必要があります。

  • どのレポートが何時間止まると事業影響が出るか
  • どのデータパイプラインは手動再実行でよいか
  • どのストリーミング処理は重複排除まで含めて復旧する必要があるか
  • フェールオーバー判断は誰が、どの条件で行うか
  • 下流のBI、API、外部連携先には誰が通知するか

DR戦略はアクティブ/パッシブが現実的な第一候補

Azure Databricks の Disaster recovery では、代表的な構成として アクティブ/パッシブ と アクティブ/アクティブ が整理されています。公式ドキュメントでは、アクティブ/パッシブが最も一般的で簡単なソリューションとして説明されており、アクティブ側からパッシブ側へデータやオブジェクト変更を同期し、障害時にセカンダリリージョンのパッシブ環境をアクティブ化します。 (Microsoft Learn)

多くの企業では、まずアクティブ/パッシブを検討するのが現実的です。理由は、通常時のコストと運用複雑性を抑えやすいからです。

戦略向いているケース注意点
アクティブ/パッシブ多くの分析基盤、日次・時間単位のパイプライン、通常時は片リージョン運用したい場合セカンダリ側の同期漏れ、起動手順、接続先切替のテストが必要
アクティブ/アクティブ極めて高い継続性が必要なグローバル分析基盤、両リージョンで常時処理したい場合両リージョンのジョブ完了判定、データ重複、コスト、CI/CD統制が難しい
読み取り専用パッシブ活用セカンダリ側で参照クエリだけ実行したい場合ノートブックやジョブなどのオブジェクト変更を許可しない運用が必要

アクティブ/アクティブは魅力的に見えますが、両リージョンで常時ジョブを実行するため、費用が増えるだけでなく「どちらの結果を正とするか」「両方成功したときだけ完了とするか」「重複書き込みをどう防ぐか」といった設計が難しくなります。公式ドキュメントでも、アクティブ/アクティブは最も複雑な戦略で、追加コストが発生すると説明されています。 (Microsoft Learn)

同期対象はデータだけではない

Azure Databricks のDRで最も見落とされやすいのが、ワークスペースオブジェクトの同期です。データレイク上のファイルやDeltaテーブルだけを複製しても、ジョブ、権限、クラスター構成、シークレット、マウントポイント、メタストア定義が不足していれば、セカンダリリージョンで業務は再開できません。

公式ドキュメントでは、コントロールプレーン、コンピューティングプレーン、データソースにある正しいデータをレプリケートし、セカンダリワークスペースは別リージョンのコントロールプレーンにマップする必要があるとされています。また、同期ツールまたはCI/CDワークフローによるスクリプトベースの同期が推奨されています。 (Microsoft Learn)

実務で確認すべき同期対象は次の通りです。

同期対象確認すべきこと失敗例
ノートブック・ソースコードGitやCI/CDで両リージョンへ展開できるか手作業で編集したノートブックがセカンダリに存在しない
ジョブ設定セカンダリでは不要な自動実行を防げるか障害前からセカンダリでもジョブが動き、二重書き込みが発生
クラスター構成同じRuntime、ライブラリ、ポリシーを再現できるかライブラリ不足でジョブが起動しない
プール設定セカンダリ側の待機インスタンス設定を制御できるか通常時から不要なコンピュート費用が発生
ユーザー・グループIdP、SCIM、自動化で整合性を保てるか障害時に必要な担当者がログインできない
ACL・権限オブジェクトIDの対応関係を管理できるか権限だけ同期できず、ノートブックやジョブを実行できない
シークレットリージョン差分を考慮して設定できるか接続文字列がプライマリのままで復旧後に失敗
マウントポイント・接続先セカンダリのストレージエンドポイントを参照できるかフェールオーバー後もプライマリADLSを読みに行く

公式ドキュメントでは、プール構成ではセカンダリの min_idle_instances をDRイベントまでゼロにすること、ジョブ設定ではセカンダリ側のコンカレンシーを0にして余計な実行を防ぐこと、ACLではオブジェクトIDのマッピングが必要になることなど、かなり実務的な注意点が示されています。 (Microsoft Learn)

CI/CDと同期ツールは使い分ける

Azure Databricks のDRでは、すべてを単一の同期ツールでコピーしようとすると運用が複雑になります。公式ドキュメントでは、主な方法として「プライマリからセカンダリへコピーする同期クライアント」と「両リージョンへ同時に展開するCI/CDツール」が説明されています。 (Microsoft Learn)

実務では、次のように使い分けると管理しやすくなります。

対象推奨アプローチ理由
ノートブック、Python/Scalaライブラリ、SQLファイルCI/CDGitで差分管理し、両リージョンに同時展開しやすい
ジョブ定義、クラスター定義、ポリシーCI/CDまたはIaC環境差分をテンプレート化しやすい
ユーザー・グループIdP連携、SCIM、自動化手動作成では差分が出やすい
ACLAPIによる同期オブジェクトIDの対応管理が必要
シークレット自動化+環境別値プライマリとセカンダリで値が異なる場合がある
データAzure側のレプリケーション、Delta Deep Cloneなどデータ形式・RPO・容量に応じて方式を選ぶ
ストリーミングチェックポイント顧客管理ストレージへの配置と複製障害時の再開位置を制御するため

独自の同期プロセスを作る場合は、Databricks Terraform Provider、Databricks Workspace Migration Tools、DBSync などが検討対象として挙げられています。特にTerraformのようなIaCを使うと、ワークスペース、権限、ジョブ、クラスター設定をコード化しやすく、セカンダリリージョンの再現性を高められます。 (Microsoft Learn)

ただし、IaC化しても「本番で手作業変更を許す」運用だとDRは崩れます。ノートブックの直接編集、ジョブ設定の手動変更、シークレットの個別更新などが積み重なると、障害時にセカンダリ側だけ設定が古いという状態になります。

DRを機能させるには、技術よりも先に運用ルールが必要です。

  • 本番ワークスペースで直接編集しない
  • 変更はGitからCI/CDで反映する
  • 手動変更が必要な場合は、変更後に同期確認を行う
  • セカンダリ側のジョブは通常時に勝手に動かないようにする
  • 設定差分を定期的に検出する

geo冗長ストレージだけに頼らない

Azure Storage の冗長性は重要ですが、Azure Databricks のDRでは「geo冗長ストレージがあるから安心」と考えるのは危険です。公式ドキュメントでは、DRプロセスにおいて、Azure Databricks が各ワークスペース用に作成するADLSなどのリージョン間重複に geo冗長ストレージを使用しないことが推奨されています。DeltaテーブルではDeep Cloneを使い、可能であれば他形式のデータもDelta形式に変換してDeep Cloneを使う考え方が示されています。 (Microsoft Learn)

ここでのポイントは、ストレージの冗長性と、業務復旧に必要な整合性は同じではないということです。

たとえば、次のようなケースでは、単にファイルが複製されていても復旧できません。

  • ジョブが参照するパスがプライマリリージョンのまま
  • Deltaテーブルのメタデータがセカンダリ側で整合していない
  • ストリーミングのチェックポイントが複製されていない
  • 下流BIツールが旧ワークスペースURLを参照している
  • ADFや外部スケジューラの linked service が切り替わっていない

DBAやデータ基盤担当者は、「データが複製されているか」ではなく、「セカンダリリージョンで同じジョブが同じ意味で再開できるか」を確認する必要があります。

ストリーミングワークロードはDR難易度が高い

バッチ処理は、比較的DRを設計しやすい領域です。入力ファイル、処理済みデータ、出力先をセカンダリリージョンに切り替えられれば、再実行や差分処理で復旧できる場合があります。

一方、ストリーミングワークロードは難易度が上がります。公式ドキュメントでは、Kafkaなどのメッセージキュー、CDCストリーム、ファイルベースの連続処理、trigger onceなどのストリーミング処理について、DRモードでセカンダリデプロイを使えるようデータソースを構成する必要があると説明されています。 (Microsoft Learn)

特に重要なのがチェックポイントです。ストリームライターは、処理済みデータに関する情報をチェックポイントに保存します。このチェックポイントにはデータの場所が含まれる場合があり、セカンダリリージョンで再起動するには、その場所を新しいストレージに合わせて調整する必要があります。 (Microsoft Learn)

実務では、ストリーミングDRについて次の項目を確認してください。

確認項目具体的な確認内容
チェックポイントの保存場所DBFS rootではなく、顧客管理ストレージで管理しているか
チェックポイントの複製RPOに合う間隔でセカンダリリージョンへ複製できるか
再開位置最後に処理済みのオフセットやファイル位置を特定できるか
重複処理再実行時に同じデータを二重処理しない仕組みがあるか
出力先セカンダリ側のDeltaテーブル、ストレージ、キューに切り替わるか
監視遅延、失敗、重複、欠損を検知できるか

ストリーミング処理では、「止まった時点から再開する」だけでなく、「どこから再開すればデータ欠損と重複を最小化できるか」を決める必要があります。Delta Lake を使う場合でも、重複排除キーや処理済み管理の設計が甘いと、フェールオーバー後に集計値がずれる可能性があります。

フェールオーバー時に実行すべき流れ

DR手順は、障害が起きてから考えるものではありません。公式ドキュメントでは、プライマリリージョンで障害が発生した場合、状況確認、セカンダリリージョンへのフェールオーバー判断、ワークスペース内アクティビティ停止、復旧手順の開始、テスト後の稼働宣言という流れが示されています。 (Microsoft Learn)

実務向けに整理すると、フェールオーバー手順は次のようになります。

手順実施内容判断者・担当者
障害確認Azure、Databricks、ネットワーク、ストレージ、外部データソースの状態を確認SRE、クラウド運用
DR発動判断RTOを超える見込みか、業務影響が許容範囲を超えるか判断analytics leader、システム責任者
プライマリ停止可能な範囲でジョブ、クラスター、プール、ユーザー操作を停止Databricks管理者
同期状態確認最新同期時刻、未反映データ、未反映オブジェクトを確認data engineer
セカンダリ起動クラスター、プール、ジョブ、接続先、スケジューラを有効化data platform team
データソース安定化ADLS、Delta Lake、外部DB、キューなどの参照先を確認DBA、data engineer
検証代表ジョブ、重要クエリ、BI接続、API接続を確認QA、業務担当
稼働宣言利用者へ新URL、制限事項、再開範囲を通知運用責任者

公式ドキュメントでは、フェールオーバー時にプライマリリージョンのプールやクラスターを無効化し、復旧後に意図せず新しいデータ処理が始まらないようにすることも示されています。また、外部ツールがAzure DatabricksワークスペースのURLやドメイン名を使っている場合は、新しいコントロールプレーンに合わせてREST APIやJDBC/ODBC接続のURL更新が必要です。 (Microsoft Learn)

この「URL切替」は意外と見落とされます。Power BI、Tableau、ADF、Airflow、社内API、JDBC接続、監視ツールなどがプライマリワークスペースを直接参照していると、Databricks側を復旧しても業務側では使えません。

フェールバックは軽視しない

DR計画では、セカンダリリージョンで動かすことに注目しがちですが、実際には フェールバック も同じくらい重要です。プライマリリージョンが復旧した後、どのデータと構成を戻すのか、どのタイミングで再びプライマリをアクティブにするのかを決めておかなければなりません。

公式ドキュメントでは、フェールバックはメンテナンスウィンドウで実施しやすいとされ、プライマリ復旧確認、セカンダリ側プール・クラスターの無効化、セカンダリで変更された資産やデータの同期、ワークロード停止、URL切替、テスト、再度のDR環境準備といった流れが示されています。 (Microsoft Learn)

フェールバックでよく起きる失敗は、次の3つです。

失敗例原因対策
セカンダリで作成されたデータを戻し忘れるフェールオーバー中の更新範囲を記録していないDeltaテーブル、ログ、監査証跡で変更範囲を把握する
プライマリとセカンダリでジョブが同時に動く切替手順に停止確認がないクラスター、プール、ジョブコンカレンシーの確認を必須化する
利用者が誤ったURLにアクセスする通知とDNS・接続設定の更新が不十分接続先一覧と通知テンプレートを事前に作る

フェールバックは「元に戻す」作業ではなく、セカンダリで発生した変更を正しく取り込み、再びプライマリを唯一のアクティブ環境にする作業です。ここを曖昧にすると、復旧後にデータの二重管理や整合性問題が残ります。

DBFS rootに本番データを置かない

DR設計の観点で特に避けたいのが、DBFS rootに本番データ、ライブラリ、設定ファイル、init scriptなどを置く運用です。公式ドキュメントでは、DBFS rootアクセスに使われるroot ADLS、または古いワークスペースでのAzure Blob Storageに本番顧客データを保存しないことがベストプラクティスとして示されています。DBFS root storage は本番顧客データ用途ではサポートされないと説明されています。 (Microsoft Learn)

実務では、次のように分離しましょう。

用途推奨される管理方法
本番データADLS上の明示的なコンテナ、Unity Catalog管理下のストレージ、Delta Lake
ライブラリパッケージリポジトリ、CI/CD、クラウドストレージ、アーティファクト管理
init scriptGit管理、明示的なクラウドストレージ、テンプレート化
ジョブ設定Git、Terraform、Databricks Asset Bundlesなどの構成管理
シークレットAzure Key Vault連携やDatabricks Secretsの自動化管理

DBFS rootは便利ですが、属人的なファイル置き場になりやすく、DR時に「どのファイルが本番に必要なのか」が分からなくなります。特にグローバルチームでは、誰かが手元からアップロードしたJARや設定ファイルにジョブが依存していると、セカンダリリージョンで再現できません。

DRテストは「年1回の机上演習」では足りない

公式ドキュメントでは、DRソリューションを定期的にテストし、必要なときに使えないDRには価値がないと説明されています。企業によっては数か月ごとにリージョンを切り替え、想定やプロセスが復旧ニーズを満たすか確認するとされています。 (Microsoft Learn)

実務では、少なくとも次のレベルでテストを分けると効果的です。

テスト種別目的実施頻度の目安
構成差分チェックプライマリとセカンダリの設定差分を検出週次〜月次
ジョブ起動テスト代表ジョブがセカンダリで起動できるか確認月次〜四半期
データ整合性テストDeltaテーブル、外部データソース、集計結果の差分確認月次〜四半期
接続テストBI、JDBC/ODBC、API、ADFなどの接続確認四半期
フルフェールオーバー演習実際にセカンダリを稼働状態にする半期〜年次
フェールバック演習プライマリへ戻す手順を検証フル演習とセット

テストで見るべきなのは、「成功したか」だけではありません。次のような記録を残すと、次回の改善につながります。

  • フェールオーバー判断までにかかった時間
  • 最新同期時刻と実際のデータ損失見込み
  • 起動できなかったジョブと原因
  • 接続先の切替漏れ
  • 権限不足で作業できなかった担当者
  • 手順書と実作業の差分
  • 利用者通知にかかった時間
  • フェールバック後のデータ差分

DRは一度作って終わりではなく、データ基盤の変更に追随し続ける運用プロセスです。新しいジョブ、テーブル、コネクタ、BI接続、シークレット、外部APIが増えるたびに、DR対象に含めるか判断する必要があります。

data engineers、DBA、analytics leaders別の見直しポイント

Azure Databricks の Disaster recovery は、単一チームだけでは完結しません。役割ごとに確認すべき観点が異なります。

data engineersが確認すべきこと

data engineers は、パイプラインとワークスペースオブジェクトの再現性を中心に確認します。

確認項目具体例
ジョブ定義セカンダリ側でコンカレンシー0、DR時に有効化できるか
ノートブック・コードGit管理され、両リージョンに展開できるか
ライブラリ手動アップロードに依存していないか
ストリーミングチェックポイントと重複排除設計があるか
監視セカンダリ側でもログ、アラート、メトリクスが取れるか
接続先ストレージ、DB、キュー、BIのリージョン差分をパラメータ化しているか

特に、ジョブ内にストレージパスやワークスペースURLを直書きしている場合は、早めに修正してください。DR時に最も壊れやすいのは、コードに埋め込まれた環境依存値です。

DBAが確認すべきこと

DBAは、外部データソース、CDC、データ整合性、復旧後のデータ品質を中心に見ます。

確認項目具体例
外部DBセカンダリリージョンから接続できるか
CDC障害時の再開位置を特定できるか
Deltaテーブルタイムトラベル、監査ログ、差分確認が使えるか
データ重複冪等な書き込み、重複排除キー、MERGE設計があるか
権限セカンダリ側でも同等のアクセス制御があるか
フェールバックセカンダリで更新されたデータを正しく戻せるか

DRでは、復旧速度だけでなく「復旧後のデータが正しいか」が重要です。特に監査対象のデータでは、いつ、どのリージョンで、どのジョブが処理したかを説明できるログが必要です。

analytics leadersが確認すべきこと

analytics leaders は、技術詳細だけでなく、業務継続と意思決定の観点でDRを管理します。

確認項目具体例
優先順位どのダッシュボード、データセット、パイプラインを先に復旧するか
RPO/RTO業務部門と合意済みか
コストセカンダリ環境の待機コスト、テストコストを予算化しているか
体制障害時の判断者、作業者、連絡先が明確か
通知利用者、経営層、外部連携先への通知テンプレートがあるか
演習DR訓練の結果を改善サイクルに入れているか

DRはIT部門だけの技術課題ではなく、事業継続の判断です。RTOを短くするほどコストと複雑性は増えるため、どの業務に投資するかを明確にする必要があります。

実務で使えるAzure Databricks DRチェックリスト

最後に、既存の Azure Databricks 環境を見直すためのチェックリストをまとめます。

分類チェック項目状態
方針重要ワークロードごとのRPO/RTOを定義している未確認なら最優先
リージョンプライマリとセカンダリのリージョンを決めている必須
ワークスペースセカンダリDatabricksワークスペースを用意している必須
データADLS、Delta Lake、外部DBのDR方針がある必須
ジョブセカンダリ側で不用意に自動実行されない必須
コードノートブックやライブラリをGit/CI/CDで管理している推奨
権限ユーザー、グループ、ACLを自動化している推奨
シークレット環境別の値を安全に管理している必須
ストリーミングチェックポイントを顧客管理ストレージに置いている該当環境では必須
接続先REST API、JDBC/ODBC、BI、ADFの切替手順がある必須
監視セカンダリ環境でも監視・アラートが機能する推奨
テストフェールオーバーとフェールバックを定期的に演習している必須
手順書作業手順、判断基準、連絡先を最新化している必須

最初の一歩としては、すべてを完璧に自動化するより、「業務影響が大きい上位3つのパイプライン」を選び、RPO/RTO、同期対象、フェールオーバー手順、フェールバック手順を文書化してください。そのうえで、セカンダリリージョンで実際に代表ジョブを起動し、データと接続先を確認するのが現実的です。

Azure Databricks の Disaster recovery は、バックアップ製品を導入するだけでは完成しません。HAとDRを分けて考え、ワークスペース、データ、ジョブ、権限、ストリーミング、外部接続、利用者通知まで含めて設計することが重要です。2026年4月更新の公式ドキュメントをきっかけに、自社のDatabricks環境が「止まりにくい」だけでなく、「止まっても業務を再開できる」状態になっているかを確認しましょう。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次