

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# を使用して Braket ノートブックインスタンスを作成する CloudFormation
<a name="braket-cloudformation"></a>

**ヒント**  
**量子コンピューティングの基礎について説明します AWS。**[Amazon Braket Digital Learning Plan](https://skillbuilder.aws/learning-plan/EH35DWGU3R/amazon-braket--knowledge-badge-readiness-path-includes-labs) に登録し、一連のラーニングコースとデジタル評価を完了して自身にデジタルバッジを獲得してください。

 CloudFormation を使用して、Amazon Braket ノートブックインスタンスを管理できます。Braket ノートブックインスタンスは Amazon SageMaker AI で構築されています。CloudFormation では、目的の設定が記述されているテンプレートファイルを使用して、ノートブックインスタンスをプロビジョニングすることができます。テンプレートファイルは JSON または YAML 形式で記述されています。インスタンスは、順序正しい繰り返し可能な方法で作成、更新、削除できます。この方法は、 AWS アカウントで複数の Braket ノートブックインスタンスを管理する場合に有益です。

Braket ノートブックの CloudFormation テンプレートを作成したら、 CloudFormation を使用してリソースをデプロイします。詳細については、 *CloudFormation ユーザーガイド*[の「 CloudFormation コンソールでのスタックの作成](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html)」を参照してください。

CloudFormation を使用して Braket ノートブックインスタンスを作成するには、次の 3 つのステップを実行します。

1. SageMaker AI ライフサイクル設定スクリプトを作成する。

1. SageMaker AI が引き受ける AWS Identity and Access Management (IAM) ロールを作成します。

1. プレフィックス **amazon-braket-** を持つ SageMaker AI ノートブックインスタンスを作成する

ライフサイクル設定は、作成するすべての Braket ノートブック用に再利用できます。また、IAM ロールは、同じ実行許可を割り当てる Braket ノートブック用に再利用することができます。

**Topics**
+ [ステップ 1: SageMaker AI ライフサイクル設定スクリプトを作成する](#braket-create-cloudformation-template-step-1)
+ [ステップ 2: Amazon SageMaker AI が引き受ける IAM ロールを作成する](#braket-create-cloudformation-template-step-2)
+ [ステップ 3: プレフィックス `amazon-braket-` を持つ SageMaker AI ノートブックインスタンスを作成する](#braket-create-cloudformation-template-step-3)

## ステップ 1: SageMaker AI ライフサイクル設定スクリプトを作成する
<a name="braket-create-cloudformation-template-step-1"></a>

次のテンプレートを使用して、[SageMaker AI ライフサイクル設定スクリプト](https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html)を作成します。このスクリプトは、SageMaker AI ノートブックインスタンスを Braket 用にカスタマイズしています。ライフサイクル CloudFormation リソースの設定オプションについては、「**CloudFormation ユーザーガイド」の「[AWS::SageMaker::NotebookInstanceLifecycleConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-notebookinstancelifecycleconfig.html)」を参照してください。

```
BraketNotebookInstanceLifecycleConfig:
    Type: "AWS::SageMaker::NotebookInstanceLifecycleConfig"
    Properties:
      NotebookInstanceLifecycleConfigName: BraketLifecycleConfig-${AWS::StackName}
      OnStart:
      - Content:
          Fn::Base64: |
            #!/usr/bin/env bash
            sudo -u ec2-user -i ≪EOS
            curl -o braket-notebook-lcc.zip https://d3ded4lzb1lnme.cloudfront.net/notebook/braket-notebook-lcc.zip
            unzip braket-notebook-lcc.zip
            ./install.sh
            EOS
            
            exit 0
```

## ステップ 2: Amazon SageMaker AI が引き受ける IAM ロールを作成する
<a name="braket-create-cloudformation-template-step-2"></a>

Braket ノートブックインスタンスを使用すると、オペレーションがユーザーに代わって SageMaker AI により実行されます。例えば、サポートされているデバイスで回路を使用して Braket ノートブックを実行するとします。ノートブックインスタンス内で、ユーザーの代わりに SageMaker AI により、Braket に対するオペレーションが実行されます。SageMaker AI がユーザーに代わって実行できる詳細なオペレーションは、ノートブック実行ロールによって定義されています。詳細については、「**Amazon SageMaker AIデベロッパーガイド」の「[SageMaker AI ロール](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html)」を参照してください。

必要なアクセス許可を持つ Braket ノートブック実行ロールを作成するために、下記の例を使用します。ポリシーは必要に応じて変更できます。

**注記**  
ロールに、`s3:ListBucket` というプレフィックスが付いた Amazon S3 バケットに対する `braketnotebookcdk-"` および `s3:GetObject` オペレーションのアクセス許可があることを確認してください。これらのアクセス許可は、ライフサイクル設定スクリプトが Braket ノートブックのインストールスクリプトをコピーするために必要です。

```
ExecutionRole: 
    Type: "AWS::IAM::Role"
    Properties: 
      RoleName: !Sub AmazonBraketNotebookRole-${AWS::StackName}
      AssumeRolePolicyDocument: 
        Version: "2012-10-17"
        Statement: 
        - 
          Effect: "Allow"
          Principal: 
            Service: 
              - "sagemaker.amazonaws.com"
          Action: 
          - "sts:AssumeRole"
      Path: "/service-role/"
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/AmazonBraketFullAccess
      Policies: 
        - 
          PolicyName: "AmazonBraketNotebookPolicy"
          PolicyDocument: 
            Version: "2012-10-17"
            Statement: 
              - Effect: Allow
                Action:
                  - s3:GetObject
                  - s3:PutObject
                  - s3:ListBucket
                Resource:
                  - arn:aws:s3:::amazon-braket-*
                  - arn:aws:s3:::braketnotebookcdk-*
              - Effect: "Allow"
                Action: 
                  - "logs:CreateLogStream"
                  - "logs:PutLogEvents"
                  - "logs:CreateLogGroup"
                  - "logs:DescribeLogStreams"
                Resource:
                  - !Sub "arn:aws:logs:*:${AWS::AccountId}:log-group:/aws/sagemaker/*"
              - Effect: "Allow"
                Action: 
                  - braket:*
                Resource: "*"
```

## ステップ 3: プレフィックス `amazon-braket-` を持つ SageMaker AI ノートブックインスタンスを作成する
<a name="braket-create-cloudformation-template-step-3"></a>

SageMaker AI ノートブックインスタンスを作成するには、SageMaker AI ライフサイクルスクリプトと、ステップ 1 とステップ 2 で作成した IAM ロールを使用します。このノートブックインスタンスは Braket 用にカスタマイズされており、Amazon Braket コンソールを使用してアクセスできます。この CloudFormation リソースの設定オプションの詳細については、「**CloudFormation ユーザーガイド」の「[AWS::SageMaker::NotebookInstance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-notebookinstance.html)」を参照してください。

```
BraketNotebook:
    Type: AWS::SageMaker::NotebookInstance
    Properties: 
      InstanceType: ml.t3.medium
      NotebookInstanceName: !Sub amazon-braket-notebook-${AWS::StackName}
      RoleArn: !GetAtt ExecutionRole.Arn
      VolumeSizeInGB: 30
      LifecycleConfigName: !GetAtt BraketNotebookInstanceLifecycleConfig.NotebookInstanceLifecycleConfigName
```