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 ステータス)
  5. 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