はじめに
システム構築を行った際は、納品前にシステムテストを行います。AWSを利用したシステムをリリースする際も同じように、基本的な開発工程に従い、ステムテスト後にリリースを行います。また、システムテストを行う項目については、構築の規模にも影響しますが、UT(単体テスト)、IT(結合テスト)、ST(システムテスト)を実施することが多いです。
本記事では、その中でもインスタンスの状態確認や、疎通確認などで実際に使用できるLinuxコマンドをまとめてみました。
Linuxコマンドはどのような場所で使うの?
では、AWSを利用した時、Linuxを利用したコマンド操作は、具体的にどういった所で使うでしょうか?AWS上では、主にAWS CloudShellやEC2(LinuxOS)で良くLinuxコマンドが利用されます。
AWSを利用したシステムテストにおいては、AWS上にEC2(メンテナンスサーバ、踏み台サーバ)を構築し、構築したEC2(メンテナンスサーバ、踏み台サーバ)から各AWSインスタンスに対して、状態確認や疎通確認を行うケースが多くみられます。

例えば、以下の画像の通り、EC2(メンテナンスサーバ)にログインし、構築されている各AWSインスタンスに対して、疎通確認を実施する事ができます。
上記を踏まえ、本記事では、システムテストを実施する際に、主にEC2メンテナンスサーバ(Linux)で使用するLinuxコマンドをまとめてみました。
EC2メンテナンスサーバに関する補足
補足として、EC2(メンテナンスサーバ)から各インスタンスに接続する際は、EC2にアタッチするサービスロールに対して、接続先となるAWSインスタンスのアクセス許可を設定する事を実施しておきましょう。

また、EC2(メンテナンスサーバ)と接続先となるAWSインスタンスが正常に疎通できるよう、Security Groupに対するアクセス許可も実施しておきます。
EC2メンテナンスサーバで使用するLinuxコマンド
ここからが本題です。システムテストにおいて、EC2(メンテナンスサーバ)で使用するLinuxコマンドとは、具体的にどのようなコマンドがあるでしょうか?
本記事では、大きく以下の項目に分類して、それぞれのLinuxコマンドを確認していきます。
- 接続先の疎通確認
- リッスンポートの確認
- 負荷状態の確認
- 名前解決の確認
- EC2メンテナンスサーバの状態確認
接続先の疎通確認
curlコマンド
curlコマンドは、通信プロトコルを利用して、データ間の送受信を行うコマンドです。例えば、接続先のURLに対して、HTTP通信を行い、WEBコンテンツの内容を受信する事ができます。
curlコマンドは、オプションを指定する事により、レスポンスに対する表示方法や、表示する情報を指定する事ができます。ITmediaさんのこちらのサイトにcurlのオプションについてわかりやすく解説されてます。
EC2からパブリックアクセスの疎通確認
$
curl http://checkip.amazonaws.com/
EC2がインターネットに対して、接続できるか確認する際に使用できるコマンドです。
上記コマンドは、EC2がPublicSubnetに存在する場合、EC2のパブリックIPアドレスを返します。また、EC2がPrivateSubnetに存在する場合は、EC2はインターネットに接続できない為、タイムアウトにより、レスポンスされません。
VPCエンドポイントの疎通確認
$ aws <AWSリソース名> --endpoint-url https://<VPCエンドポイントURL>
VPCエンドポイントを経由して、AWSリソースにアクセスできることを確認します。
リッスンポートの確認
ssコマンド
リッスンポート(待ち受けポート)とは、サーバがクライアントからの接続を待っている状態のポートのことです。OSログイン後、ssコマンドを実行することで、OSがリッスンしているポートを確認することができます。
全てのリッスンポートを表示するには、オプション「-atnu」を指定します。また、TCPのリッスンポートのみ結果を表示する場合は、オプション「-atn」を指定します。(UTPのリッスンポートのみ表示する場合は、オプション「-aun」を指定します)
EC2のリッスンポートの確認
$ ss -atn
名前解決の確認
digコマンド
digコマンドは、ネイムサーバーに対して問い合わせを行い、指定したドメイン情報を確認するときに利用できるコマンドです。
インスタンスがRoute53にて名前解決されているか確認する
$ dig <URL>
応答結果から、名前解決されたIPアドレスやエンドポイントのURLを確認する事ができます。
nslookupコマンド
digコマンドと同様にネイムサーバーに問い合わせを行い、レスポンス結果を確認する際に使用されるコマンドです。
$ nslookup <URL>
nslookupとdigコマンドは、両者ともにURLを指定して名前解決して接続先インスタンスに対して接続できるか確認するコマンドです。
しかし、以下の点が異なります。
- digコマンドは、ネイムサーバーに問い合わせた内容を整形せずにレスポンスする。
- nslookupコマンドは、ユーザーが見やすいよう、レスポンス内容を整形する。
両者の違いは、上記の通りとなりますが、レスポンスの正確性を重視する際は、digコマンドを選択する方が良いです。
その為、システムテストを実施する際は、レスポンスの正確性を測定する必要がある為、difコマンドを優先して利用することが良いと考えます。
負荷テストの確認
watchコマンド
watchコマンドは、指定したコマンドを指定した間隔で実行できるコマンドです。
$ watch -n 1 curl <AWSリソース名>
上記は、AWSリソースに対して接続確認を行うcurlコマンドを1秒間隔で実行します。
メンテナンスサーバの状態確認
dfコマンド
dfコマンドは、コマンド実行環境のディスク空き容量を確認するLinuxコマンドです。
$ df /
例えば、EC2インスタンスにログイン後、上記のコマンドを実行する事で、EBSのディスク利用量や、ディスクの空き容量を確認する事ができます。
コメント