この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
Amazon Cloud Directory
Amazon Cloud Directoryは、AWSから発表された新しいディレクトリーサービスです。今まで、ディレクトリーサービスといえば、エンプラではAD(Active Directory)、OSSではOpenLDAPがメジャーであり、マネージドサービスとしてスケールするディレクトリーサービスの選択肢は少なかったと思います。
また、階層構造を扱う仕組みを考えた時、DynamoDBとかS3とかで頑張って自分でルールやロジックを書くことを多かったのではないでしょうか。Amazon Cloud Directoryは、多階層・多次元の構造データを簡単に扱うことができます。細かなアクセスポリシーを設定することができます。
Amazon Cloud Directoryは、既存のエンタープライズなディレクトリーサービスを否定して置き換えるものではなく、ソーシャルやモバイルなどの用途が無限にスケールしていくユースケースにおいて、階層化された情報を管理したいときにフィットするサービスかと思います。
Amazon Cloud Directoryの位置づけ
Amazon Cloud Directoryは、AWS Directory Serviceのメニューとして表示されます。このメニューには5つの項目があり、ユースケースに合わせて選んで利用します。
AWS Directory Serviceの選択メニュー
- Amazon Cloud Directory : クラウドネイティブなサービス。アプリケーションの階層構造、組織構造、カタログ、ネットワークトポロジなど、1億を超えるデータを管理することができる。
- Amazon Cognito Your User Pools : ユーザーの作成と管理やサインインなどを行うマネージドサービス。1億を超えるユーザーを管理することができる。
- Microsoft AD : AWSがマネージドで提供する、Microsoft Active Directory。エンタープライズITによく用いられる。
- Simple AD : AWSがマネージドで提供する、SAMBA 4。Microsoft Active Directoryのサブセットを提供する。
- AD Connector : オンプレのMicrosoft Active Directoryと連携するコネクター。
ニュースリリースには、「Amazon Cloud Directoryは、Amazon CognitoやAWS Organizationsのビルディングブロックとして既に使われている」と書いてありますので、非常に汎用性の高いサービスの位置づけかと思います。つまり、S3やEC2は基盤サービス、Cloud Directoryは抽象サービス、CognitoやOrganizationsはアプリケーションサービスと言っても良いかもしれません。
DirectoryとSchemaを作ってみる
早速使ってみましょう。まず始めにスキーマを選択します。サンプルが用意されているのでひとつ選んで作成します。
バージョン番号を付けます。
これだけです。
とても簡単な手順ですが、細かい手順は以下のようになっています。
-
- Directoryを新規作成する。
- Schemaを新規作成する。(Development ステータス)
- Schemaをバージョン番号を付けてPublishする。(Published ステータス)
- SchemaをDirectoryにApplyする。(Applied ステータス)
ApplyされたSchemaには、facetや非必須属性の追加をすることができるようになります。つまり、スキーマ構造を作り、バージョンを付け、ディレクトリーにアタッチして、最後にインデックスを張るという流れです。
CLIからも確かめてみましょう。まずは作成済みのDirectory一覧から
$ aws clouddirectory list-directories --region us-west-2
{
"Directories": [
{
"State": "ENABLED",
"CreationDateTime": 1485688794.906,
"Name": "MyCompany",
"DirectoryArn": "arn:aws:clouddirectory:us-west-2:XXXXXXXXXXXX:directory/Ab4TySiu4UqRhHIdjWXXXXX"
}
]
}
続いて作成済みのSchemaを確認しましす。画面から作成すると、Developmentステータスから遷移しますね。
$ aws clouddirectory list-development-schema-arns --region us-west-2
{
"SchemaArns": []
}
Publishedステータスを確認します。
$ aws clouddirectory list-published-schema-arns --region us-west-2
{
"SchemaArns": [
"arn:aws:clouddirectory:us-west-2:XXXXXXXXXXXX:schema/published/person/v1"
]
}
最後に、Appliedステータスを確認します。画面から作成するとApplied済みですね。
$ aws clouddirectory list-applied-schema-arns --region us-west-2 \
--directory-arn arn:aws:clouddirectory:us-west-2:XXXXXXXXXXXX:directory/Ab4TySiu4UqRhHIdjWXXXXX
{
"SchemaArns": [
"arn:aws:clouddirectory:us-west-2:XXXXXXXXXXXX:directory/Ab4TySiu4UqRhHIdjWXXXXX/schema/person/v1"
]
}
まとめ
今日はとりあえずココまでです。次回はIndexやObjectの作成と利用についてご紹介したいと思います。
参考資料
Amazon Cloud Directory – A Cloud-Native Directory for Hierarchical Data
What Is AWS Directory Service?