Amazon S3 Access PointsをCloudFormationで利用してみた #reinvent

GAが発表された「S3 Access Points」が、CloudFormationで利用できるという事なので早速試してみました!
2019.12.04

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。AWS事業本部のShirotaです。

GAが発表されたばかりの新サービス「Amazon S3 Access Points」を早速触ってみました。
今日は、その「触ってみた」をお話ししたいと思います。

Amazon S3 Access PointsのGAが発表されましたね

re:Invent2019の基調講演にて、Amazon S3 Access PointsのGAが発表されました!

その時の速報ブログはこちらになります。
簡単なAccess Pointsの作成方法も記載してあり、参考になります。

[速報]アクセスポリシーを持ったS3のアクセスポイント「Amazon S3 Access Points」がGAになりました! #reinvent

公式の発表を見ていると、以下のような記載がありました。

You can use S3 Access Points with AWS CloudFormation.

引用元: Easily Manage Shared Data Sets with Amazon S3 Access Points

どうやら、S3 Access PointsをCloudFormationで利用できる模様です。
気になったので、早速試してみました。

S3 Access Pointsを作成してCloudFormationで利用してみた

まずは、S3 Access Pointsを作成しました。
コンソール上での手順は、上記の速報ブログを参考にしました。

今回は、「s3-test-access-points-from-cfn」というアクセスポイントを作成しました。ネットワークアクセスタイプは「インターネット」で作っています。

▲ S3バケット名とアクセスポイント名が被ってしまったのに気付いた時は、後の祭りだった

また、アクセスポイントを設けたバケットの配下には「test-access-points-vpc.yaml」という、CloudFormationで使うとVPCやサブネットを作れるCloudFormation用のオブジェクトを配置しました。
中身は、こんな感じになっています。

AWSTemplateFormatVersion: "2010-09-09"
Description: VPC Network Template
Parameters:
  NameTagPrefix:
    Type: String
    Default: test
    Description: Prefix of Name tags.
  VPCCIDR:
    Description: First and Second Octet of VPC, For example (10.0/172.16/192.168)
    Type: String
    Default: "10.0"
    AllowedPattern: "^(10\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|172\\.(1[6-9]|2[0-9]|3[0-1])|192\\.168)$"
    ConstraintDescription: xxx.xxx
Mappings:
  StackConfig:
    VPC:
      CIDR: ".0.0/16"
    AppSubnet1:
      CIDR: ".1.0/24"
    AppSubnet2:
      CIDR: ".2.0/24"
    DBSubnet1:
      CIDR: ".3.0/24"
    DBSubnet2:
      CIDR: ".4.0/24"
Resources:
  VPC:
    Type: AWS::EC2::VPC
    Properties:
      CidrBlock: !Sub ["${VPCCIDR}${Param1}",{ Param1: !FindInMap [StackConfig, VPC, CIDR] },]
      EnableDnsSupport: "true"
      EnableDnsHostnames: "true"
      InstanceTenancy: default
      Tags:
        - Key: Name
          Value: !Sub ${NameTagPrefix}-VPC
〜以下略〜

アクセスポイントを作ると、以下のURLでのアクセスが可能になります。

https://s3-test-access-points-from-cfn-XXXXXXXXXXXX.s3-accesspoint.ap-northeast-1.amazonaws.com/test-access-points-vpc.yaml

このURLを、CloudFormationで使ってみます。
今回は、コンソールからCloudFormationのスタック作成をやってみます。

「Amazon S3 URL」の欄に、S3 Access PointsのURLを入力します。

▲ CloudFormationのdesignerは対応してなかった

すると、次のステップに進めました!

▲ 後はいつも通り

ちなみに、「アクセスポイントを使用」を実行していなくても利用できました。

▲ 無事、スタックが作成できリソースも作成された!

使ってみて思った事

元々のS3のURLと同じように使える為、AWS CLIやSDKでの利用が捗るなと感じました。
今回は試さなかったのですが、指定したVPC内でのみの利用もできるようなのでアクセスポイントのURLの利用方法はまだまだいっぱい広がっていそうです。

S3 Access Pointsが気になったら……

既にGAされたサービスなので、いっぱい触りましょう!
また、情報はこれからアップデートが進んでいくと思うので、検証の際には AWS CLIを最新バージョンにする 等の、環境のアップデートを忘れないようにしましょう。

弊社ブログにも、早速役立つブログやレポートが集まってきています。

S3アクセスポイントのうれしい点を自分なりの理解で解説してみる #reinvent

検索結果:Access Points

ぜひ、お時間のある際にこちらも読んで頂けますとより理解が深まるかと思われます。