Skip to main content

AWSでのAuto Insights

このガイドでは、AWSでAuto Insightsを設定し、データ分析とインサイトを自動化する方法について説明します。以下の手順に従うことで、セットアップを効率的に設定および最適化できます。

必要条件

アカウントのセットアップ

ステップ1: IAMの設定

ステップ1a: Auto Insights IAMポリシーの作成

注記

AAC_AutoInsights_SA_Policyは、ポリシー名の例です。ポリシーには任意の名前を指定できますが、その名前は「AAC_AutoInsights」で始まる必要があります

カスタムIAMポリシーを作成する必要があります。名前を「AAC_AutoInsights_SA_Policy」とし、以下のポリシードキュメントを添付します。ビジュアルエディターではなくJSONタブを使用することをお勧めします。実行するには、Alteryx Oneに一部*権限が必要です。ポリシーの作成時に、セキュリティ警告が何件か発生する場合があります。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::*:role/*",
            "Condition": {
                "StringEqualsIfExists": {
                    "iam:PassedToService": [
                        "ec2.amazonaws.com",
                        "ec2.amazonaws.com.cn"
                    ]
                }
            }
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "eks:*",
                "iam:CreateServiceLinkedRole",
                "kms:CreateGrant",
                "kms:Decrypt",
                "kms:DescribeKey",
                "kms:Encrypt",
                "kms:GetKeyPolicy",
                "kms:GetKeyRotationStatus",
                "kms:ListGrants",
                "kms:ListResourceTags",
                "kms:ListRetirableGrants",
                "kms:PutKeyPolicy",
                "kms:RetireGrant",
                "kms:RevokeGrant",
                "kms:ScheduleKeyDeletion",
                "kms:TagResource",
                "kms:UntagResource"
            ],
            "Resource": [
                "arn:aws:eks:*:*:addon/*/*/*",
                "arn:aws:eks:*:*:cluster/*",
                "arn:aws:eks:*:*:nodegroup/*/*/*",
                "arn:aws:eks:*:*:identityproviderconfig/*/*/*/*",
                "arn:aws:eks:*:*:access-entry/*/*/*",
                "arn:aws:kms:*:*:key/*",
                "arn:aws:iam::*:role/*"
            ]
        },
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:CreateOpenIDConnectProvider",
                "iam:CreatePolicy",
                "iam:CreatePolicyVersion",
                "iam:CreateRole",
                "iam:DeleteOpenIDConnectProvider",
                "iam:DeletePolicy",
                "iam:DeletePolicyVersion",
                "iam:DeleteRole",
                "iam:DeleteRolePolicy",
                "iam:DetachRolePolicy",
                "iam:GetOpenIDConnectProvider",
                "iam:GetPolicy",
                "iam:GetPolicyVersion",
                "iam:GetRole",
                "iam:GetRolePolicy",
                "iam:GetUser",
                "iam:GetUserPolicy",
                "iam:ListAttachedRolePolicies",
                "iam:ListAttachedUserPolicies",
                "iam:ListGroupsForUser",
                "iam:ListInstanceProfilesForRole",
                "iam:ListPolicyTags",
                "iam:ListPolicyVersions",
                "iam:ListRolePolicies",
                "iam:PassRole",
                "iam:PutRolePolicy",
                "iam:TagOpenIDConnectProvider",
                "iam:TagPolicy",
                "iam:TagRole",
                "iam:UntagOpenIDConnectProvider",
                "iam:UntagPolicy",
                "iam:UntagRole",
                "iam:UpdateOpenIDConnectProviderThumbprint",
                "iam:UpdateRole",
                "iam:UpdateAssumeRolePolicy"
            ],
            "Resource": [
                "arn:aws:iam::*:policy/*",
                "arn:aws:iam::*:oidc-provider/*",
                "arn:aws:iam::*:user/*",
                "arn:aws:iam::*:role/*"
            ]
        },
        {
            "Sid": "VisualEditor3",
            "Effect": "Allow",
            "Action": [
                "autoscaling:*",
                "ec2:*",
                "eks:CreateCluster",
                "eks:ListClusters",
                "eks:DescribeAddonVersions",
                "elasticloadbalancing:*",
                "iam:GetAccountName",
                "iam:ListAccountAliases",
                "iam:ListRoles",
                "iam:CreateInstanceProfile",
                "iam:DeleteInstanceProfile",
                "iam:GetInstanceProfile",
                "iam:TagInstanceProfile",
                "iam:UntagInstanceProfile", 
                "iam:RemoveRoleFromInstanceProfile", 
                "iam:AddRoleToInstanceProfile", 
                "kms:CreateKey",
                "logs:CreateLogGroup",
                "logs:DeleteLogGroup",
                "logs:DescribeLogGroups",
                "logs:ListTagsLogGroup",
                "logs:PutRetentionPolicy",
                "logs:TagResource",
                "logs:UntagResource",
                "logs:TagLogGroup",
                "logs:UntagLogGroup",
                "logs:ListTagsForResource",
                "networkmanager:Describe*",
                "networkmanager:Get*",
                "networkmanager:List*",
                "s3:CreateBucket",
                "s3:DeleteBucket",
                "s3:DeleteBucketPolicy",
                "s3:DeleteBucketWebsite",
                "s3:DeleteObject",
                "s3:DeleteObjectVersion",
                "s3:DeleteObjectVersionTagging",
                "s3:GetAccelerateConfiguration",
                "s3:GetBucketAcl",
                "s3:GetBucketCORS",
                "s3:GetBucketLocation",
                "s3:GetBucketLogging",
                "s3:GetBucketObjectLockConfiguration",
                "s3:GetBucketOwnershipControls",
                "s3:GetBucketPolicy",
                "s3:GetBucketPolicyStatus",
                "s3:GetBucketPublicAccessBlock",
                "s3:GetBucketRequestPayment",
                "s3:GetBucketTagging",
                "s3:GetBucketVersioning",
                "s3:GetBucketWebsite",
                "s3:GetEncryptionConfiguration",
                "s3:GetLifecycleConfiguration",
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:GetObjectVersion",
                "s3:GetObjectVersionAcl",
                "s3:GetObjectVersionAttributes",
                "s3:GetObjectVersionForReplication",
                "s3:GetObjectVersionTagging",
                "s3:GetObjectVersionTorrent",
                "s3:GetReplicationConfiguration",
                "s3:ListAllMyBuckets",
                "s3:ListBucket",
                "s3:ListBucketVersions",
                "s3:PutAccelerateConfiguration",
                "s3:PutBucketAcl",
                "s3:PutBucketCORS",
                "s3:PutBucketLogging",
                "s3:PutBucketObjectLockConfiguration",
                "s3:PutBucketOwnershipControls",
                "s3:PutBucketPolicy",
                "s3:PutBucketPublicAccessBlock",
                "s3:PutBucketRequestPayment",
                "s3:PutBucketTagging",
                "s3:PutBucketVersioning",
                "s3:PutBucketWebsite",
                "s3:PutEncryptionConfiguration",
                "s3:PutLifecycleConfiguration",
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:PutObjectVersionAcl",
                "s3:PutObjectVersionTagging",
                "sts:GetCallerIdentity",
                "memorydb:CreateSubnetGroup",
                "memorydb:CreateUser",
                "memorydb:CreateAcl",
                "memorydb:CreateCluster",
                "memorydb:TagResource",
                "memorydb:DescribeSubnetGroups",
                "memorydb:DescribeUsers",
                "memorydb:DescribeACLs",
                "memorydb:DescribeClusters",
                "memorydb:ListTags",
                "memorydb:DeleteUser",
                "memorydb:DeleteSubnetGroup",
                "memorydb:DeleteAcl",
                "memorydb:DeleteCluster",
                "memorydb:UpdateAcl",
                "memorydb:UpdateCluster",
                "memorydb:UpdateSubnetGroup",
                "memorydb:UpdateUser"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor4",
            "Effect": "Allow",
            "Action": "secretsmanager:*",
            "Resource": "arn:aws:secretsmanager:*:*:secret:*"
        }
    ]
}

ステップ1b: IAMポリシーのタグ付け

ステップ1aで作成したカスタムIAMポリシーにタグを付けます。

タグ名

AACResource

aac_sa_custom_policy

ステップ1c: IAMポリシーの付与

プライベートデータ用のAWSアカウントとVPCのセットアップページで作成したaac_automation_saサービスアカウントに、AAC_AutoInsights_SA_Policy IAMポリシーを添付します。

ステップ2: サブネットの設定

注記

Designer Cloud は、Machine LearningAuto Insights、およびApp Builderとサブネットの設定を共有します。これらのアプリケーションを複数展開している場合、サブネットの設定は一度のみ必要になります。

プライベートデータ処理環境のDesigner Cloudには、最大5つのサブネットグループが必要です。各グループには3つのサブネットが含まれており、それぞれが別のアベイラビリティゾーンにあります。

  • eks_controlグループ(必須): EKSコントロールプレーンは、このサブネットを使用して入力されたジョブ実行要求を受け入れます。

  • eks_nodeグループ(必須): EKSクラスターは、このサブネットを使用してAlteryxソフトウェアのジョブ(接続、変換、処理、公開など)を実行します。

  • publicグループ(必須): このグループでサービスは実行されませんが、eks_nodeグループがクラスター外への通信にこのサブネットを使用します。

  • privateグループ(必須): このグループは、プライベートデータ処理専用にサービスを実行します。

ステップ2a: VPCでサブネットを作成する

aac-vpc VPCでサブネットを設定します。

サブネットを作成し、以下の例に示すようにタグ付けします。CIDRとサブネットの値は、ネットワークアーキテクチャに合わせて調整できます。

大規模なアドレス空間は、完全にスケールアウトされたクラスターに対応するように設計されています。必要に応じてアドレス空間を小さくすることもできますが、処理負荷が高くなったときにスケーリングに問題が発生する可能性があります。

重要

表に記載されているように、タグ名タグ値を使用してサブネットにタグを付ける必要があります。

CIDR

サブネット名

サブネット

AZ

タグ名

タグ値

注記

10.64.0.0/18

eks_node

10.64.0.0/21

AZa

AACSubnet

eks_node

eks_node

10.64.8.0/21

AZb

AACSubnet

eks_node

eks_node

10.64.16.0/21

AZc

AACSubnet

eks_node

10.64.24.0/21

予備

10.64.32.0/19

予備(後でブルー/グリーンのアップグレード用に設定可能)

10.10.0.0/21

eks_control

10.10.0.0/27

AZa

AACSubnet

eks_control

eks_control

10.10.0.32/27

AZb

AACSubnet

eks_control

eks_control

10.10.0.64/27

AZc

AACSubnet

eks_control

10.10.0.96/27

予備

パブリック

10.10.0.128/27

AZa

AACSubnet

パブリック

パブリック

10.10.0.160/27

AZb

AACSubnet

パブリック

パブリック

10.10.0.192/27

AZc

AACSubnet

パブリック

10.10.0.224/27

予備

プライベート

10.10.1.0/25

AZa

AACSubnet

プライベート

プライベート

10.10.1.128/25

AZb

AACSubnet

プライベート

プライベート

10.10.2.0/25

AZc

AACSubnet

プライベート

10.10.1.128/25

予備

オプション

10.10.4.0/24

AZa

AACSubnet

オプション

オプション

10.10.5.0/24

AZa

AACSubnet

オプション

オプション

10.10.6.0/24

AZa

AACSubnet

オプション

10.10.7.0/24

予備

ステップ2b: サブネットのルートテーブル

サブネット用のルートテーブルを作成します。サブネットのルートテーブルエントリは以下のとおりです。

サブネット名

ルートの宛先

ターゲット

コメント

eks_node

/18 CIDRブロック

/21 CIDRブロック

<s3 prefix id>

0.0.0.0/0

ローカル

ローカル

<vpce endpoint id>

<gateway id>

3つのAZサブネットルーティングテーブルすべてに同じルートを設定します。

eks_control

/18 CIDRブロック

/21 CIDRブロック

<s3 prefix id>

0.0.0.0/0

ローカル

ローカル

<vpce endpoint id>

<gateway id>

3つのAZサブネットルーティングテーブルすべてに同じルートを設定します。

パブリック

/18 CIDRブロック

/21 CIDRブロック

0.0.0.0/0

ローカル

ローカル

<gateway id>

3つのAZサブネットルーティングテーブルすべてに同じルートを設定します。

プライベート

/18 CIDRブロック

/21 CIDRブロック

<s3 prefix id>

0.0.0.0/0

ローカル

ローカル

<vpce endpoint id>

<gateway id>

3つのAZサブネットルーティングテーブルすべてに同じルートを設定します。

0.0.0.0/0はパブリックネットワークに送信される必要があります。

注記

<gateway id>は、お使いのネットワークアーキテクチャに応じて、各AZに作成されるゾーナルNATゲートウェイまたはトランジットゲートウェイのいずれかになります。NATゲートウェイの場合は、パブリックサブネットのAZごとにNATゲートウェイを作成します。

プライベートデータ処理

注意

プライベートデータ処理を設定した後に、Alteryx Oneをプロビジョニングされたパブリッククラウドリソースを変更または削除すると、不整合が生じる可能性があります。これらの不整合により、ジョブの実行中またはプライベートデータ処理設定のプロビジョニング解除時にエラーが発生する可能性があります。

ステップ1: Auto Insightsのデプロイをトリガーする

Auto Insightsのプロビジョニングは、Alteryx Oneの管理者コンソールからトリガーできます。このページを表示するには、ワークスペース内のワークスペース管理者権限が必要です。

  1. Alteryx Oneのランディングページで、ユーザーのイニシャルが入った右上の丸いアイコンを選択します。メニューから[管理者コンソール]を選択します。

  2. 左側のナビゲーションメニューから[プライベートデータ処理]を選択します。

  3. [Auto Insights]と[Designer Cloud]のチェックボックスをオンにして、[保存]を選択します。

重要

プライベートデータプレーンでDesigner Cloudが不要な場合もありますが、Auto Insightsで使用される一部の重要なプラットフォーム要素をデプロイするには、選択しておく必要があります。これは一時的な対処法であり、今後修正される予定です。

[更新]を選択すると、AWSアカウント内のクラスターとリソースのデプロイがトリガーされます。これにより、一連の検証チェックが実行され、AWSアカウントの設定が正しいことが確認されます。

最初の検証チェックが完了すると、プロビジョニングが開始されます。画面上のメッセージボックスは、ステータスの変更に合わせて定期的に更新されます。

注記

プロビジョニングプロセスの完了には、約35-40分かかります。

プロビジョニングが完了すると、作成したリソース(EC2インスタンスやノードグループなど)をAWSコンソールから表示できます。これらは絶対に自分で変更しないでください。手動で変更すると、プライベートデータ処理の機能に問題が発生する可能性があります。

Step 2: Update KMS Key Policy

Once the Private Data Processing is successfully created, a custom role named credential-service-role is established in the account to enable the Kubernetes credential service account to access private data credentials from the key vault. Additionally, update the policy of the KMS Key, which was created in プライベートデータ用のAWSアカウントとVPCのセットアップ - Step 5: Create a Symmetric Key for Secure Vault, to grant the custom role credential-service-role with the necessary permissions.

  1. Go to Key Management Services and select the key created in プライベートデータ用のAWSアカウントとVPCのセットアップ - Step 5: Create a Symmetric Key for Secure Vault.

  2. Select Key Policy and select Edit.

  3. Delete the default permission and update with below mentioned permissions:

    {
      "Version": "2012-10-17",
      "Id": "key-consolepolicy-3",
      "Statement": [
        {
          "Sid": "Enable IAM User Permissions",
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::<account id>:root"
          },
          "Action": "kms:*",
          "Resource": "*"
        },
        {
          "Sid": "Allow use of the key",
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::<account id>:role/credential-service-role"
          },
          "Action": [
            "kms:Encrypt",
            "kms:Decrypt",
            "kms:ReEncrypt*",
            "kms:GenerateDataKey*",
            "kms:DescribeKey"
          ],
          "Resource": "*"
        }
      ]
    }
      

    注記

    <accountId> - AWS account number where private data processing environment handling has been provisioned.

  4. Select Save Changes.