databricks on AWS deploy手順~その2~

はじめに

databricks on AWSをdeployするまでの手順をご紹介したいと思います。

databricks on AWSのdeploy完了までには

databricks側とAWS側でいくつかの登録&設定作業が必要となっているため以下3章に分けてご説明いたします。

  • その1 databricksアカウントの作成
  • その2 AWSアカウントとの連携 ← 今回はここ
  • その3 databricks用S3バケットとの連携

本題

AWSアカウントとの連携方法は

  • クロスアカウントロールを使用する方法
  • アクセスキーを使用する方法

の2種類がありますが、databricks公式サイトではクロスアカウントロールを使用する方法を強く推奨しているので、今回はそちらの方法で進めて行こうと思います。

ここからはAWSアカウントとdatabricksアカウントを使用するので、

両方ログインした状態のページのご用意をお願いいたします。

➀databricksアカウント設定

databricksコンソール画面から、サイドバー内「AWS Account」を選択

「Deploy to AWS using Cross Account Role」にチェック

AWS Regionは「ap-northeast-1:Asia Pacific(Tokyo) Region」を選択

External IDはIAMロール作成時に使用するので、コピーしておいてください

ここまで終えたら一旦AWS側の設定に移ります。

image.png

➁クロスアカウントロールとアクセスポリシーの作成

AWSコンソール画面からIAMサービスのページへ移動します。

(検索欄でIAMと入れれば移動できます。)

(検索欄でIAMと入れれば移動できます。)

画面左部のサイドバーから「ロール」を選択。

image.png

「ロールの作成」をクリック。

「別のAWSアカウント」を選択。

「このロールを使用できるアカウントを指定する」の必要事項欄を埋めていきます。

アカウントID : 414351767826

オプション : 外部IDが必要にチェック

外部ID : 本題➀でコピーしたExternal IDをペースト

アカウントID : 414351767826

オプション : 外部IDが必要にチェック

外部ID : 本題➀でコピーしたExternal IDをペースト

3つの記入が済んだら「次のステップ:アクセス権限」をクリック

image.png
何もせず「次のステップ:タグ」をクリック

何もせず「次のステップ:タグ」をクリック

image.png
何もせず「次のステップ:確認」をクリック

何もせず「次のステップ:確認」をクリック

image.png
ロール名を記入して「ロールの作成」をクリック

ロール名を記入して「ロールの作成」をクリック

image.png
IAMの画面に戻り、サイドバーから「ロール」を選択。ロール一覧内から作成したロールを選択

IAMの画面に戻り、サイドバーから「ロール」を選択。

ロール一覧内から作成したロールを選択

image.png
画面右にある「インラインポリシーの追加」をクリック

画面右にある「インラインポリシーの追加」をクリック

image.png
JSONのタブを選択し、以下コードをコピペ

「ポリシーの確認」をクリック

1{2  "Version": "2012-10-17",3  "Statement": [4    {5      "Sid": "Stmt1403287045000",6      "Effect": "Allow",7      "Action": [8          "ec2:AssociateDhcpOptions",9          "ec2:AssociateIamInstanceProfile",10          "ec2:AssociateRouteTable",11          "ec2:AttachInternetGateway",12          "ec2:AttachVolume",13          "ec2:AuthorizeSecurityGroupEgress",14          "ec2:AuthorizeSecurityGroupIngress",15          "ec2:CancelSpotInstanceRequests",16          "ec2:CreateDhcpOptions",17          "ec2:CreateInternetGateway",18          "ec2:CreateKeyPair",19          "ec2:CreatePlacementGroup",20          "ec2:CreateRoute",21          "ec2:CreateSecurityGroup",22          "ec2:CreateSubnet",23          "ec2:CreateTags",24          "ec2:CreateVolume",25          "ec2:CreateVpc",26          "ec2:CreateVpcPeeringConnection",27          "ec2:DeleteInternetGateway",28          "ec2:DeleteKeyPair",29          "ec2:DeletePlacementGroup",30          "ec2:DeleteRoute",31          "ec2:DeleteRouteTable",32          "ec2:DeleteSecurityGroup",33          "ec2:DeleteSubnet",34          "ec2:DeleteTags",35          "ec2:DeleteVolume",36          "ec2:DeleteVpc",37          "ec2:DescribeAvailabilityZones",38          "ec2:DescribeIamInstanceProfileAssociations",39          "ec2:DescribeInstanceStatus",40          "ec2:DescribeInstances",41          "ec2:DescribePlacementGroups",42          "ec2:DescribePrefixLists",43          "ec2:DescribeReservedInstancesOfferings",44          "ec2:DescribeRouteTables",45          "ec2:DescribeSecurityGroups",46          "ec2:DescribeSpotInstanceRequests",47          "ec2:DescribeSpotPriceHistory",48          "ec2:DescribeSubnets",49          "ec2:DescribeVolumes",50          "ec2:DescribeVpcs",51          "ec2:DetachInternetGateway",52          "ec2:DisassociateIamInstanceProfile",53          "ec2:ModifyVpcAttribute",54          "ec2:ReplaceIamInstanceProfileAssociation",55          "ec2:RequestSpotInstances",56          "ec2:RevokeSecurityGroupEgress",57          "ec2:RevokeSecurityGroupIngress",58          "ec2:RunInstances",59          "ec2:TerminateInstances"60      ],61      "Resource": [62        "*"63      ]64    },65    {66      "Effect": "Allow",67      "Action": [68        "iam:CreateServiceLinkedRole",69        "iam:PutRolePolicy"70      ],71      "Resource": "arn:aws:iam::*:role/aws-service-role/spot.amazonaws.com/AWSServiceRoleForEC2Spot",72      "Condition": {73        "StringLike": {74          "iam:AWSServiceName": "spot.amazonaws.com"75        }76      }77    }78  ]79}
image.png
ポリシー名を記入して、「ポリシーの作成」をクリック

ポリシー名を記入して、「ポリシーの作成」をクリック

image.png
再度ロールのページに戻って、「ロールARN」をコピー

再度ロールのページに戻って、「ロールARN」をコピー

image.png

➂databricksアカウント設定残り

本題➀で使用していたdatabricksの画面に戻ります。

本題➁でコピーしておいたロールARNをペーストして「Next Step」をクリック

image.png

自動的にS3設定画面に移動したら、その2の作業は無事完了です。

image.png

おわりに

今回その2ではAWSアカウントとの連携作業を行いました。

次回その3ではいよいよ最後のS3との連携作業を行います。

引き続き頑張りましょう!

お疲れ様でした。

この記事を書いた人

aws-recipe-user