5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

雑に疎通確認だけしたい…せや!CloudShell使ったろ!

Last updated at Posted at 2025-04-28

今回はAWS CloudShellを使った小ネタを書きます。

こんなとき、ありませんか?

  • 対向システムがセキュリティグループ(ファイアウォール)やWAFなどで送信元IPアクセス制限している
    スクリーンショット 2025-04-22 22.16.50.png

こんな時は対向のシステム担当者に自システムで使うIPアドレスを許可してもらいます。
スクリーンショット 2025-04-22 22.18.01.png

ここで許可してもらうIPアドレスは固定化する必要があるので、NAT GatewayとElastic IPを使って固定化をする方法があります。こんな感じの構成であれば、自システムはプライベートサブネットに置きつつ、固定IPアドレスで通信することができます。

スクリーンショット 2025-04-22 22.21.02.png

この時、自システムが常設のEC2上で構築されたものであればEC2 Instance ConnectSession Managerを利用することでいつでも接続できる状態にすることもあると思います。

しかし、CodeBuildでビルド中だけEC2が立ち上がる環境やVPC Lambdaを使っているなど、常設ではないEC2やサービスを取り扱う際、対向システムとの疎通確認はどのようにするのが良いでしょうか。もちろん、実際に動かして確かめるのも手ですが、万が一うまくいかなかった際の切り分けの手間が出てしまいます。可能な限り対向システムで接続が許可された後に確認したいところです。

とはいえ、疎通確認のためだけにEC2やらVPCエンドポイントを作成するのは少々面倒です。
そこで登場するのがAWS CloudShellです。

CloudShellとは?

AWSマネジメントコンソールから起動できるブラウザベースのシェルです。コンソール上からは画面上部または左下のアイコンから起動できます。

スクリーンショット 2025-04-23 22.51.55.png

使ったことがなくてもデフォルトVPCがあればこのアイコンを押すだけで起動されます。
ちなみに現在(2025/4/25)はAmazon Linux 2023が入ってます。

~ $ cat /etc/system-release
Amazon Linux release 2023.6.20250218 (Amazon Linux)

というわけでやってみる

こんな感じの構成です。(EC2は既に削除済み)
スクリーンショット 2025-04-23 23.00.56.png

まずは右側のVPCを作成します。作成時にNAT Gatewayも同時に作っておきます。
スクリーンショット 2025-04-15 17.23.13.png

同じように対向システムを模擬したVPCとEC2を作成します。このEC2はパブリックサブネットに配置し、パブリックIPアドレスを付与しておきます。また、この時点ではEC2のセキュリティグループは何も設定していません。
スクリーンショット 2025-04-23 23.04.22.png

CloudShellを起動

マネジメントコンソールの検索窓から「Cloudshell」を検索して選択します。
スクリーンショット 2025-04-23 23.07.48.png

画面上の「+」もしくは右上のアクションから「Create VPC environment」を選択します。
すると、CloudShellの作成画面が出ますので任意の名前、NATゲートウェイがあるVPC、プライベートサブネット、デフォルトセキュリティグループを選択します。
スクリーンショット 2025-04-23 23.06.40.png

これでCloudShellの準備は完了です。

動作確認

まずは対向システムで何も許可していない状態でpingコマンドを実行してみます。何も許可していないので当然ながら疎通はできません。
スクリーンショット 2025-04-15 17.44.02.png

次に対向システムのセキュリティグループを変更し、NAT GatewayについているIPアドレスからのICMP通信を許可します。
スクリーンショット 2025-04-15 17.47.47.png

今度は疎通確認ができました!
スクリーンショット 2025-04-15 17.49.13.png

対向システムがWebサーバであればcurlで確認可能

対向システム側がWebサーバで、80番もしくは443番ポートを開けていればcurlコマンドでも確認が可能です。
スクリーンショット 2025-04-15 18.03.43.png

まとめ

今回はCloudShellを使ったお手軽動作確認をやってみました。あまり注目されないCloudShellですが、以前の記事でも紹介したように地味に嬉しいアップデートもあります。疎通確認をするときはCloudShellのことを思い出して活用してみてください。

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?