Cloudformation - ECS wellcome-docker
  1. AWSTemplateFormatVersion: "2010-09-09"
  2.  
  3. Description: >
  4. Aplicacion Docker welcome-to-docker ejecutandose en ECS Fargate.
  5.  
  6. Parameters:
  7. VpcId:
  8. Type: AWS::EC2::VPC::Id
  9. Description: VPC donde se ejecutara la aplicacion
  10.  
  11. PublicSubnetId:
  12. Type: AWS::EC2::Subnet::Id
  13. Description: Subred publica con salida a Internet
  14.  
  15. Resources:
  16.  
  17. ECSCluster:
  18. Type: AWS::ECS::Cluster
  19. Properties:
  20. ClusterName: welcome-cluster
  21.  
  22. TaskExecutionRole:
  23. Type: AWS::IAM::Role
  24. Properties:
  25. RoleName: !Sub "${AWS::StackName}-execution-role"
  26. AssumeRolePolicyDocument:
  27. Version: "2012-10-17"
  28. Statement:
  29. - Effect: Allow
  30. Principal:
  31. Service:
  32. Action:
  33. - sts:AssumeRole
  34. ManagedPolicyArns:
  35. - !Sub arn:${AWS::Partition}:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy
  36.  
  37. WebSecurityGroup:
  38. Type: AWS::EC2::SecurityGroup
  39. Properties:
  40. GroupDescription: Permite acceder a la aplicacion web
  41. VpcId: !Ref VpcId
  42. SecurityGroupIngress:
  43. - Description: HTTP publico para la demo
  44. IpProtocol: tcp
  45. FromPort: 80
  46. ToPort: 80
  47. CidrIp: 0.0.0.0/0
  48. SecurityGroupEgress:
  49. - IpProtocol: -1
  50. CidrIp: 0.0.0.0/0
  51.  
  52. WelcomeTaskDefinition:
  53. Type: AWS::ECS::TaskDefinition
  54. Properties:
  55. Family: welcome-task
  56. RequiresCompatibilities:
  57. - FARGATE
  58. NetworkMode: awsvpc
  59. Cpu: "256"
  60. Memory: "512"
  61. ExecutionRoleArn: !GetAtt TaskExecutionRole.Arn
  62. ContainerDefinitions:
  63. - Name: welcome
  64. Image: docker/welcome-to-docker:latest
  65. Essential: true
  66. PortMappings:
  67. - ContainerPort: 80
  68. HostPort: 80
  69. Protocol: tcp
  70.  
  71. WelcomeService:
  72. Type: AWS::ECS::Service
  73. Properties:
  74. ServiceName: welcome-service
  75. Cluster: !Ref ECSCluster
  76. LaunchType: FARGATE
  77. DesiredCount: 1
  78. TaskDefinition: !Ref WelcomeTaskDefinition
  79. NetworkConfiguration:
  80. AwsvpcConfiguration:
  81. AssignPublicIp: ENABLED
  82. Subnets:
  83. - !Ref PublicSubnetId
  84. SecurityGroups:
  85. - !Ref WebSecurityGroup
  86.  
  87. Outputs:
  88.  
  89. ClusterName:
  90. Description: Nombre del cluster ECS
  91. Value: !Ref ECSCluster
  92.  
  93. ServiceName:
  94. Description: Nombre del servicio ECS
  95. Value: !GetAtt WelcomeService.Name
  96.  
  97. SecurityGroupId:
  98. Description: Security Group utilizado
  99. Value: !Ref WebSecurityGroup
Pasted 2026-09-21 13:07:34

Short link: