はじめに
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側の設定に移ります。
➁クロスアカウントロールとアクセスポリシーの作成
AWSコンソール画面からIAMサービスのページへ移動します。
(検索欄でIAMと入れれば移動できます。)
(検索欄でIAMと入れれば移動できます。)
画面左部のサイドバーから「ロール」を選択。
「ロールの作成」をクリック。
「別のAWSアカウント」を選択。
「このロールを使用できるアカウントを指定する」の必要事項欄を埋めていきます。
アカウントID : 414351767826
オプション : 外部IDが必要にチェック
外部ID : 本題➀でコピーしたExternal IDをペースト
アカウントID : 414351767826
オプション : 外部IDが必要にチェック
外部ID : 本題➀でコピーしたExternal IDをペースト
3つの記入が済んだら「次のステップ:アクセス権限」をクリック
何もせず「次のステップ:タグ」をクリック
何もせず「次のステップ:確認」をクリック
ロール名を記入して「ロールの作成」をクリック
IAMの画面に戻り、サイドバーから「ロール」を選択。
ロール一覧内から作成したロールを選択
画面右にある「インラインポリシーの追加」をクリック
「ポリシーの確認」をクリック
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}
ポリシー名を記入して、「ポリシーの作成」をクリック
再度ロールのページに戻って、「ロールARN」をコピー
➂databricksアカウント設定残り
本題➀で使用していたdatabricksの画面に戻ります。
本題➁でコピーしておいたロールARNをペーストして「Next Step」をクリック
自動的にS3設定画面に移動したら、その2の作業は無事完了です。
おわりに
今回その2ではAWSアカウントとの連携作業を行いました。
次回その3ではいよいよ最後のS3との連携作業を行います。
引き続き頑張りましょう!
お疲れ様でした。