AWS×WordPress – 番外編2


この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。

はじめに

以前、AWS上のWordPress環境を構築し、そこにプラスでログ収集機能を追加しました。

今回はさらに…

1.収集したログを CloudWatchLogs から S3 へエクスポート
→ ログについては項目3.Apacheアクセスログ収集をご参照ください

2.1日1回 日本時間 0 時に定時実行

3.実行時のエクスポート内容は前日 0:00~23:59 の分

以上3つを満たせる内容を実装したので、いつもの通りブログ形式で振り返っていきます。


これまでの構築

これまでの構築についてはこちらです、よろしければご覧ください。

AWS×WordPress その1 – IAM,KMS
AWS×WordPress その2 – ネットワーク
AWS×WordPress その3 – RDS,EFS
AWS×WordPress その4 – EC2
AWS×WordPress その5 – 監視,通知
AWS×WordPress その6 – DNS,HTTPS
AWS×WordPress 番外編1 – 監視&ログ収集


これまでの構成図

1.構築当初に完成目標としていた構成図はこちら

file

2.番外編1では、一部機能を追加しました

file


本記事で実装する範囲

上記の構成図を前提とし、本記事では黄色の吹き出し内にある機能を追加実装します

file


概要

今回は記載する内容は、追加した機能は次の3つ

  1. S3バケット作成

  2. S3バケットポリシー編集

  3. Lambda用ロールの作成

  4. Lambda作成

  5. トリガーの設定

ではまず、S3バケット作成から


1. S3バケット作成

ログのエクスポート先(=S3バケット)を作成します

S3コンソール > バケットを作成

・バケット名を入力
 ※ バケット名に大文字は使えません
・リージョンを選択
 ※ リージョンはCloudWatch Logsを使用しているリージョンを選択する必要があります。

その他はデフォルトのままでOK > バケットを作成

file

バケット作成完了!

file

2. S3バケットポリシー編集

作成したバケットのバケットポリシーを設定していきます

S3コンソール > バケット > 作成したバケットを選択 > アクセス許可 > バケットポリシー > 編集をクリック

file

キャプチャのように、ポリシーのなかに内容を記入 > 変更の保存

Service:リージョン
Resource:バケット ARN

file

参考:コンソールを使用してログデータを Amazon S3 にエクスポートする

確認 – S3に出力してみる

Cloudwatchコンソール > ログ > ロググループ > 設定したいロググループを選択

アクション > データをAmazon S3にエクスポートを選択
file

エクスポートをクリックし実行!
file

エクスポート先に指定したS3バケット > オブジェクト
出力を確認できました!

※確認できない場合は、画面を更新してみてください

file

CloudwatchLogs → 任氏のS3バケットへのエクスポートが正しく実行できることの確認は完了です

エクスポートが確認できたら、今回作成したオブジェクトは一旦削除します。


3. Lambda用ロールの作成

まずはポリシーを作成します

IAMのコンソールを開く > ポリシー > ポリシーを作成

今回はCloudwatchLogsやS3周りのポリシーが必要になります

file

ポリシー名や説明を入力、設定に間違いないかも併せて確認し作成!

file

次にロールを作成します

IAMのコンソールを開く > ロール > ロールを作成

作成したポリシーを検索し選択

file

ロール名や説明を入力、ポリシーに間違いないかも併せて確認し作成完了!

file


4. Lambda作成

Lambdaコンソール > 関数の作成

一から作成を選択し、必要項目を入力していきます

file

関数名:
ランタイム:Python 3.8

作成済みのロールを使用するので既存のロールを使用するを選択
本記事 手順3.Lambda用ロールの作成 で作成したロールを選択 > 関数を作成

file

作成が完了したらlambda_function.pyを右クリック > Open で内容を編集していきます

file

今回の内容はこちら
バケット名やロググループ名などは適宜変更が必要になります

file


5. トリガーの設定

作成したLambdaの画面からトリガーを追加をクリック > EventBridge(CloudWatch Events)を選択

【設定したい内容】
毎日 日本時間の0:00に実行

【今回の設定値】
ルールタイプ:スケジュール式
スケジュール式:*cron(0 15 ? )
※ 日本時間の0:00に動作させたい = UTC+9時間で
15**となります

file

最後に追加をクリックし完了!
これにて設定完了です、お疲れ様でした。


さいごに

今回はS3、Lambda、EventBridgeを使用してログエクスポート機能を実現しました。

あくまで実装時の備忘録的な側面が大きい本記事ですが、
各項目や機能については気になったものは別途記事にて取り上げていこうと思います。

ではまた!

Last modified: 2024-02-06

Author