AWS SDK for PHP(バージョン3)を使って、S3にファイルをアップロード・ダウンロードする方法を紹介します。公式ドキュメントを見てもいいのですが、実装してハマったところなどがあったので、その辺りの情報も合わせてまとめておきたいと思います。
なお、PHPのバージョンは7.0.2を使用しました。また、サンプルのスクリプトは、コマンドライン上でキックして走らせることを想定しています。
※PHP版も掲載しました!!(PHPを使ってCloudWatch Logsからデータを取得し、4xx系のレポートを作成する方法)
CloudWatch Logsを導入するとAWSにログを保存することができます。この記事では、AWS上に保存したログを取得・加工してレポートを作成する方法を紹介します。
作成するレポートは、ステータスコード4xx系が発生したパスとその発生回数をまとめたものになります。フォーマットは下の例のように、パスと回数を1行で表示しています。また、発生回数の多いもの順にソートしています。
/foo.php: 50
/bar.php: 40
/baz.php: 35
なお、レポートの取得や整形はPython(3.5.1)を使い、AWSへのアクセスはBoto 3を利用します。
また、今回のサンプルではレポートをファイルに保存していますが、実際の運用上はメールで送信する方が望ましいと思います。
CloudWatch Logsにログを保存する方法は、AWSのドキュメントを読むのがいいと思います。また、私の過去の記事CloudWatch Logsを使って500系のレスポンスを検知する方法も参考になれば幸いです。
EC2上で動いているWebサーバが500系のレスポンスを返した時に、メールで通知する方法を紹介します。メール送信を実現するために、この記事ではCloudWatchを使っています。また、WebサーバはNginxの例を紹介しています。