概要
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つ返却されます
コメント