目次
はじめに
Amazon Relational Database Service (Amazon RDS) は、クラウド内でリレーショナルデータベースのセットアップ、運用、およびスケーリングを簡単に行うことのできるマネージド型サービスです。AWSコンソール画面よりAmazon RDS のサービスにてデータベースを作成し、すぐに利用することが可能です。ArcGIS Server のライセンスがあれば、Amazon RDS にエンタープライズ ジオデータベースを作成することができます。(※Amazon RDS は2023年6月時点で国内未サポートになりますのでご了承ください。)
Amazon RDSにてエンタープライズ ジオデータベースを作成する流れは以下の通りです。
- Amazon RDS にてデータベースを作成
- PgAdmin にてジオデータベース以外のオブジェクトを作成
- ArcGIS にてエンタープライズ ジオデータベースの有効化
Amazon RDS にてデータベースを作成
Amazon RDS のコンソール画面よりデータベースを作成します。
ここではエンジンのタイプとして、Aurora(PostgreSQL Compatible)を選択します。
バージョンは、Aurora PostgreSQL 14.6 を利用しております。
今回は検証なので、テンプレートとして開発/テストを選択します。
DBインスタンスクラスは、バーストクラスとして、db.t3.medium を選択しています。
また、ArcGIS Pro のインストールされたEC2インスタンスを選択して、作成するデータベースと接続できるようにします。
PgAdminにてジオデータベース以外のオブジェクトを作成
エンタープライズ ジオデータベースを有効化する前にAmazon RDS のデータベースに必要なオブジェクトを作成しておきます。
PgAdmin をダウンロードし、インストールします。
ここでは、Windows 環境を利用しています。
ホスト名にAmazon RDS のエンドポイント名を指定し、データベース作成時に指定したユーザー名とパスワードを設定します。
最初にpostgres データベースを選択し、Query Tool を起動します。
ヘルプページに従い必要なオブジェクトを作成していきます。
1.データベース インスタンスおよびデータベースを作成し、PostGIS エクステンションをデータベースに読み込みます。
CREATE DATABASE mydb; CREATE EXTENSION postgis; CREATE EXTENSION fuzzystrmatch; CREATE EXTENSION postgis_tiger_geocoder; CREATE EXTENSION postgis_topology;
2.sde ログイン ロールを PostgreSQL に作成し、rds_superuser ロールを付与します。
CREATE ROLE sde CREATEROLE; ALTER ROLE sde LOGIN; ALTER ROLE sde PASSWORD 'パスワード'; GRANT rds_superuser to sde;
3.mydb データベースを選択し、Query Tool を起動します。
sde という名前のスキーマをデータベースに作成し、その sde ログインを sde スキーマの所有者にします。
CREATE SCHEMA sde; ALTER SCHEMA sde OWNER TO sde;
4.データを所有するログイン ロールを作成します。 このログインに、データベースのテーブルおよびビューを作成する権限を付与します。
postgres データベースのQuery Tool にてicsログインロールを作成します。
CREATE ROLE ics CREATEROLE; ALTER ROLE ics PASSWORD 'パスワード'; ALTER ROLE ics CREATEDB; ALTER ROLE ics LOGIN;
5.この新しいログイン ロールのスキーマを作成します。
mydb データベースのQuery Tool にてicsスキーマを作成します。
CREATE SCHEMA ics; ALTER SCHEMA ics OWNER TO ics;
6.この新しいログインに sde スキーマの USAGE 権限を付与します。
GRANT USAGE ON ALL TABLES IN SCHEMA sde To ics;
7.sde ログインに、新しいログインのスキーマの USAGE 権限を付与します。
GRANT USAGE ON ALL TABLES IN SCHEMA ics To sde;
8.最初に接続されたユーザーのスキーマ (“$user”) を検索し、次にパブリック スキーマを検索し、最後に sde スキーマを検索するように、データベース上の検索パスを設定します。
SET search_path TO "$user",public,sde show search_path;
9.データベースに対するすべての権限を sde ログインに付与します。
GRANT ALL PRIVILEGES ON DATABASE mydb to sde;
ArcGIS にてエンタープライズ ジオデータベースの有効化
- [データベース コネクションの作成 (Create Database Connection)] ジオプロセシング ツールを ArcGIS Pro または ArcGIS Server から実行して、sde ユーザーとして接続します。
- ArcGIS クライアントから [エンタープライズ ジオデータベースの有効化 (Enable Enterprise Geodatabase)] ジオプロセシング ツールを実行します。
- ArcGIS クライアントから [データベース接続の作成 (Create Database Connection)] ジオプロセシング ツールを実行し、データを読み込むためにIcs ログインにて、データベースに接続します。
- 市区町村データのフィーチャクラスをインポートしてみます。手元にない場合はこちらよりダウンロードしてください。
- ArcGIS Pro にて正常に表示されることが確認できます。
マネージド型データベースを利用すればサービス側でデータベースの運用を任せられ、
サーバーなどのインフラ管理のコストが削減できます。
ArcGIS では、エンタープライズ ジオデータベースをこのマネージド型データベース上に作成できます。
また、必要に応じてArcGIS Server サイトにジオデータベースを登録することもできます。
GIS活用の中でのDX推進のヒントにしてみてください。
※参考 Amazon RDS for PostgreSQL または Aurora PostgreSQL 上のジオデータベースの作成