SnowflakeのOrganizationは複数のAccountを 論理的にグループ化する最上位の管理単位です。 1つのOrganizationの配下に用途別・環境別・リージョン別のアカウントを配置し、 統一的なガバナンスと課金管理を実現します。ORGADMINロールがOrganizationレベルの管理操作を担当します。
Snowflakeのリソース階層は上から Organization → Account → Database → Schema → Table/View/UDF/... の構成です。Organizationは課金・ガバナンスの単位であり、 各Accountは独立したコンピュート・ストレージ・ユーザー・ロール体系を持ちます。
ORGADMINはOrganizationレベルの管理ロールで、以下の操作が可能です。
-- ORGADMINロールの使用
USE ROLE ORGADMIN;
-- Organization内の全アカウント一覧
SHOW ORGANIZATION ACCOUNTS;
-- 特定アカウントの詳細
SHOW ORGANIZATION ACCOUNTS LIKE 'PROD_%';ORGADMINロールでCREATE ACCOUNTを実行して新規アカウントを作成します。 管理者ユーザー、エディション、リージョンを指定します。
-- 本番アカウントの作成
USE ROLE ORGADMIN;
CREATE ACCOUNT prod_analytics
ADMIN_NAME = 'admin_user'
ADMIN_PASSWORD = '********'
ADMIN_RSA_PUBLIC_KEY = 'MIIBIjANBgkqh...'
EMAIL = '[email protected]'
EDITION = 'ENTERPRISE'
REGION = 'AWS_AP_NORTHEAST_1'
COMMENT = '分析チーム本番環境';
-- 開発アカウントの作成(Standard Editionでコスト抑制)
CREATE ACCOUNT dev_sandbox
ADMIN_NAME = 'dev_admin'
ADMIN_PASSWORD = '********'
EMAIL = '[email protected]'
EDITION = 'STANDARD'
REGION = 'AWS_AP_NORTHEAST_1'
COMMENT = '開発・検証用サンドボックス';
-- アカウント名の変更
ALTER ACCOUNT dev_sandbox RENAME TO dev_analytics;
-- アカウントのドロップ(復元不可・25日間の猶予期間あり)
ALTER ACCOUNT dev_analytics DROP;組織の規模と要件に応じて、アカウント分割の粒度を設計します。
| パターン | 分割基準 | アカウント例 | メリット | デメリット |
|---|---|---|---|---|
| 環境分離 | 開発/ステージング/本番 | dev, staging, prod | 本番データへの誤アクセス防止。CI/CDパイプラインと親和性が高い | 環境間のデータ連携にReplicationまたはData Sharingが必要 |
| 部門分離 | 事業部/チーム | marketing, engineering, finance | 部門別コスト配賦が明確。権限管理が独立 | 部門間のデータ共有にData Sharingの設計が必要 |
| リージョン分離 | 地理的リージョン | us_east, eu_west, ap_northeast | データレジデンシー要件(GDPR等)への対応。レイテンシの最適化 | リージョン間のデータ同期にDatabase Replicationのコスト発生 |
| ハイブリッド | 環境×部門の組み合わせ | prod_marketing, dev_engineering | 最も細粒度な分離と制御 | アカウント数が増大し管理負荷が高い |
-- アカウント作成後の初期設定(各アカウントのACCOUNTADMINで実行)
USE ROLE ACCOUNTADMIN;
-- ネットワークポリシーの設定(IP制限)
CREATE NETWORK POLICY corp_network_policy
ALLOWED_IP_LIST = ('203.0.113.0/24', '198.51.100.0/24')
BLOCKED_IP_LIST = ()
COMMENT = '社内ネットワークからのみアクセス許可';
ALTER ACCOUNT SET NETWORK_POLICY = corp_network_policy;
-- セッションタイムアウトの設定
ALTER ACCOUNT SET
STATEMENT_TIMEOUT_IN_SECONDS = 3600
STATEMENT_QUEUED_TIMEOUT_IN_SECONDS = 600;
-- Resource Monitorの作成
CREATE RESOURCE MONITOR monthly_monitor
WITH CREDIT_QUOTA = 5000
FREQUENCY = MONTHLY
START_TIMESTAMP = IMMEDIATELY
TRIGGERS
ON 80 PERCENT DO NOTIFY
ON 100 PERCENT DO SUSPEND;
ALTER ACCOUNT SET RESOURCE_MONITOR = monthly_monitor;-- Secure Data Sharing(プロバイダー側)
USE ROLE ACCOUNTADMIN;
CREATE SHARE analytics_share;
GRANT USAGE ON DATABASE analytics TO SHARE analytics_share;
GRANT USAGE ON SCHEMA analytics.public TO SHARE analytics_share;
GRANT SELECT ON TABLE analytics.public.kpi_summary
TO SHARE analytics_share;
ALTER SHARE analytics_share ADD ACCOUNTS = prod_marketing;
-- Data Sharing(コンシューマー側)
USE ROLE ACCOUNTADMIN;
CREATE DATABASE shared_analytics
FROM SHARE provider_org.prod_analytics.analytics_share;
GRANT IMPORTED PRIVILEGES ON DATABASE shared_analytics
TO ROLE analyst_role;
-- Database Replication(リージョン間同期)
-- プライマリ側
ALTER DATABASE analytics ENABLE REPLICATION
TO ACCOUNTS prod_eu_west;
-- セカンダリ側(prod_eu_westで実行)
CREATE DATABASE analytics AS REPLICA OF
prod_analytics.analytics;SnowPro
問題 1
グローバル企業がGDPR対応のためEUのデータをEUリージョン内に保持しつつ、日本のアナリストチームにも集計結果を提供したいと考えています。最も適切なアーキテクチャはどれですか?
正解: B
GDPR対応ではEUの生データをEUリージョン内に保持する必要があります。Database Replicationで集計結果(個人情報を含まない)のみを東京リージョンのアカウントに同期する構成が最適です。COPY INTOによる転送は生データの移動になりGDPR違反の可能性があります。リージョン間のSecure Data Sharingも選択肢ですが、集計テーブルのみの選択的な同期にはReplicationの方が制御しやすいです。
ORGADMINロールは最初からアカウントに存在しますか?
いいえ。ORGADMINロールはアカウント作成時には無効です。Organization内のいずれかのアカウントのACCOUNTADMINがSnowflakeサポートに依頼するか、Snowsightの管理画面からORGADMINを有効化する必要があります。有効化後、そのアカウントでUSE ROLE ORGADMINを実行してOrganization管理操作(CREATE ACCOUNT、SHOW ORGANIZATION ACCOUNTSなど)が可能になります。
CREATE ACCOUNTで作成したアカウントの課金はどうなりますか?
CREATE ACCOUNTで作成されたアカウントはOrganization配下に自動的に所属し、課金はOrganizationの契約に紐づきます。Capacity契約の場合は同一の残高プールから消費され、On-Demand契約の場合は同一の請求先にまとめられます。アカウントごとにEdition(Standard/Enterprise/Business Critical)を個別に指定できますが、単価はEditionによって異なります。
マルチアカウント構成でアカウント間のデータ共有はどうしますか?
同一Organization内のアカウント間ではSecure Data Sharing(ダイレクト共有)が最も効率的です。SHARE TO ACCOUNTSで共有を作成し、受信側でCREATE DATABASE FROM SHAREでマウントします。異なるOrganization間ではSnowflake Marketplaceのプライベートリスティングまたはデータ交換を使用します。同一リージョンの同一Organization内であればデータ転送コストは発生しません。
NicheeLab編集部
データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。
Snowflake資格一覧|全11試験(SnowPro)の難易度・費用
Snowflake認定資格(SnowPro)全11試験の一覧・難易度・費用・出題範囲を徹底解説。...
Snowflake試験の難易度ランキング|全11資格を徹底比較
Snowflake(SnowPro)認定全11試験の難易度をランキング形式で比較。学習時間・合格に必要なスキルから分析。...
Snowflake資格の勉強方法|効率的な学習ルートと合格のコツ
Snowflake認定資格(SnowPro)に最短で合格するための勉強方法。公式リソース・学習スケジュールを徹底ガイド。...
SnowPro Core試験完全解説|出題範囲・問題例・合格戦略
SnowPro Core Certification(COF-C03)を徹底解説。出題範囲・100問の試験形式・合格ライ...
SnowPro Platform Associate完全解説|入門試験の攻略
SnowPro Associate: Platform Certification(SOL-C01)を徹底解説。最も簡単...