7
1

More than 1 year has passed since last update.

AWS CDKでセキュリティグループを制限したFargateの起動

Posted at

概要

AWS CDKのApplicationLoadBalancedFargateServiceでFargateを作った際、ALBのセキュリティグループでIP制限をしましたが、セキュリティグループが全開放されてしまいました。なので今回はセキュリティグループを設定したFargateを起動する方法を紹介します。
ApplicationLoadBalancedFargateServiceについては以下を参考にしてください。

環境

  • windows10
  • aws-cdk: 2.8.0

手順

セキュリティグループを設定

SecurityGroupクラスを使用し、セキュリティグループを作成します。

    const alb_securityGroup = new SecurityGroup(this, "SecurityGroup", {
      vpc: vpc, //VPCを指定
      allowAllOutbound: true,
    });

インバウンドルール追加

セキュリティグループにインバウンドルールを追加します。

alb_securityGroup.addIngressRule(
      ec2.Peer.ipv4('IPアドレス'),
      ec2.Port.tcp(ポート番号),
      "任意" //インバウンドルールの説明を記載
    );

SecurityGroupクラスの詳細については以下を参考にしてください。

ALB作成

作成したセキュリティグループを割り当てたALBを作成します。

    const alb = new ApplicationLoadBalancer(this,'alb',{
      internetFacing: true, //インターネットからのアクセスを許可するかどうか指定
      loadBalancerName: 'alb',
      securityGroup: alb_securityGroup, //作成したセキュリティグループを割り当てる
      vpc   
    })

ApplicationLoadBalancerクラスの詳細については以下を参考にしてください。

Fargateを作成

ApplicationLoadBalancedFargateServiceを使用し、先ほど作成したALBを指定しFargateを作成します。

    const loadBalancedFargateService = new ecsp.ApplicationLoadBalancedFargateService(this, 'SampleWebService', {
      cluster,
      memoryLimitMiB:512,//任意の値を指定
      desiredCount:1,//任意の値を指定
      cpu:256,//任意の値を指定
      taskImageOptions: {
        image: ecs.ContainerImage.fromRegistry("amazon/amazon-ecs-sample"),
      loadBalancer:alb, //先ほど作成したALBを指定
      openListener:false,
    });

ApplicationLoadBalancedFargateServiceはデフォルトでは、ALBのリスナーに全開放されたセキュリティグループが割り当てられてしまうため、最後の行のopenListener:falseに指定することで作成したALBのセキュリティグループが反映されるようにします。
これでALBのセキュリティグループで制限したFargateを起動することが可能です。
ApplicationLoadBalancedFargateServiceクラスの詳細については以下を参考にしてください。

7
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
1