BioErrorLog Tech Blog

試行錯誤の記録

CloudShellをVPCで起動する | AWS

AWS CloudShellのVPC起動をやってみます。

はじめに

先日 (2024/06/26)、CloudShellがVPC内で起動できるようになる機能がGAされました。

AWS CloudShell now supports Amazon Virtual Private Cloud (VPC) - AWS

地味に見えてなかなか嬉しいアップデートですね。

今回はこのCloudShellのVPC起動を試してみます。

CloudShellをVPCで起動する

やってみる

まずはポチポチ試してみます。

1. CloudShellのActionsからCreate VPC environment (max2)を選択する


2. VPC起動設定を入力して、作成する

  • 名前
  • 起動するVPC
  • Subnet
  • Security group

Createボタンをクリックすると、CloudShellのVPC環境が作成されます

作成中...


3. CloudShellのVPC起動完了

これでVPC起動完了です。

ローカルIP172.31.36.170が割り振られていることがわかります。
(今回起動したVPCのCIDRは172.31.0.0/16)

制約

ドキュメントベースで、気になった制約や条件をまとめます。

Using AWS CloudShell in Amazon VPC - AWS CloudShell

  • 1つのIAM principalごとに作成できるCloudShell VPC環境は最大2つ
  • アタッチできるsecurity groupは最大5つ
  • アップロード/ダウンロード機能は利用不可
  • 永続ストレージは利用不可。セッションごとにデータは削除される
  • パブリックIPは付与されない
    • インターネットにアクセスしたいならNATなどを立てること
  • 暗黙的に指定のVPCエンドポイントが作成される
    • AWS管理のリソースとして作成される。ユーザー側からは管理できない(ユーザーには見えない)
    • 対象のVPCエンドポイントは上記ドキュメント参照 (結構多い)
  • CloudShellのVPC環境を利用するためには下記のIAM権限が必要
    • ec2:DescribeVpcs
    • ec2:DescribeSubnets
    • ec2:DescribeSecurityGroups
    • ec2:DescribeDhcpOptions
    • ec2:DescribeNetworkInterfaces
    • ec2:CreateTags
    • ec2:CreateNetworkInterface
    • ec2:CreateNetworkInterfacePermission
    • ec2:DeleteNetworkInterface
      • 厳密にはec2:DeleteNetworkInterfaceは必須ではないが、これがないとリソース削除時にENIが削除されない

ちょいちょい機能が制限されてますね。

なお、CloudShellのVPC起動がサポートされているリージョンは下記に記載があります。 執筆時点で、Tokyoリージョンを含む主要リージョンではサポートされています。

Supported Regions for AWS CloudShell VPC - AWS CloudShell

執筆時点でサポートされているリージョン一覧

おわりに

CloudShellの新機能であるVPC起動を試してみました。

以前まさにCloudShellをVPC起動できたらなーと思ったことがあり、個人的には痒い所に手が届く嬉しいアップデートです。

以上、どなたかの参考になれば幸いです。

[関連記事]

www.bioerrorlog.work

www.bioerrorlog.work

www.bioerrorlog.work

参考

AWS CloudShell now supports Amazon Virtual Private Cloud (VPC) - AWS

Using AWS CloudShell in Amazon VPC - AWS CloudShell

Supported Regions for AWS CloudShell VPC - AWS CloudShell