概要
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
クラスの詳細については以下を参考にしてください。