【CloudWatch Logs】ログストリームを作成するCloudFormationテンプレート

記事タイトルとURLをコピーする

こんにちは。サーバーワークスエンジニアの伊藤Kです。

先日、某所で「CloudFormationを制する者はAWSを制す」(意訳)といった趣旨の講演を聞いて以来、CloudFormationが好きになった今日この頃です。 そこで、まずは時々ある「あるサービスのログ蓄積用にCloudWatchにロググループとログストリームを新たに追加する」のを、CloudFormationでやってみます。

CloudWatch Logs のロググループ、ログストリームについて

以下をご参照ください。 ・Amazon CloudWatch Logs の概念ロググループとログストリームを操作する

図にしてみます。

CloudFormationテンプレート

こちらです。

AWSTemplateFormatVersion: "2010-09-09"
Description: "LogGroup and Stream"

Parameters:
  ## CloudWatch Parameters
  LogGroupName:
    Type: String
    Description: Enter LogGroupName
  LogStreamName:
    Type: String
    Description: Enter LogStreamName
  RInDays:
    Type: Number
    Description: Enter RetentionInDays

Resources:
  LogG:
    Type: AWS::Logs::LogGroup
    DeletionPolicy: "Delete"
    Properties:
      LogGroupName: !Ref LogGroupName
      RetentionInDays: !Ref RInDays

  LogS:
    Type: AWS::Logs::LogStream
    DeletionPolicy: "Delete"
    Properties:
      LogGroupName: !Ref LogG
      LogStreamName: !Ref LogStreamName
 

実行コマンド

冒頭に記載した講演では「CloudFormationでの構築はCLIにてやるべし」との教えもあり、膝を打つ思い。 私もCLIで実行します。 クライアント環境がWindowsなので、PowerShellプロンプトからの実行です。 (Cloud9使えよ、というツッコミが入りそうですが、また別の機会に)

aws cloudformation deploy --profile "xxx" --stack-name "logstream-for-XXX" --template-file "make-LogGroup-and-Stream.yml" `
--parameter-overrides `
LogGroupName="WinLogG" `
LogStreamName="WinLogS" `
RInDays=14

1点、注意点として、RetentionInDays(保持期間)は任意の値を設定できるのではなく、 決められた値の中から選ぶ必要があります。         (文末の「参考記事」サイトより抜粋)

結果

ロググループと、空のログストリームができています。

今回はこの辺で。See you next time.

参考記事(公式リファレンス)

AWS CloudFormation - AWS::Logs::LogGroupAWS CloudFormation - AWS::Logs::LogStream

伊藤K (記事一覧)

SRE部

おっさんエンジニア。

甘いお菓子が大好きですが、体重にDirect Connectなので控えています。

「エンジョイ AWS」を合言葉に、AWSを楽しむことを心がけています。