Amazon Cloud Directoryがリリースされたので触ってみました – 管理コンソールから新規作成 –

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つの項目があり、ユースケースに合わせて選んで利用します。

SS 2017-01-29 20.04.13

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を作ってみる

早速使ってみましょう。まず始めにスキーマを選択します。サンプルが用意されているのでひとつ選んで作成します。

SS 2017-01-29 20.19.04

バージョン番号を付けます。

SS 2017-01-29 20.19.31

これだけです。

SS 2017-01-29 20.21.08

とても簡単な手順ですが、細かい手順は以下のようになっています。

    1. Directoryを新規作成する。
    2. Schemaを新規作成する。(Development ステータス)
    3. Schemaをバージョン番号を付けてPublishする。(Published ステータス)
    4. 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?

AWS CLI Command Reference - clouddirectory

Welcome to the Amazon Cloud Directory API Reference