AmasonS3 にログファイルをコピーするには?

ショコラ
ショコラ

AmasonS3 にログファイルをコピーするには?

以下の4つの手順でやってみましょう。

①AWSユーザー を作成する。
②S3にログコピー先のバケットを作成する。
③Ubuntu に awsパッケージ をインストールする。
④awsコマンド でファイルをコピーする。

もっさん先輩
もっさん先輩

① AWSユーザー を作成する

この章では、AWSユーザー を作成して、awscliコマンド を実行するための「アクセスキーID」「シークレットアクセスキー」を取得します。

  1. 「ユーザー名」を入力、「アクセスキー・プログラムによるアクセス」にチェックを入れます。
    「次のステップ:アクセス権限」ボタンを押します。
  1. 「既存のポリシーを直接アタッチ」をクリックして「AmazonS3fullAccess」を選択します。
    「次のステップ:タグ」ボタンを押します。
  1. 「次のステップ:確認」ボタンを押します。
  1. 「ユーザーの作成」ボタンを押します。
  1. 「アクセスキーID」と「表示」リンクをクリックして「シークレットアクセスキー」を保管します。

以上

② S3 にログコピー先のバケットを作成する

③ Ubuntu に awsパッケージ をインストールする

  1. Ubuntuコンテナを起動します。
docker run --rm -it -v /var/log:/log ubuntu:20.04 bash

※「ubuntu:20.04」のバージョン指定は、私のホストOSが古いため最新の Ubuntuコンテナ が使えなかったからです。皆様は最新のバージョンを使用してください。

  1. apt-get update を実行します。
apt-get update
  1. awscliパッケージ をインストールします。
apt-get install -y awscli
  1. 設定を行います。
aws configure

AWSユーザー を作成した時の「アクセスキーID」「シークレットアクセスキー」を入力します。

# aws configure
AWS Access Key ID [None]:{アクセスキーIDを入力}
AWS Secret Access Key [None]:{シークレットアクセスキーを入力}
Default region name [None]:{エンター}
Default output format [None]:{エンター}

.aws/credentials に設定ファイルができます。

Dockerfile にまとめました。これだけですね。

FROM ubuntu:20.04
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y awscli
CMD tail -f /dev/null

「DEBIAN_FRONTEND=noninteractive」で awscliパッケージ のインストール中の入力をスキップできます。

docker-compose.yml にまとめました。

version: '3'
services:
  awscli:
    build: .
    environment:
      - AWS_ACCESS_KEY_ID={アクセスキーID}
      - AWS_SECRET_ACCESS_KEY={シークレットアクセスキー}
    volumes:
      - /var/log/:/log/:z

以上

④ awsコマンド でファイルをコピーする。

lsコマンド を実行して、s3 のバケットを一覧表示します。

aws s3 ls

lsコマンド でバケットの中を一覧表示します。S3 のファイルを指定するには「s3://」を付けます。

aws s3 ls s3://answorz

ローカルにあるログファイルを S3 にコピーします。

aws s3 cp /log/postgres.log-20220929.gz s3://answorz/`date +%Y%m%d`/

以上

Scroll to Top