洸樹(120)9この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。くコ:彡がトレードマークの阿部です。Firewall)は、AWS上でバーチャルアプライアンス型のWAFとして利用出来ます。EC2インスタンスとして動作するため、ユーザーの自由が効きますが、冗長化やスケーリングは考慮する必要があります。Barracuda社では、AutoScalingに対応したCloudFormationテンプレートを公開しています。ユーザーの負担を減らす素晴らしいアイディアですね。実際に試してみましたので、ご紹介します。概要CloudFormationで作成される環境を確認しましょう。WAFインスタンスはELB配下に配置されます。AutoScaligを利用し負荷に応じてインスタンスが増減します。負荷が少ない場合、インスタンスは減少し、負荷が高くなると、インスタンスは増加します。事前準備Barracuda社のテンプレートで環境を作る際に、ELBの名前や保護対象のDNS名を入力する必要があります。そのため、事前にVPC、ELB、WebServerインスタンスを作成しておきます。試せるように、CloudFormationテンプレート(webserver-template.template)を作成しておきました。以降の説明はwebserver-template.templateの利用を前提にすすめます。パラメーターを以下のように入力すると、VPC,ELB,EC2がプロビジョニングされます。Linuxを指定しhttpdをインストールの上、index.htmlを配置しました。Instanceにて公開されています。詳しい手順はリンク先に任せるとして、ポイントをご紹介します。Firewall]を選択します。Firewall]を選択し、Continueを選択します。Terms]の選択が必要です。Launch]を選択し、以下のように入力します。Console]を選択します。Stackの作成画面に移ります。パラメーターに以下のように入力し、Stack(=CloudFormationで管理される環境)を作成しました。Instancesは"1"を選択しましょう。2つのインスタンスが同時に起動した場合に、クラスタリングが動作しない場合があります。この問題は修正される予定のようです。Confirmation」のメールが送信されます。subscriptionを選択すると、有効化されます。デプロイ結果CloudFormation画面にて、スタックのStatusがCREATE_COMPLETEになれば、成功です。EC2インスタンスとして、WAFが作成されます。セキュリティグループの変更(WAF)WAFインスタンス用のルールを変更します。WAFインスタンスのセキュリティグループは、AWSMPBarracudaWebApplicationFirewall-BWAFAutoScaleSecurityGroup-XXXXXXとして作成されます。デフォルトのルールでは、全ての送信元が0.0.0.0/0に指定されています。今回は以下のように変更しました。クラスタリングセキュリティグループの変更(SgWebELB)WebServerにトラフィックを分配する[ELBWebServer]に割り当てられたセキュリティグループ(SgWebELB)のルールを変更します。WAFインスタンスからの80番アクセスを許可しましょう。送信元にWAFインスタンスに割り当てられたセキュリティグループを指定します。本変更により、WAFを経由しないHTTPアクセスは遮断されます。AWSMPBarracudaWebApplicationFirewall-BWAFAutoScaleSecurityGroup-XXXXWAFインスタンスの確認http://WAFのPublicIP:8000/で管理画面に接続し、「ユーザ名:admin、パスワード:インスタンスID」でログインします。[サービス]を確認すると、パラメーターに入力した内容が反映されています。保護対象のELBのIPアドレスが変わったり、スケールした時の挙動は未検証です。WEBブラウザからの接続WAFにトラフィックを分配するELB(ELBWAF)にアクセスしてみます。http://elbwaf-XXXXXX.ap-northeast-1.elb.amazonaws.com/に接続すると、Webサーバーに接続出来るはずです。AutoScaling詳細CloudFormationで構築されたAutoScalingに関連する内容を整理しましょう。グループスタック作成時のパラメーター値が反映されています。最大数などを変更する場合、本内容を変更する事になります。メールアドレスはSNSに登録され、インスタンスの[起動],[終了],[起動失敗],[終了失敗]の通知に利用されます。Configもスタック作成時のパラメーター値が反映されている事がわかります。s3にアクセスするためにIAMプロファイルが設定されています。インスタンスプロファイルAWSMPBarracudaWebApplicationFirewall-BWAFAutoScalingInstanceProfile-XXXXXインスタンスタイプm3.mediums3s3バケットawsmpbarracudawebapplicationfirewall-s3bucket-XXXXXXXXXが作成されていました。バケットには、WAFインスタンスのIPアドレス、シリアルナンバーを記載したファイルが格納されます。スケールアウトが発生すると、新しいWAFインスタンスはバケットに接続し既存インスタンスの設定に同期します。スケールインした場合にはファイルは削除されます。バケットにファイルが見つからない場合、CloudFormationのパラメーターの内容に同期します。スケールイン、スケールアウトCloudWatch画面を確認してみます。「AWSMPBarracudaWebApplicationFirewall」から始まるアラームが6つ作成されていました。NetworkIn,NetworkOut,CPUUtilizationの結果を元に、スケールイン、スケールアウトするようになっています。スケールアウトスケールアウトした時の挙動を確認しましょう。今回は負荷に応じた自動スケーリングではなく、手動でスケールアウトさせてみました。手動スケールアウト手動でスケールアウトしたインスタンスが削除されては、面倒です。スケールインアクションを削除しておきます。CloudWatch画面から、アラームを選択し開きます。アクション中の[削除]を選択します。設定ステータスが[アクションなし]になれば、OKです。WAFインスタンスを4台にスケールアウトしましょう。Groupの[希望]を4にします。ELBへの組み込みWAFインスタンスが起動し、自動的にELB配下に組み込まれます。HAへの組み込みWAFのコンソール画面を確認してみます。[HA(高可用性)]に組み込まれている事がわかります!スケールアウトした場合でも設定が同期されるため、ユーザー側の操作は不要になります。ServicesおわりにBarracuda社が公開しているCloudFormationを使ってWAFのAutoScaling構成を試してみました。CloudFormationテンプレートを使う事で、一見複雑に思えるAutoScalingとHA構成をすぐに試す事が出来ました。AWSでのセキュリティ対策には、AWSとの親和性が高い製品や技術を導入する事が重要だと思います。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。CAFEの他、NTTデータとセブンイレブンの取り組みや、サインポスト、Zippinなどの各社と流通・小売業との連携を業界マップに作成してみました。PolicyのConditionにaws:CalledViaというキーが追加されました。いったキーなのかご説明します。和樹31こんにちは植木和樹@上越オフィスです。Terminalの機能確定版がリリースされたので試してみました。夏目祐樹403こんにちは、CX事業本部の夏目です。MacのタッチバーのタッチIDが非常に便利なのですが、Terminalでsudoを叩かないと行けないときに使えたらなぁと思ったので、情報を共有します。臼田佳祐295ワークフロー自動化OSSのn8nをAWS環境で建てて検証してみました。非常に期待できるサービスです。Fargateの勉強をしています。使ってみたい方は参考にしてください。洋介256SnowflakeがAWSの東京リージョン上で稼働するようになりました。データを日本に置けます。芳賀健233こんにちは!猫様の忠実なるしもべ、芳賀健です。Tokyoで開催されました。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。