スポンサーリンク
AWSNW関連ツール

AWSリソースへの疎通確認コマンドメモ

AWS

概要

AWSリソースデプロイ後、疎通確認でよく利用するテスト用のコマンドを記載します。
※とりあえず覚えている範囲で。また追記します。

コマンド一覧

クライアントPC→AWSリソース

まず前提として、作成したコマンドを配布したり、自動テストに使ったり、その辺の理由が無ければ素直にPostmanを使った方が分かり易いと思います。

<curlを利用した接続テスト>

・よく使うフォーマット
curl --insecure -vv --header '<request header>'  -X POST <FQDN>
・レスポンスヘッダのみ確認したい場合
curl --insecure --head --header '<request header>'  -X POST <FQDN>

↓コマンドの例

curl --insecure --head --header 'User-Agent:test'  -X POST https://continue-cloud.net/
curl -k -I -H 'User-Agent:test'  -X POST https://continue-cloud.net/
※レスポンスコード:200」が返却されたらOK

<curlオプション解説>

  • –insecure:SSL証明書のエラーを無視するオプション
    →https接続時に自己署名証明書(オレオレ証明書)を許容する
    →「-k」と記述しても可
  • -v,-vv,-vvv:レスポンスデータの詳細を表示
    →リクエスト・レスポンスヘッダーの詳細を表示
    →vが多い程詳細に表示
  • –head:レスポンスヘッダのみ表示
    →「-I」と記述しても可
  • –include:レスポンスボディに加え、レスポンスヘッダを表示
    →「-i」と記述しても可
  • –header:リクエストヘッダを指定
    →「-H」と記述しても可
  • -X:リクエストメソッドを指定
    →GET、POST、PUT、DELETEなど指定可能(指定しない場合はGET)

CloudShell、テスト用EC2→AWSリソース

アクセス先の環境パターンによってアクセス方法を使い分けます。

  • IAMユーザ権限でアクセス可能なリソースはCloudShell
    ※例:SQS、S3等
  • VPC、プライベートサブネット内のリソース等は、アクセス可能な環境へ作成したテスト用EC2
    ※例:RDS、ElastiCache等

テスト用EC2へTelnetをインストールしておく。
※下記はUbuntuを利用している場合。

sudo su -
sudo yum install telnet
RDS

<データベースへの接続テスト>

curl -v telnet://<RDSのエンドポイント>:<port>
※Aurora(mysql)のデフォルト<port>は3306

<SQL>

テスト用EC2からRDSへSQLを用いてアクセスする場合は、下記のようにクライアントツールを導入して実行する。
※下記はAurora(mysql)向けのクライアントツール導入例。

sudo su -
sudo yum remove mariadb-libs
sudo yum localinstall -y http://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
※[https://dev.mysql.com/downloads/repo/yum/]から現バージョンを確認(↑はel7-7)
sudo yum install -y mysql-community-server
mysql --version
ElastiCache

<ノードへの接続テスト>

curl -v telnet://<ElastiCacheのエンドポイント>:<port>
※ElastiCacheのデフォルト<port>は6379
ALB

curlコマンド参照。

<ALBへの接続テスト>

・よく使うフォーマット
curl --insecure -vv -X POST <ALBのエンドポイント>/<パス>

ALBへの疎通確認までを実施したいケースでは、一時的にALBのリスナールールへ/testパスを追加し、固定のレスポンスを返却するよう設定する。
テスト終了後/testパスを削除する。

curl --insecure -vv -X POST <ALBのエンドポイント>/test
※設定した固定レスポンスが返却されたらOK
S3

<S3バケットへの接続テスト>

・S3バケットのリストを表示
aws s3 ls
・指定S3バケット内のファイルリストを表示
aws s3 ls s3://<S3バケット名>
SQS

<SQSへの接続テスト>

aws sqs get-queue-attributes \
--queue-url <SQS_QUEUE_URL> \
--attribute-names <SQS_QUEUE_ATTRIBUTE_NAME> \
--query "Attributes.<SQS_QUEUE_ATTRIBUTE_NAME>" \
--output text

↓コマンドの例

aws sqs get-queue-attributes \
--queue-url https://sqs.ap-northeast-1.amazonaws.com/xxxx/xxxx.fifo \
--attribute-names VisibilityTimeout \
--query "Attributes.VisibilityTimeout" \
--output text
※キューの属性を取得(VisibilityTimeoutの値が設定した値になっていることを確認)

AWSリソース→外部ネットワーク

curlコマンド参照。

<インターネットへの接続テスト>

・よく使うコマンド
curl -k -I https://www.google.co.jp/
※「レスポンスコード:200」が返却されたらOK

その他

DNSへ紐づけられたGlobalAcceleratorの静的IP確認用コマンド。

nslookup <DNS名>
※静的IPが2つ返却されます

コメント

タイトルとURLをコピーしました