[アップデート]Step FunctionsでAWS PrivateLinkがサポートされました

Step Functionsにアップデートがあり、PrivateLinkがサポートされました!これにより、AWSサービスからパブリックインターネットを経由せずにAWS Step Functionsにアクセスできるようになりました。AWS Step Functionsが利用可能なリージョンでサポートされているので、早速試してみたいと思います。
2019.12.25

Step Functionsにアップデートがあり、PrivateLinkがサポートされました!

これにより、AWSサービスからパブリックインターネットを経由せずにAWS Step Functionsにアクセスできるようになりました。AWS Step Functionsが利用可能なリージョンでサポートされているので、早速試してみたいと思います。

やってみた

事前確認

VPCエンドポイント経由での確認の前に、インターネットへの経路をもたないプライベートサブネット上のEC2から、ステートマシンを実行してみたいと思います。 ステートマシン実行のインプット等は指定せず以下のコマンドを実行しました。

[ec2-user@ip-172-31-89-176 ~]$ aws stepfunctions start-execution \
>   --state-machine-arn arn:aws:states:ap-northeast-1:XXXXXXXXXXXX:stateMachine:HelloWorldStateMachine \
>   --region ap-northeast-1

Connect timeout on endpoint URL: "https://states.ap-northeast-1.amazonaws.com/"

Step Functionsのエンドポイントにリクエストが届かず、タイムアウトしました。次は、VPCエンドポイントを作成して実施してみたいと思います。

VPCエンドポイント作成

パブリックインターネットを経由せずにStep Functionsを実行するには、インターフェイスVPCエンドポイントを定義する必要があります。 エンドポイントのサービス名は、東京リージョンの場合com.amazonaws.ap-northeast-1.statesです。他の設定は従来のエンドポイントと同様、作成するVPC/サブネット、SecurityGroupを指定します。

エンドポイント経由のアクセス

まずは、作成したStep Functionsのエンドポイントに名前解決を行い、プライベートIPが返ってくることを確認しました。

[ec2-user@ip-172-31-89-176 ~]$ dig states.ap-northeast-1.amazonaws.com

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.amzn2.0.2 <<>> states.ap-northeast-1.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22514
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;states.ap-northeast-1.amazonaws.com. IN	A

;; ANSWER SECTION:
states.ap-northeast-1.amazonaws.com. 60	IN A	172.31.92.66

;; Query time: 4 msec
;; SERVER: 172.31.0.2#53(172.31.0.2)
;; WHEN: Wed Dec 25 02:07:02 UTC 2019
;; MSG SIZE  rcvd: 80

先程のEC2(プライベートサブネット上)から、Step Functionsにアクセスしてみます。

$ aws stepfunctions start-execution \
>   --state-machine-arn arn:aws:states:ap-northeast-1:XXXXXXXXXXXX:stateMachine:HelloWorldStateMachine \
>   --region ap-northeast-1
{
    "startDate": 1577239777.163,
    "executionArn": "arn:aws:states:ap-northeast-1:XXXXXXXXXXXX:execution:HelloWorldStateMachine:e864df03-12ce-4918-956e-7fc56d2e7317"
}

実行Arnが返され正しく実行されました。コンソールからもステートマシンの実行が確認できました。

さいごに

Step FunctionsがVPCエンドポイント経由で利用可能になりました。 インターネットゲートウェイや、NAT ゲートウェイ不要で、Step Functionsにアクセスできるようになったので、ネットワークアーキテクチャが簡素化されるのではないでしょうか。

参考