Altus Environment

Altus Environmentは、AltusのクラスターやジョブがアクセスできるAWSアカウント内のリソースを定義します。Altusユーザーが作成するクラスターやジョブが利用できるリソースは、Altus Environmentによって決まります。ユーザーがクラスターを作成したり、ジョブを投入したりすると、Altusはそのユーザーに割り当てられたAltus Environmentで定義されたAWSアカウント内のVPCの中で、そのクラスターを作成し、ジョブを実行します。

Altusはユーザーに代わってタスクを実行するので、ユーザーのAWSアカウントを利用できなければなりません。Altusがユーザーのアカウント内でクラスターを作成してジョブを実行できるようにするためには、ユーザーのAWSアカウントでクロスアカウントアクセスのロールがセットアップされていなければなりません。

Altusが必要とするクロスアカウントアクセスロールに関する詳しい情報については、クロスアカウントアクセスロールを参照してください。

Altus Environmentを作成すれば、Altusユーザーが利用できるクロスアカウントアクセスロールとリソースに関する情報を保存できます。

Altus Environmentには、ユーザーのAWSアカウント内の以下のリソースに関する情報が含まれます。
  • クロスアカウントアクセスロール
  • リージョン
  • VPC
  • EC2インスタンスのロール
  • セキュリティグループ
  • 外部からアクセス可能なサブネット
Altus Environmentのセットアップには、以下のツールが利用できます。
Environment Quickstart

Environment Quickstartは、Altus Environmentの作成のプロセスをシンプルにしてくれます。Quickstartを使う場合、Cloudera AltusはCloudFormationのテンプレートを使い、クロスアカウントアクセス用のロール、VPC、セキュリティグループ、そしてその他のリソースをユーザーのAWSアカウント内で作成します。

Environment Quickstartでは委任ロールやインスタンスプロファイルなどのリソースに名前を与えることができ、Quickstartはその名前でユーザーのAWSアカウント内にリソースを作成してくれます。AltusがユーザーのAWSアカウントにアクセスし、その中でリソースを作成できるようにするために、ユーザーはクレデンシャルを指定しなければなりません。

Environment Wizard

Environment Wizardは、AWSマネジメントコンソールでのクロスアカウントアクセスロールやその他のリソースの作成を案内してくれます。サブネット、セキュリティグループ、そしてその他のリソースをAWSで作成する過程で、Environment Wizardにリソースの情報を入力していけばAltus Environmentが構築できます。

複数のリソースセットを利用したい場合は、それぞれのリソースセットに対してAltus Environmentを作成すれば、AWSのリソースへのユーザーのアクセスをうまくコントロールできます。

QuickstartでのAltus Environmentの作成

Environment Quickstartは、CloudFormationのテンプレートを使ってAWSのアカウント内にリソースのスタックを作成します。Environment QuickstartにCloudFormationのスタック名とリソース名を入力すれば、その名前でAWSにスタックやリソースが作成されます。

Environment Quickstartは、管理者のAWSアカウントを使ってAltusユーザーのためのリソースを作成します。管理者は、自分のAWSのクレデンシャルをEnvironment Quickstartに渡して、Environment Quickstartが管理者のAWSアカウントにアクセスできるようにしなければなりません。

AWSのクレデンシャルを渡したくない場合には、必要なリソースをAWS内に自分で直接作成してからEnvironment WizardにAltus Environmentを構築してもらうこともできます。Environment Wizardの利用方法については、WizardでのAltus Environmentの作成を参照してください。

Environment Quickstartを使ってAltus Environmentを作成するには、
  1. Cloudera Altusコンソールにサインインします。

    https://console.altus.cloudera.com/dataeng/index.html

  2. サイドナビゲーションパネルから、Environmentsをクリックします。

    EnvironmentsページにはすべてのAltus Environmentのリストが表示されます。また、リソースが配置されているAWSのリージョンも表示されます。

  3. Quickstartをクリックします。

    Environment Quickstartページで、CloudFormationのテンプレートの設定を指定します。

  4. 以下の情報を指定します。
    プロパティ 説明
    Altus Environment Name

    作成するAltus Environmentの名前。Environmentの名前は、管理者のアカウント内でユニークでなければなりません。

    プレフィックスは、最大40文字の半角英数字です。アンダースコア(_)も使用できます。空白を含めることはできません。

    Altusは、Environment内のリソースの名前のプレフィックスとしてEnvironment名を使用することで、リソース名の重複を防ぎます。
    AWS Region AWSのリソーススタックを作成するリージョンです。
    Enable Workload Analytics Altus Environment内で作成されたクラスター上で動作するジョブに対して、Workload Analyticsを有効化します。完了したジョブのログ、メトリクス、設定の詳細は、Workload Analyticsに送信されるようになります。Workload Analyticsはこれらの情報を利用し、ジョブのヘルスチェックやベースラインの生成を行います。
    Archive workload logs

    AltusがクラスターやジョブのログをS3のバケットに保存できるようにします。Altusは、クラスターのログを5分間隔でS3に書き込みます。ジョブのログはジョブの完了後にS3に書き込まれます。

    クラスター及びジョブのログのアーカイブに使用されるS3バケットの名前を指定してください。S3のバケットは、選択されたリージョンに作成されます。

    このオプションを選択しなかった場合、ログはアーカイブされません。クラスターが終了させられると、ログは失われることになります。ログがなければ、Clouderaのサポートがジョブの障害のデバッグを支援できないかもしれません。

    Turn on S3Guard

    S3バケットに対するS3Guardを有効にします。

    S3Guardは、Amazon S3に保存されたデータが一貫性を保って見えるようにしてくれるとともに、S3に書き込まれたデータをすぐに処理できるようにしてくれます。

    S3GuardはAmazon DynamoDBデータベースにメタデータを保存します。AmazonはDynamoDBに対して時間単位で課金を行います。

    Amazon DynamoDBの料金を参照してください。

    Auto-register ssh keys

    Altus Environmentで作成されたクラスターに提供された、AWSに未登録のSSHキーをAltusがEC2にインポートできるようにします。

    Altusでクラスターを作成するためには、Altus Environmentで指定されているリージョン内のEC2に登録済みのSSHキーが必要です。このオプションを選択すると、Altusはユーザーがクラスター作成時に渡した未登録のSSHキーを自動的にEC2にインポートしてくれます。

    Altus Environmentで指定されているリージョンのEC2に登録済みのキーを使う場合はこのオプションを選択する必要はなく、その登録済みのキーでクラスターを作成することができます。

    未登録のキーを使い、このオプションを選択していない場合、AltusはEC2にそのSSHキーを登録しません。未登録のSSHキーを使ってクラスターを作成することはできません。
  5. Previewセクションには、Altusが作成するリソースの名前が表示されます。
    プロパティ 説明
    Environment 作成しているAltus Environment
    AWS Stack CloudFormationのテンプレートを使って作成されるAWSのリソーススタック
    AWS Delegated Role Cloudera Altusアカウントにアクセス権を委任するロール
    AWS Instance Profile Role

    Altusクラスター内のEC2インスタンスのためのインスタンスプロファイル

    Altusが使用するCloudFormationのテンプレートをJSONファイルとしてダウンロードすれば、Altusが管理者のAWSアカウントの下で作成するリソースのリストを見ることができます。このファイルをダウンロードするには、Download CloudFormation Templateをクリックしてください。altus-cf-template.jsonというファイルがAltusからローカルマシンにダウンロードされます。

    リソース名についての命名ルールに従う必要があるのであれば、リソースに使う名前を指定することができます。

  6. リソース名を指定するには、Customize Resource Namesをクリックし、要求にあったリソース名を入力してください。
  7. Createをクリックすると、AWSアカウント内にCloudFormationのリソーススタックが作成されます。
  8. Provide AWS Credentialsページで、管理者のAWSアカウントにログインしてリソースを作成するためにClouderaが利用できるクレデンシャルを入力してください。

    提供しなければならないのは、AWSに登録済みのアクセスキーです。

  9. Proceedをクリックしてください。

WizardでのAltus Environmentの作成

Environment Wizardには、管理者のAWSアカウント内でのクロスアカウントアクセスロールやその他のリソースの作成を支援するインストラクションが表示されるヘルプパネルがあります。

AWSのアカウントにログインしてからEnvironment Wizardにアクセスし、AWSアカウント内にリソースを作成するためのインストラクションに従ってください。AWS内にリソースが作成できたなら、リソースに関する情報をEnvironment Wizardに入力してください。Altusで使用したいAWSアカウント内でクロスアカウントアクセスロールやその他のリソースが作成済みなのであれば、新たなリソースを作成せずにそれらのリソースの情報をEnvironment Wizardに入力できます。

Environment Wizardを使ってAltus Environmentを作成するには、以下のようにします。

  1. Cloudera Altusコンソールにサインインします。

    https://console.altus.cloudera.com/dataeng/index.html

  2. サイドナビゲーションパネルから、Environmentsをクリックしてください。

    Environmentsページには、利用できるすべてのAltus Environmentのリストが表示されます。また、リソースが配置されているAWSのリージョンも表示されます。

  3. Configuration Wizardをクリックします。
  4. Configuration WizardページでAltus Environmentの名前を入力し、Nextをクリックします。
  5. Configuration Wizardのhelpパネルのインストラクションに従って、AWSのリソースを作成します。

    Environment Wizardは、クロスアカウントアクセスロールやネットワーク、インスタンスの設定のステップを案内していってくれます。また、S3のためのEC2インスタンスのポリシーの作成のインストラクションも提供してくれます。

    クロスアカウントアクセスロール及びその他のロールやリソースをAWS内に作成する過程で、Environment Wizardにロールとリソースに関する情報を入力していってください。

Altus Environmentの複製

Altus Environmentは、他のEnvironmentから複製できます。Environmentを複製する場合、新しいEnvironmentでも同じリソースを参照することも、あるいは新しいリソースを作成することもできます。

Altus Environmentを複製するには、以下のようにします。

  1. Cloudera Altusコンソールにサインインします。

    https://console.altus.cloudera.com/dataeng/index.html

  2. サイドナビゲーションパネルから、Environmentsをクリックします。

    Environmentsページには、利用できるすべてのAltus Environmentのリストが表示されます。

  3. Environmentの名前をクリックします。
  4. Environmentのリソースを見直して、複製したいEnvironmentが選択されていることを確認します。
  5. Actionsをクリックし、Clone Environmentを選択します。

    Environmentを複製するには、Configuration Wizardを使います。

  6. Environment Nameページで、新しいAltus Environmentの名前を入力し、Nextをクリックします。

    Configuration Wizardは、新しいAltus Environmentで使用するクロスアカウントアクセスロールやその他のリソースの設定のステップをガイドしてくれます。同じリソースを使い続けることも、新しいリソースを作成することもできます。

  7. Configuration Wizardのhelpパネルのインストラクションに従って、既存のリソースもしくは新しいリソースから新しいEnvironmentを作成します。

クロスアカウントアクセスロール

ユーザーのアカウントの下でAltusがクラスターを作成し、ジョブを実行できるようにするために、ユーザーは自分のアカウント内のリソースにAltusがアクセスする許可を与えなければなりません。AWSでクロスアカウントアクセスロールを作成し、Altusに信頼済みのプリンシパルとしてアクセスを許可してください。このクロスアカウントアクセスロールに対して定義するポリシーでは、Altusがインスタンスの作成と管理、そしてクラスターの作成と管理及びジョブの実行に必要なタスクを行えるようにする必要があります。

Altus Environmentは、クロスアカウントアクセスロールに関する情報を保存します。

クロスアカウントアクセスロールのポリシーには、以下のパーミッションが必要です。
ec2:CancelSpotInstanceRequests
ec2:CreateTags
ec2:DescribeAvailabilityZones
ec2:DescribeImages
ec2:DescribeInstanceStatus
ec2:DescribeInstances
ec2:DescribeKeyPairs
ec2:DescribeNetworkAcls
ec2:DescribePlacementGroups
ec2:DescribeRegions
ec2:DescribeSecurityGroups
ec2:DescribeSpotInstanceRequests
ec2:DescribeSpotPriceHistory
ec2:DescribeSubnets
ec2:ImportKeyPair
ec2:RequestSpotInstances
ec2:RunInstances
ec2:TerminateInstances
iam:GetInstanceProfile
iam:PassRole
iam:SimulatePrincipalPolicy
s3:GetBucketLocation
sts:DecodeAuthorizationMessage