カテゴリ: AWS CLI 更新日: 2026/04/09

【AWS】CLIでCloudWatch Logsを取得・フィルタする方法を徹底解説!初心者向けAWS CLIログ確認ガイド

506
【AWS】CLIでCloudWatch Logsを取得・フィルタする方法

先生と生徒の会話形式で理解しよう

生徒

「AWSのCloudWatch Logsって、AWS CLIから確認できますか?コンソールを開かずにログを取得したいです。」

先生

「はい、できます。AWS CLIを使えば、CloudWatch Logsのロググループ一覧取得やログイベントの取得、フィルタ検索までコマンド一つで実行できます。」

生徒

「エラーだけ抽出したり、特定の文字列で検索することもできますか?」

先生

「できます。filter-log-eventsコマンドを使えば、CloudWatch Logsをキーワードでフィルタできます。これから順番に解説していきましょう。」

1. CloudWatch Logsとは何か

1. CloudWatch Logsとは何か
1. CloudWatch Logsとは何か

Amazon CloudWatch Logsは、AWSの各種サービスやEC2、Lambdaなどのログを収集し、一元管理できるログ管理サービスです。アプリケーションログ、システムログ、エラーログを保存し、トラブルシュートや監視に活用できます。

AWS CLIを使えば、ブラウザのAWSマネジメントコンソールを開かなくても、ターミナルからCloudWatch Logsを取得できます。特にLinux環境やサーバー運用現場では、CLIでのログ確認は非常に重要です。

本記事では、AWS CLIでCloudWatch Logsを取得する方法、ロググループの確認方法、ログストリームの取得方法、ログイベントのフィルタ方法まで初心者向けに丁寧に解説します。

2. AWS CLIの事前準備と確認

2. AWS CLIの事前準備と確認
2. AWS CLIの事前準備と確認

まずはAWS CLIがインストールされているか確認します。以下のコマンドでバージョンを確認できます。


aws --version
aws-cli/2.15.0 Python/3.11 Linux/5.15 exe/x86_64

次に、AWS CLIの設定が完了しているか確認します。未設定の場合はaws configureでアクセスキーやリージョンを設定してください。


aws configure
AWS Access Key ID [None]: AKIAxxxxxxxx
AWS Secret Access Key [None]: xxxxxxxxxxxxx
Default region name [None]: ap-northeast-1
Default output format [None]: json

CloudWatch Logsを操作するためには、IAMユーザーにlogsの権限が付与されている必要があります。権限不足の場合は、IAMポリシーを確認してください。

3. ロググループ一覧を取得する方法

3. ロググループ一覧を取得する方法
3. ロググループ一覧を取得する方法

CloudWatch Logsでは、まずロググループを確認します。ロググループはアプリケーション単位やサービス単位で分かれています。


aws logs describe-log-groups
{
    "logGroups": [
        {
            "logGroupName": "/aws/lambda/sample-function",
            "storedBytes": 10240
        }
    ]
}

特定のロググループ名で絞り込みたい場合は、prefixオプションを使います。


aws logs describe-log-groups --log-group-name-prefix /aws/lambda
{
    "logGroups": [
        {
            "logGroupName": "/aws/lambda/sample-function"
        }
    ]
}

これにより、AWS CLIでCloudWatch Logsのロググループ一覧取得が可能になります。

AWSの基本用語や仕組みを、図解でサクッと理解したい人には、 入門の定番書がこちらです。

AWSの基本が全部わかる教科書をAmazonで見る

※ Amazon広告リンク

4. ログストリームを取得する方法

4. ログストリームを取得する方法
4. ログストリームを取得する方法

ロググループの中には複数のログストリームがあります。ログストリームは実行単位やインスタンス単位で分かれています。


aws logs describe-log-streams --log-group-name /aws/lambda/sample-function
{
    "logStreams": [
        {
            "logStreamName": "2026/02/22/[$LATEST]abcdef123456"
        }
    ]
}

最新のログストリームを取得したい場合は、order-byオプションとdescendingオプションを利用します。


aws logs describe-log-streams --log-group-name /aws/lambda/sample-function --order-by LastEventTime --descending
{
    "logStreams": [
        {
            "logStreamName": "2026/02/22/[$LATEST]abcdef123456"
        }
    ]
}

5. ログイベントを取得する方法

5. ログイベントを取得する方法
5. ログイベントを取得する方法

特定のログストリームからログイベントを取得するにはget-log-eventsコマンドを使用します。これによりCloudWatch Logsの内容をCLIで確認できます。


aws logs get-log-events \
--log-group-name /aws/lambda/sample-function \
--log-stream-name 2026/02/22/[$LATEST]abcdef123456
{
    "events": [
        {
            "message": "START RequestId: xxxx"
        },
        {
            "message": "END RequestId: xxxx"
        }
    ]
}

これでAWS CLIを使ったCloudWatch Logsのログ取得が可能です。サーバーのエラーログ確認やバッチ処理の実行結果確認に役立ちます。

6. filter-log-eventsでログをフィルタする方法

6. filter-log-eventsでログをフィルタする方法
6. filter-log-eventsでログをフィルタする方法

大量のログから特定のキーワードだけを抽出したい場合は、filter-log-eventsを使います。CloudWatch Logsのフィルタ検索は、障害調査やエラー解析に非常に便利です。


aws logs filter-log-events \
--log-group-name /aws/lambda/sample-function \
--filter-pattern "ERROR"
{
    "events": [
        {
            "message": "ERROR Exception occurred"
        }
    ]
}

特定期間で絞り込みたい場合はstart-timeやend-timeを指定します。時間はミリ秒で指定します。


aws logs filter-log-events \
--log-group-name /aws/lambda/sample-function \
--start-time 1708560000000 \
--end-time 1708563600000
{
    "events": []
}

これにより、AWS CLIでCloudWatch Logsを期間指定で取得し、キーワードフィルタをかけることができます。

7. よくあるトラブルと対処法

7. よくあるトラブルと対処法
7. よくあるトラブルと対処法

CloudWatch LogsをAWS CLIで取得できない場合、まず確認するべきはIAM権限です。logsDescribeLogGroupsやlogsFilterLogEventsなどの権限が不足している可能性があります。

次に確認するのはリージョン設定です。ログが存在するリージョンとAWS CLIの設定リージョンが一致していないと、ログが表示されません。

また、ログがまだ出力されていない場合もあります。LambdaやEC2の動作状況も合わせて確認しましょう。AWS CLIとCloudWatch Logsを組み合わせることで、迅速なログ解析とトラブルシューティングが可能になります。

まとめ

まとめ
まとめ

今回は、AWS CLIを使ってCloudWatch Logsを取得する方法から、ロググループ一覧の確認、ログストリームの取得、ログイベントの確認、さらにfilter log eventsによるキーワード検索や期間指定フィルタまでを体系的に学びました。Amazon CloudWatch Logsは、AWS環境におけるログ管理の中核となるサービスであり、EC2やLambda、各種アプリケーションのログを一元管理できる重要な仕組みです。

AWSマネジメントコンソールを使わずに、ターミナル上でCloudWatch Logsを確認できることは、Linuxサーバー運用や本番環境でのトラブルシュートにおいて非常に大きな武器になります。特に、aws logs describe log groupsやaws logs describe log streams、aws logs get log events、aws logs filter log eventsといった基本コマンドを理解しておくことで、ログ確認作業の効率は大きく向上します。

ロググループを確認し、対象のログストリームを特定し、その中から必要なログイベントを取得するという流れは、CloudWatch Logsを扱う上での基本手順です。さらに、filter log eventsを使ってERRORなどのキーワードでフィルタリングすれば、大量のログの中から問題箇所だけを素早く抽出できます。これは障害対応やエラー解析、パフォーマンス調査において欠かせない操作です。

また、start timeやend timeを指定した期間絞り込みは、特定時間帯に発生した不具合を調査する際にとても有効です。AWS CLIとCloudWatch Logsを組み合わせることで、ログ取得、ログ検索、ログ分析をコマンドベースで柔軟に実行できます。サーバー管理者やインフラエンジニアだけでなく、アプリケーション開発者にとっても必須のスキルといえるでしょう。

IAM権限やリージョン設定の確認も重要なポイントでした。CloudWatch Logsが取得できない場合は、logs関連の権限不足やリージョンの不一致が原因であることが多いため、aws configureの設定やIAMポリシーを必ず確認しましょう。これらを理解しておくことで、AWS CLIによるCloudWatch Logs操作で迷うことがなくなります。

サンプルプログラムでAWS CLIを実行する例

ここでは、JavaからAWS CLIコマンドを実行してCloudWatch Logsを取得する簡単なサンプルを紹介します。ProcessBuilderを利用することで、Javaアプリケーション内からCLIを呼び出すことが可能です。


import java.io.BufferedReader;
import java.io.InputStreamReader;

public class CloudWatchLogsCliExample {
    public static void main(String[] args) throws Exception {
        ProcessBuilder builder = new ProcessBuilder(
            "aws",
            "logs",
            "describe-log-groups"
        );

        Process process = builder.start();

        BufferedReader reader =
            new BufferedReader(new InputStreamReader(process.getInputStream()));

        String line;
        while ((line = reader.readLine()) != null) {
            System.out.println(line);
        }

        process.waitFor();
    }
}

上記のJavaコードを実行すると、AWS CLI経由でCloudWatch Logsのロググループ一覧が標準出力に表示されます。JavaとAWS CLIを組み合わせることで、ログ監視ツールや自動レポート生成などにも応用できます。


{
    "logGroups": [
        {
            "logGroupName": "/aws/lambda/sample-function"
        }
    ]
}

このように、AWS CLIとCloudWatch Logsの基本コマンドを理解し、さらにプログラムと組み合わせることで、ログ管理の自動化や効率化が実現できます。AWS環境での運用において、CloudWatch Logs取得方法やフィルタ検索の知識は必ず役に立ちます。

先生と生徒の振り返り会話

生徒

今日はAWS CLIでCloudWatch Logsを取得する方法を学びました。ロググループの確認からログストリームの取得、get log eventsやfilter log eventsの使い方まで理解できた気がします。

先生

とても良いですね。CloudWatch LogsはAWS運用の基本です。AWS CLIを使えば、コンソールを開かなくてもログ確認やログ検索ができます。

生徒

特にfilter log eventsでERRORを抽出できるのが便利だと思いました。障害対応のときにすぐ原因を見つけられそうです。

先生

その通りです。期間指定やキーワード検索を組み合わせれば、より正確なログ分析ができます。IAM権限やリージョン設定も忘れずに確認しましょう。

生徒

AWS CLIとCloudWatch Logsをしっかり使いこなせるように、実際の環境でもコマンドを試してみます。

先生

ぜひ実践してください。ログ取得、ログ確認、ログフィルタの基本を押さえておけば、AWS環境でのトラブルシューティング力が大きく向上します。

AWS CLIの一覧へ
新着記事
AWS
【AWS】CLIでCloudWatch Logsを取得・フィルタする方法
【AWS】CLIでCloudWatch Logsを取得・フィルタする方法を徹底解説!初心者向けAWS CLIログ確認ガイド
Java
オブジェクト指向プログラミングの実践(簡単なクラス設計をしてみる)
オブジェクト指向プログラミングの実践(簡単なクラス設計をしてみる)
Java
オブジェクト指向の設計原則(SOLID の基本を知ろう)
オブジェクト指向の設計原則(SOLID の基本を知ろう)
Java
オブジェクト指向のメリットとは?プログラムが整理される理由
オブジェクト指向のメリットとは?プログラムが整理される理由
人気記事
AWS
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説
AWS
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
AWS
インスタンスタイプの料金比較と最適な選び方(最新2026年版)
AWSインスタンスタイプの料金比較と最適な選び方!初心者でもわかる2025年最新ガイド
AWS
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説

🔌 USBポート不足を解消

Type-C 1本で拡張。
開発・作業環境を一気に快適に

UGREEN USB-Cハブを見る

※ Amazon広告リンク