AWSIaCNetwork

AWSのCloudFormationでIaCを実践(5) – VPC FlowLogs

AWS

AWSのCloudFormationでIaCを実践ということでVPCの作成からはじめて素のEC2(AmazonLinux2)を構築するところまで実施しました。

AWSのCloudFormationでIaCを実践してみる(すべての記事一覧)
第1回 – VPC  https://syachiku.net/awscloudformationiac1-vpc/
第2回 – Role  https://syachiku.net/awscloudformationiac2-iam-role/
第3回 – SecurityGroup  https://syachiku.net/awscloudformationiac3-sg/
第4回 – EC2  https://syachiku.net/awscloudformationiac4-ec2/
第5回 – VPC FlowLogs https://syachiku.net/awscloudformationiac5-flowlogs/
第6回 – CloudTrail https://syachiku.net/awscloudformationiac6-trail/
第7回 – R53 HostedZone https://syachiku.net/awscloudformationiac7-r53-hosted/

ここまでで一旦区切りはつきましたが、今回はVPC FlowLogsというVPC内のIPトラフィックをログに出力するということをCloufFormationで実施してみます。

※今回実施することは基本的には無料ですが、利用料金が発生する可能性が少なからずありますので、あくまで自己責任でお願いします。

2. 前提条件

  • AWSアカウントが取得できていること
  • 適切な権限(=Admin相当)をもったIAMユーザーを作成していること
  • ルーティングなどの最低限のネットワークの知識があること
  • YAMLの書きかたを知っていること(CloudFormationはjsonもしくはyamlで書けますが、今回はyamlで書いていきます。)

3. 今回作成するAWS環境

VPC FlowLogsの有効化を実施して、ログ保管するS3バケットを構築します。

バケット内に保存したログは7日経過で自動削除するようにバケットポリシーを設定します。

4. 構成図

5. CloudFormation Template

以下のgithub上に保管していますので参照ください。 
https://github.com/gogoloon/aws-cfn-setup/tree/aws-infra-05

今回は少し短いので以下にも載せておきます。

AWSTemplateFormatVersion: "2010-09-09"
Description:
  VPC Flow Logs

Parameters:
  ProjectName:
    Type: String
    Default: "aws-infra"

  VpcId:
    Type: String
    Default: "vpc-0f37be77297f28c77"

  VpcFlowLogsTrafficType:
    Type: String
    Default: ALL
    AllowedValues: [ ALL, ACCEPT, REJECT ]

Resources:
  VPCFlowLogsS3Bucket:
    Type: "AWS::S3::Bucket"
    Properties:
      BucketName: !Sub "${ProjectName}-vpcflowlogs"
      LifecycleConfiguration:
        Rules:
          - Id: !Sub "${ProjectName}-vpcflowlogs-lifecycle-rule"
            Status: Enabled
            Prefix: VPCFlowLogs
            ExpirationInDays: 7

  VPCFlowLogs:
    Type: "AWS::EC2::FlowLog"
    DependsOn: VPCFlowLogsS3Bucket
    Properties:
      LogDestination: !Sub "arn:aws:s3:::${VPCFlowLogsS3Bucket}"
      LogDestinationType: s3
      ResourceId: !Ref VpcId
      ResourceType: "VPC"
      TrafficType: !Ref VpcFlowLogsTrafficType

6. スタックの作成

それでは先ほど作成したコードを使って、リソースを作成していきます。

マネージメントコンソールにログオンして、リージョンを大阪に切り替えたのち、CloudFormationを開きます。

「スタックの作成」→「新しいリソースを使用」を選択します。

「テンプレートファイルをアップロード」からコードのファイルを選択してアップします。

スタックの名称やネットワーク設定値を入力(デフォルトから変更したい場合には変更してください)してスタックの作成まで進めます。

7. 作成されたリソースの確認

しばらくするとステータスが「CREATE_COMPLETE」となりスタック作成が完了します。

それでは作成されたリソースを確認してみます。

7.1. VPC FlowLogs

7.2. S3バケット+ライフサイクルポリシー

8. まとめ

想定した通りにVPC FlowLogsの設定ができました。

やはり手動で構築するよりコードで管理する方が運用コストが下がりそうですね。

AWSを効率的に学習する方法

私がAWSを学習するために使った学習材料は「Udemy」だけです。

まずは座学を行ってAWSプラクティショナー もしくは ソリューションアーキテクト試験を取得することを目標にしました。

具体的にはUdemyで以下の2つの商材を購入して学習しました。AWS公式が提供している模擬試験も受けていません。

Udemyは世界最大級のオンライン学習プラットフォームで、世界中の学びたい人と教えたい人をオンラインでつなぐサービスです。 Udemyは米国Udemy,Inc.が運営するプラットフォームで日本ではベネッセが事業パートナーとして協業をしています。 C2C(consumer to consumer)により生まれる豊富で多彩な講座により個人の学習ニーズに応じた学びをみつけることができます。

これだけでOK! AWS 認定ソリューションアーキテクト – アソシエイト試験突破講座(SAA-C02試験対応版)
【SAA-C02版】AWS 認定ソリューションアーキテクト アソシエイト模擬試験問題集(6回分390問)

今回は以上となります。

コメント

タイトルとURLをコピーしました