Presentación

1

Computación en la Nube con AWS: S2, Docker, Lambda y más

EC2

2

Configuración de Instancias S2 en Amazon AWS

3

Configuración de Instancias EC2 en Amazon AWS

4

Instalación de Proyecto de Prueba en Instancia EC2 con Secure Shell

5

Creación de Imágenes AMI en AWS EC2 paso a paso

6

Creación y gestión de snapshots en Amazon S2

7

Configuración de IPs elásticas en instancias S2 de Amazon

8

Configuración de Balanceadores de Carga en S2

9

Creación de Certificados y Balanceadores de Carga en AWS

10

Exploración de AMIs en Amazon Marketplace: Selección y Configuración

11

Creación y configuración de instancias S2 en AWS

Lightsail

12

Uso de VPS Lysel de Amazon para Proyectos Web

13

Creación y Gestión de VPS con Lysel en Amazon Marketplace

14

Comparativa de Dicel vs EC2: Costos y Beneficios para Proyectos

15

Creación y Configuración de un VPS con Ubuntu

16

Instalación de Proyecto en Instancia Lysel con Apache y Git

17

Instalación de bases de datos en Amazon LightSail

18

Configuración de Servidores y Software en Línea

ECR/ECS/EKS

19

Contenedores en Amazon: Registro, Creación y Kubernetes con EKS

20

Ejecución de Contenedores Docker con Amazon ECS

21

Implementación de Contenedores en AWS Fargate paso a paso

22

Configuración de Docker en EC2 para Crear Imágenes de Contenedores

23

Implementación de Kubernetes en Amazon EKS

24

Configuración de kops y creación de clúster Kubernetes en AWS

25

Creación y Ejecución de Dockerfile para Aplicaciones

Lambda

26

Introducción a AWS Lambda y la Computación Serverless

27

Creación y Configuración de Funciones Lambda en AWS

28

Creación de funciones Lambda en AWS con API Gateway

Elastic Beanstalk

29

Despliegue y Gestión de Aplicaciones con Elastic Beanstalk

30

Creación de Ambientes en Elastic Beanstalk con PHP

31

Actualización de Aplicaciones en Elastic Beanstalk

32

Creación de Aplicaciones en Elastic Beanstalk

Conclusiones

33

Servicios y Funcionalidades Actuales de AWS

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Comparativa de Dicel vs EC2: Costos y Beneficios para Proyectos

14/33
Recursos

Esto es lo que te ofrece Lightsail:

  • El costo de los CPUs depende del número que elijas.
  • Tienes almacenamiento SSD.
  • Te ofrece Networking y transferencia de datos.
  • Incluye manejo de DNS.
  • Tienes una IP estática asignada a ti.
  • Tienes acceso a otros servicios de AWS

En una comparativa de costos, el plan más económico de Lightsail ofrece por $3.50 1 TB de transferencia mientras que la misma capacidad en EC2 puede salir por más de $90. Sigue aprendiendo con cursos de AWS.

Aportes 15

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Amazon es un servicio costoso. Yo utilizo uno mucho mas barato en Europa llamado netcup.de en donde un VPS con 2Gb RAM, 20Gb SSD y 40TB transfer cuesta 2.43 euros al mes, en amazon un servicio similar estaria en el orden de 10$ solamente con 3 Tb de transferencia.

Realizando una consulta mas profunda sobre este servicio LightSail, es perfecto para todo el manejo de plataformas web, a baja escala de consumo. Los costos frente a estos beneficios son tambien por demanda, sin embargo, el plan Standar es una plan que genera un aproximado 0.0047USD/h.

Si se mantiene una instancia base encendida por 744 horas (31 dias), hace referencia a 3.5USD/mes. Es super practico, para proyectos universitarios, empresas pequeñas, blogs, etc.

Excelente este servicio de AWS, no lo conocía. Estoy realizando pruebas para migrar mis sitios de WorkPress

Mas claro con la comparativa 😃

el precio que cobra amazon puede ser muy bueno para aplicaciones que inician pero para cosas medianas a grandes si ya es un poco considerado sobre todo por el storage y transferencia.

En nuestro proyecto usamos Elasticbeanstalk con EC2, y es caro. Esta interesante esto de Ligthsail, solo me quedo con la duda de en que escenarios es mejorar usar y cuando no. Y si existe algún integración continua también para conectar con Ligthsail.

“Parameters” : {
“VpcId” : {
“Type” : “AWS::EC2::VPC::Id”,
“Description” : “VpcId of your existing Virtual Private Cloud (VPC)”,
“ConstraintDescription” : “must be the VPC Id of an existing Virtual Private Cloud.”
},

"Subnets" : {
  "Type" : "List<AWS::EC2::Subnet::Id>",
  "Description" : "The list of SubnetIds in your Virtual Private Cloud (VPC)",
  "ConstraintDescription" : "must be a list of at least two existing subnets associated with at least two different availability zones. They should be residing in the selected Virtual Private Cloud."
},

"KeyName": {
  "Description" : "Name of an existing EC2 KeyPair to enable SSH access to the instances",
  "Type": "AWS::EC2::KeyPair::KeyName",
  "ConstraintDescription" : "must be the name of an existing EC2 KeyPair."
},

"InstanceType" : {
  "Description" : "WebServer EC2 instance type",
  "Type" : "String",
  "Default" : "t2.small",
  "AllowedValues" : [ "t1.micro", "t2.nano", "t2.micro", "t2.small", "t2.medium", "t2.large", "m1.small", "m1.medium", "m1.large", "m1.xlarge", "m2.xlarge", "m2.2xlarge", "m2.4xlarge", "m3.medium", "m3.large", "m3.xlarge", "m3.2xlarge", "m4.large", "m4.xlarge", "m4.2xlarge", "m4.4xlarge", "m4.10xlarge", "c1.medium", "c1.xlarge", "c3.large", "c3.xlarge", "c3.2xlarge", "c3.4xlarge", "c3.8xlarge", "c4.large", "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge", "g2.2xlarge", "g2.8xlarge", "r3.large", "r3.xlarge", "r3.2xlarge", "r3.4xlarge", "r3.8xlarge", "i2.xlarge", "i2.2xlarge", "i2.4xlarge", "i2.8xlarge", "d2.xlarge", "d2.2xlarge", "d2.4xlarge", "d2.8xlarge", "hi1.4xlarge", "hs1.8xlarge", "cr1.8xlarge", "cc2.8xlarge", "cg1.4xlarge"]

,
“ConstraintDescription” : “must be a valid EC2 instance type.”
},

"SSHLocation": {
  "Description": "The IP address range that can be used to SSH to the EC2 instances",
  "Type": "String",
  "MinLength": "9",
  "MaxLength": "18",
  "Default": "0.0.0.0/0",
  "AllowedPattern": "(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})/(\\d{1,2})",
  "ConstraintDescription": "must be a valid IP CIDR range of the form x.x.x.x/x."
},

"DBClass" : {
  "Description" : "Database instance class",
  "Type" : "String",
  "Default" : "db.t2.small",
  "AllowedValues" : [ "db.t1.micro", "db.m1.small", "db.m1.medium", "db.m1.large", "db.m1.xlarge", "db.m2.xlarge", "db.m2.2xlarge", "db.m2.4xlarge", "db.m3.medium", "db.m3.large", "db.m3.xlarge", "db.m3.2xlarge", "db.m4.large", "db.m4.xlarge", "db.m4.2xlarge", "db.m4.4xlarge", "db.m4.10xlarge", "db.r3.large", "db.r3.xlarge", "db.r3.2xlarge", "db.r3.4xlarge", "db.r3.8xlarge", "db.m2.xlarge", "db.m2.2xlarge", "db.m2.4xlarge", "db.cr1.8xlarge", "db.t2.micro", "db.t2.small", "db.t2.medium", "db.t2.large"]

,
“ConstraintDescription” : “must select a valid database instance type.”
},

"DBName" : {
  "Default": "wordpressdb",
  "Description" : "The WordPress database name",
  "Type": "String",
  "MinLength": "1",
  "MaxLength": "64",
  "AllowedPattern" : "[a-zA-Z][a-zA-Z0-9]*",
  "ConstraintDescription" : "must begin with a letter and contain only alphanumeric characters."
},

"DBUser" : {
  "NoEcho": "true",
  "Description" : "The WordPress database admin account username",
  "Type": "String",
  "MinLength": "1",
  "MaxLength": "16",
  "AllowedPattern" : "[a-zA-Z][a-zA-Z0-9]*",
  "ConstraintDescription" : "must begin with a letter and contain only alphanumeric characters."
},

"DBPassword" : {
  "NoEcho": "true",
  "Description" : "The WordPress database admin account password",
  "Type": "String",
  "MinLength": "8",
  "MaxLength": "41",
  "AllowedPattern" : "[a-zA-Z0-9]*",
  "ConstraintDescription" : "must contain only alphanumeric characters."
},

"MultiAZDatabase": {
  "Default": "false",
  "Description" : "Create a Multi-AZ MySQL Amazon RDS database instance",
  "Type": "String",
  "AllowedValues" : [ "true", "false" ],
  "ConstraintDescription" : "must be either true or false."
},

"WebServerCapacity": {
  "Default": "1",
  "Description" : "The initial number of WebServer instances",
  "Type": "Number",
  "MinValue": "1",
  "MaxValue": "5",
  "ConstraintDescription" : "must be between 1 and 5 EC2 instances."
},

"DBAllocatedStorage" : {
  "Default": "5",
  "Description" : "The size of the database (Gb)",
  "Type": "Number",
  "MinValue": "5",
  "MaxValue": "1024",
  "ConstraintDescription" : "must be between 5 and 1024Gb."
}

},

“Mappings” : {
“AWSInstanceType2Arch” : {
“t1.micro” : { “Arch” : “HVM64” },
“t2.nano” : { “Arch” : “HVM64” },
“t2.micro” : { “Arch” : “HVM64” }
},

"AWSInstanceType2NATArch" : {
  "t1.micro"    : { "Arch" : "NATHVM64"  },
  "t2.nano"     : { "Arch" : "NATHVM64"  },
  "t2.micro"    : { "Arch" : "NATHVM64"  }
}

,
“AWSRegionArch2AMI” : {
“us-east-1” : {“HVM64” : “ami-0080e4c5bc078760e”, “HVMG2” : “ami-0aeb704d503081ea6”}
}

},

“Resources” : {

"ApplicationLoadBalancer" : {
  "Type" : "AWS::ElasticLoadBalancingV2::LoadBalancer",
  "Properties" : {
    "Subnets" : { "Ref" : "Subnets"}
  }
},

"ALBListener" : {
  "Type" : "AWS::ElasticLoadBalancingV2::Listener",
  "Properties" : {
    "DefaultActions" : [{
      "Type" : "forward",
      "TargetGroupArn" : { "Ref" : "ALBTargetGroup" }
    }],
    "LoadBalancerArn" : { "Ref" : "ApplicationLoadBalancer" },
    "Port" : "80",
    "Protocol" : "HTTP"
  }
},

"ALBTargetGroup" : {
  "Type" : "AWS::ElasticLoadBalancingV2::TargetGroup",
  "Properties" : {
    "HealthCheckPath" : "/wordpress/wp-admin/install.php",  
    "HealthCheckIntervalSeconds" : 10,
    "HealthCheckTimeoutSeconds" : 5,
    "HealthyThresholdCount" : 2,
    "Port" : 80,
    "Protocol" : "HTTP",
    "UnhealthyThresholdCount" : 5,
    "VpcId" : {"Ref" : "VpcId"},       
    "TargetGroupAttributes" :
      [ { "Key" : "stickiness.enabled", "Value" : "true" },
        { "Key" : "stickiness.type", "Value" : "lb_cookie" },
        { "Key" : "stickiness.lb_cookie.duration_seconds", "Value" : "30" }
    ]
  }
},

"WebServerSecurityGroup" : {
  "Type" : "AWS::EC2::SecurityGroup",
  "Properties" : {
    "GroupDescription" : "Enable HTTP access via port 80 locked down to the load balancer + SSH access",
    "SecurityGroupIngress" : [
      {"IpProtocol" : "tcp", "FromPort" : "80", "ToPort" : "80", "SourceSecurityGroupId" : {"Fn::Select" : [0, {"Fn::GetAtt" : ["ApplicationLoadBalancer", "SecurityGroups"]}]}},
      {"IpProtocol" : "tcp", "FromPort" : "22", "ToPort" : "22", "CidrIp" : { "Ref" : "SSHLocation"}}
    ],
    "VpcId" : { "Ref" : "VpcId" }
  }
},

"WebServerGroup" : {
  "Type" : "AWS::AutoScaling::AutoScalingGroup",
  "Properties" : {
    "VPCZoneIdentifier" : { "Ref" : "Subnets" },
    "LaunchConfigurationName" : { "Ref" : "LaunchConfig" },
    "MinSize" : "1",
    "MaxSize" : "5",
    "DesiredCapacity" : { "Ref" : "WebServerCapacity" },
    "TargetGroupARNs" : [ { "Ref" : "ALBTargetGroup" } ]
  },
  "CreationPolicy" : {
    "ResourceSignal" : {
      "Timeout" : "PT15M"
    }
  },
  "UpdatePolicy": {
    "AutoScalingRollingUpdate": {
      "MinInstancesInService": "1",
      "MaxBatchSize": "1",
      "PauseTime" : "PT15M",
      "WaitOnResourceSignals": "true"
    }
  }
},

"LaunchConfig": {
  "Type" : "AWS::AutoScaling::LaunchConfiguration",
  "Metadata" : {
    "AWS::CloudFormation::Init" : {
      "configSets" : {
        "wordpress_install" : ["install_cfn", "install_wordpress" ]
      },
      "install_cfn" : {
        "files": {
          "/etc/cfn/cfn-hup.conf": {
            "content": { "Fn::Join": [ "", [
              "[main]\n",
              "stack=", { "Ref": "AWS::StackId" }, "\n",
              "region=", { "Ref": "AWS::Region" }, "\n"
            ]]},
            "mode"  : "000400",
            "owner" : "root",
            "group" : "root"
          },
          "/etc/cfn/hooks.d/cfn-auto-reloader.conf": {
            "content": { "Fn::Join": [ "", [
              "[cfn-auto-reloader-hook]\n",
              "triggers=post.update\n",
              "path=Resources.LaunchConfig.Metadata.AWS::CloudFormation::Init\n",
              "action=/opt/aws/bin/cfn-init -v ",
                      "         --stack ", { "Ref" : "AWS::StackName" },
                      "         --resource LaunchConfig ",
                      "         --configsets wordpress_install ",
                      "         --region ", { "Ref" : "AWS::Region" }, "\n"
            ]]},          
            "mode"  : "000400",
            "owner" : "root",
            "group" : "root"
          }
        },
        "services" : {
          "sysvinit" : {
            "cfn-hup" : { "enabled" : "true", "ensureRunning" : "true",
                          "files" : ["/etc/cfn/cfn-hup.conf", "/etc/cfn/hooks.d/cfn-auto-reloader.conf"]}
          }
        }
      },

      "install_wordpress" : {
        "packages" : {
          "yum" : {
            "php"       : [],
            "php-mysql" : [],
            "mysql"     : [],
            "httpd"     : []
          }
        },
        "sources" : {
          "/var/www/html" : "http://wordpress.org/latest.tar.gz"
        },
        "files" : {
          "/tmp/create-wp-config" : {
            "content" : { "Fn::Join" : [ "", [
              "#!/bin/bash\n",
              "cp /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php\n",
              "sed -i \"s/'database_name_here'/'",{ "Ref" : "DBName" }, "'/g\" wp-config.php\n",
              "sed -i \"s/'username_here'/'",{ "Ref" : "DBUser" }, "'/g\" wp-config.php\n",
              "sed -i \"s/'password_here'/'",{ "Ref" : "DBPassword" }, "'/g\" wp-config.php\n",
              "sed -i \"s/'localhost'/'",{ "Fn::GetAtt" : [ "DBInstance", "Endpoint.Address" ] }, "'/g\" wp-config.php\n"
            ]]},
            "mode" : "000500",
            "owner" : "root",
            "group" : "root"
          }
        },
        "commands" : {
          "01_configure_wordpress" : {
            "command" : "/tmp/create-wp-config",
            "cwd" : "/var/www/html/wordpress"
          }
        },
        "services" : {
          "sysvinit" : {
            "httpd" : { "enabled" : "true", "ensureRunning" : "true" }
          }
        }
      }
    }
  },
  "Properties": {
    "ImageId" : { "Fn::FindInMap" : [ "AWSRegionArch2AMI", { "Ref" : "AWS::Region" },
                      { "Fn::FindInMap" : [ "AWSInstanceType2Arch", { "Ref" : "InstanceType" }, "Arch" ] } ] },
    "InstanceType"   : { "Ref" : "InstanceType" },
    "SecurityGroups" : [ {"Ref" : "WebServerSecurityGroup"} ],
    "KeyName"        : { "Ref" : "KeyName" },
    "UserData" : { "Fn::Base64" : { "Fn::Join" : ["", [
                   "#!/bin/bash -xe\n",
                   "yum update -y aws-cfn-bootstrap\n",

                   "/opt/aws/bin/cfn-init -v ",
                   "         --stack ", { "Ref" : "AWS::StackName" },
                   "         --resource LaunchConfig ",
                   "         --configsets wordpress_install ",
                   "         --region ", { "Ref" : "AWS::Region" }, "\n",

                   "/opt/aws/bin/cfn-signal -e $? ",
                   "         --stack ", { "Ref" : "AWS::StackName" },
                   "         --resource WebServerGroup ",
                   "         --region ", { "Ref" : "AWS::Region" }, "\n"
    ]]}}
  }
},

"DBEC2SecurityGroup": {
  "Type": "AWS::EC2::SecurityGroup",
  "Properties" : {
    "GroupDescription": "Open database for access",
    "SecurityGroupIngress" : [{
    "IpProtocol" : "tcp",
    "FromPort" : "3306",
    "ToPort" : "3306",
    "SourceSecurityGroupId" : { "Ref" : "WebServerSecurityGroup" }
    }],
    "VpcId" : { "Ref" : "VpcId" }
  }
},

"DBInstance" : {
  "Type": "AWS::RDS::DBInstance",
  "Properties": {
    "DBName"            : { "Ref" : "DBName" },
    "Engine"            : "MySQL",
    "MultiAZ"           : { "Ref": "MultiAZDatabase" },
    "MasterUsername"    : { "Ref" : "DBUser" },
    "MasterUserPassword": { "Ref" : "DBPassword" },
    "DBInstanceClass"   : { "Ref" : "DBClass" },
    "AllocatedStorage"  : { "Ref" : "DBAllocatedStorage" },
    "VPCSecurityGroups" : [{ "Fn::GetAtt": [ "DBEC2SecurityGroup", "GroupId" ]}]
  }
}

},

“Outputs” : {
“WebsiteURL” : {
“Value” : { “Fn::Join” : ["", [“http://”, { “Fn::GetAtt” : [ “ApplicationLoadBalancer”, “DNSName” ]}, “/wordpress” ]]},
“Description” : “WordPress Website”
}
}
}

En una comparativa de costos, el plan más económico de Lightsail ofrece por $3.50 1 TB de transferencia mientras que la misma capacidad en EC2 puede salir por más de $90

Tienes una IP estática asignada a ti.(Al momento de reiniciar la instancia la IP publica varia, por lo tanto debes configurar la IP estática).

Excelente componente!

Podre usar Lightsail para publicar un servicio de correo y pagina basado en la caracteristica del precio mas barato ¿? lo digo porque mirando los precios es mas barato que alquilar en un proveedor de servicios de hosting.

interesante los precios ofrecidos . amazon siempre rompiendola con sus precios

Es un excelente servicio para aplicaciones de bajo recursos pero que requiera mayor transferencia

Esto es lo que te ofrece Lightsail:

El costo de los CPUs depende del número que elijas.
Tienes almacenamiento SSD.
Te ofrece Networking y transferencia de datos.
Incluye manejo de DNS.
Tienes una IP estática asignada a ti.
Tienes acceso a otros servicios de AWS

Excelente información!!