Snowflakeのレプリケーション(複製)機能とは?~レプリケーションの仕組みと活用方法~(vol.23)
- 公開日:
- 最終更新日:
Snowflakeには、ビジネス継続性と障害復旧を支援するために設計されたレプリケーション(複製)機能があります。
本ブログ記事では、Snowflakeのレプリケーション(複製)機能について、機能概要/用途/対象オブジェクト/利用にあたっての注意点を解説します。
目次
Snowflakeのレプリケーション(複製)機能とは?
レプリケーション(複製)とは、同じAWSやMicrosoft Azureのリージョン内、もしくは他のクラウドサービスのリージョンに作成したSnowflake環境にデータをコピーする技術のことを指します。
Snowflakeのレプリケーション(複製)機能を使用すると、データベースやアカウントオブジェクトを異なるリージョンやクラウドプラットフォーム間で複製することが可能となります。
レプリケーション(複製)する環境=セカンダリ オブジェクトは、複数作成することが可能です。
セカンダリ オブジェクトのデータベースは、プライマリ データベースとは異なるリージョンに作成することが可能です。また、セカンダリ オブジェクトのデータベースは、プライマリ データベース プロバイダーとは異なるクラウド プロバイダー上に配置できます。
例えば、メイン環境(ソース アカウント)はMicrosoft Azureの東日本リージョンで構築し、レプリケーション(複製)環境はAWSの大阪や東京リージョンに構築するといったように、異なるクラウドプラットフォーム・リージョンをセカンダリ環境作成時に指定することが可能となります。つまり、レプリケーション(複製)を用いることで、クラウドプラットフォーム・リージョンがメイン環境と異なる環境へのセカンダリ オブジェクト構築が可能となります。
2024年8月時点では、日本でSnowflake が構築可能なクラウド リージョンは、次の3つです。
- Microsoft Azure 東日本リージョン
- AWS 東京リージョン
- AWS 大阪リージョン
例えば、「Azureの東日本リージョンにSnowflake 環境を構築していて、災害対策のために複製環境を作成したいが、データを海外に持ち出ししたくない」というような場合、AWSの東京 or 大阪リージョン(もしくは 東京 & 大阪リージョン 両方のリージョン)にレプリケーション(複製)環境を構築することで、災害対策の環境を国内のリージョンに構築することが可能になります。
レプリケーション(複製)機能を使用することにより、データをCSVなどのテキストファイルに出力することなく、別のリージョン/クラウド環境に作成したSnowflakeへデータを複製することが可能となります。すなわち、CSVなどのテキストファイルを出力し、クラウドストレージなどへデータを持ち出す必要がなくなるため、セキュリティ面/コスト面/管理のしやすさ など、複数の側面でメリットを享受できます。
Snowflakeのレプリケーション(複製)機能の用途とは?
Snowflakeのレプリケーション(複製)機能の主な用途は次の通りです。
- データのバックアップ環境構築
例えば、メインのSnowflakeアカウントをMicrosoft Azureの東日本リージョンに、セカンダリ オブジェクトをAWSの大阪リージョンに構築した場合、Microsoft Azureの東日本リージョンに障害が発生した際は、AWSの大阪リージョンに構築したSnowflake環境にアクセスすることで、Snowflakeにあるデータを使用できない事態を回避することができます。 - フェールオーバー
フェールオーバーとは、稼働中のシステムで問題が生じてシステムやサーバーが停止してしまった際に、自動的に待機システムに切り替える仕組みのことです。
フェールオーバーでは、リージョンまたはクラウドプラットフォームで停止が発生した場合に、セカンダリアカウントオブジェクトとデータベースを昇格させ、読み取り/書き込みプライマリオブジェクトとして機能させることができます。
※他のアカウントオブジェクトの複製およびフェールオーバー/フェールバック(稼働系の問題が除去されたあと、待機系のサーバから稼働系のサーバに切り戻すこと)には、Business Critical Edition以上のエディションが必要です。 - 異なるクラウドプラットフォーム・リージョンへのデータ共有
海外展開しているグループ企業において、海外のグループ会社が海外のリージョンでSnowflakeを構築している場合、レプリケーション機能とデータシェアリング機能を組み合わせて、日本の環境と海外の環境でデータを共有する方法があります。
*「Snowflakeのデータシェアリング(データ共有)機能とは?~データ共有の仕組みを解説~(vol.22)で、データ共有の直接共有を行うには、同じSnowflakeリージョン内にあるアカウントとデータ共有を行うことが可能であることを解説しております。
共有したいデータベースを海外リージョンの複製環境にレプリケーションし、レプリケーションした環境から、海外のグループ会社で使用しているSnowflake環境へデータ共有することで、海外のグループ会社とデータ連携が可能になります。
上図のように、Snowflakeのレプリケーション(複製)機能を用いることで、データのバージョンアップやメイン環境が使用できない場合の代替環境として活用でき、データ共有機能と組み合わせることで、海外のグループ会社などのメイン環境とは異なるリージョンにあるSnowflakeとデータ共有を行うことができます。
Snowflakeのレプリケーション(複製)対象となるオブジェクトとは?
Snowflake のレプリケーション(複製)対象となるオブジェクトは次の8つです。
- データベース
- 統合
- ネットワークポリシー
- パラメータ
- リソースモニター
- 共有
- ユーザー
- ウェアハウス
主にデータの複製として使用する場合は、データベースを対象にレプリケーション(複製)を行うことで、セカンダリの環境にデータベースのオブジェクトを複製することができます。
その他、ユーザー/ウェアハウス/ネットワークポリシーなど、Snowflake環境に関するオブジェクトも複製することが可能です。
ただし、統合やネットワークポリシーなどを複製する場合は、Business Critical Edition以上のエディションが必要となります。
Snowflakeでレプリケーション(複製)する際の注意点とは?
実は、Snowflakeではレプリケーション(複製)できないオブジェクトがあります。
次のオブジェクトは、Snowflakeではレプリケーション(複製)不可となりますので、ご注意ください。
- 共有から作成されたデータベース
- 外部テーブル
- Icebergテーブル
- ハイブリッドテーブル(Unistore)
外部テーブルやIcebergテーブルはAWS S3やMicrosoft Azure Storageのファイルからテーブルを作成しており、複製することができないため、注意が必要です。
また、外部テーブルやIcebergテーブルの参照元ファイルは、セカンダリリージョンのストレージにコピーされない点にも注意しましょう。
コストについて、レプリケーションで使用するデータ転送とコンピューティング料金は、複製される方のアカウントに課金されます。この点についても注意が必要です。
まとめ
ここまで、Snowflakeのレプリケーション(複製)機能について、用途や対象オブジェクト、レプリケーション(複製)する際の注意点を解説してまいりました。Snowflakeのレプリケーション(複製)機能を活用することで、効率的なデータバックアップやフェールオーバーの設定が可能となりますので、まだご利用されていない方は、ご検討いただければと思います。
弊社では、お客様の用途やデータ連携元の環境構成、今後の活用方法を踏まえて、データ分析基盤の構築やお客様が構築したデータ分析基盤の改修などを実施しております。
Snowflakeを用いたデータ活用でお悩みの際は、是非、弊社までお声掛けください。
本記事は、2024年9月1日時点の情報を基に作成しています。製品・サービスに関する詳しいお問い合わせは、弊社Webサイトからお問い合わせください。
https://itsol.dentsusoken.com/snowflake/inquiry/