Comunidad de diseño web y desarrollo en internet online

Mi primera aplicación en AWS Amazon Web Services

Citar            
MensajeEscrito el 16 Feb 2014 12:17 am
Este es mi primer tutorial, soy nuevo en esto de los blogs y tutoriales pero llevo un buen tiempo desarrollando. Me especializo en PHP con el framework Symfony2 y desde que inicie a aprender cosas como esta, me he tomado el trabajo de "documentar" (Hacer un paso a paso) todo lo que hago, y lo tengo como un repositorio en GitHub (https://github.com/DMalagonH), pero nunca lo he compartido con nadie. He decidido unirme a Cristalab un publicar todos mis conocimientos esperando crecer y ayudar a los demás.

En fin, este primer tutorial es de cómo montar una aplicación PHP en los servicios web de Amazon. Todo lo que está descrito aquí es lo que he hecho y me ha funcionado, tal vez no sea la mejor forma, como puede que si, la idea es mostrarles lo que sé y me corrijan si me equivoco. Se ve un poco largo pero así mismo esta completo con los servicios básicos que debemos usar en Amazon y es tal cual lo he hecho y me ha funcionado.

Para registrarnos en AWS debemos además de los datos personales ingresar datos de una tarjeta de crédito de la cual nos irán descontando a medida que vamos usando los servicios de AWS. (Este proceso no lo he hecho puesto que la cuenta que administro es de la empresa donde trabajo). Aunque AWS provee una capa gratuita cuando iniciamos pueden haber algunos costos que no superan los 3 dolares mensuales, sin embargo, hay que leer muy bien la abundante documentación (disponible en ingles y español) sobre los costos para después no llevarnos un susto con la cuenta.

Primero que todo en AWS todo se denomina instancias, es decir, si queremos crear un servidor para determinada función lo diríamos como: crear una instancia de un servicio de servidor web o de base de datos, etc.

Amazon Elastic Compute Cloud EC2


Lo primero es crear nuestro servidor web (Instancia EC2, Elastic Cloud) que es un servidor virtual en la nube. Esta lista de pasos contempla la creación de un servidor con Ubuntu 12.04 para una aplicación PHP.

amazon escribió:

Amazon Elastic Compute Cloud (Amazon EC2) es un servicio web que proporciona capacidad informática con tamaño modificable en la nube. Está diseñado para facilitar a los desarrolladores recursos informáticos escalables basados en web.


Cómo crear una instancia EC2


Ingresa a EC2, selecciona la región donde se creará la instancia (ej. N. virgina). Luego ingresa a launch instance y selecciona el sistema operativo (ej. ubuntu server).

Selecciona el tipo de instancia (ej. micro - porque hace parte de la capa gratuita).

Configurar la instancia
* Asignar tamaño de volumen storage
* Crear y asignar grupo de seguridad para la instancia
* Agregar las siguientes reglas al grupo de seguridad
* SSH con puerto 22 con acceso a la ip del equipo de desarrollo (MY IP)
* HTTP con puerto 80 con acceso a toda ip (Anywhere)
* Lanzar la instancia
* Crear una key pair en el modalbox que aparece
* Descargar y guardar en un lugar seguro el archivo .pem (Esta es la llave de acceso al servidor)
* Finalizar

Conectarse al servidor


* Seleccionar la instancia en la lista de instancias
* Dar nombre a la instancia
* Crear Eslastic IP y asignarla a la instancia
* Verificar en los detalles que la instancia tenga una ip publica y/o elastic ip
* Ir a Connect (Aca se mostrará como conectarse a la instancia de diferentes formas)
* Dar permisos de solo lectura a la key pair
chmod 400 my_key_pair.pem
* En la consola ingresar la siguiente linea:
ssh -i my_key_pair.pem ubuntu@<elastic_ip>
* Se preguntará si desea agregar a la lista de host seguros, damos yes
* En este momento ya se debe estar conectado al servidor

Configuración inicial del servidor


* Instalar lamp server

Código :

sudo apt-get install tasksel
sudo aptitude update
sudo tasksel


Seleccionar lampp server con la tecla espacio y aceptar. Luego comprueba el funcionamiento ingresando la IP en el navegador.

Vamos a instalar las siguientes extensiones de PHP:

Código :

sudo apt-get install php5-dev
sudo apt-get install php-pear
sudo apt-get install php5-json
sudo apt-get install php5-curl
sudo apt-get install php5-intl
sudo apt-get install php5-gd
sudo apt-get install php-apc


Le agregamos las siguientes líneas a php.ini:

Código :

extension=apc.so
apc.apc.stat = 0
apc.include_once_override = 1
apc.shm_size = 64M


Procedemos a habilitar mod_rewrite (En la configuración por defecto de apache está deshabilitado)

Código :

sudo a2enmod rewrite


Y reiniciamos Apache

Código :

sudo service apache2 restart


Instalar GIT


Código :

sudo apt-get install git-core


Creacion de volumen EBS para almacenamiento


(https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-using-volumes.html)

Este punto no es tan obligatorio, pero considero que es bueno tener la aplicación en un volumen diferente al volumen donde esta el sistema operativo, además, cuando se de la necesidad de crear otra instancia EC2 diferente, simplemente montamos el volumen donde está el código fuente en la nueva instancia y listo!

* Crear volumen EBS en la misma zona de la instancia EC2
* especificar el nombre del dispositivo /dev/sdf (default)
* Seleccione el volumen creado y seleccione attach volumen y seleccione la instancia EC2
* Conectarce a la instancia con ssh
* ejecutar la siguiente linea para ver los volumenes adjunatos a la instancia
* lsblk
* deben aparecer 2 volumenes root y el volumen que creamos (para el que el MOUNTPOINT aparece como / es root, el otro es el nuestro)
* Verificar el nombre del volumen que creamos (xvdf en caso de ubuntu)
* Con este nombre ya sabemos que el volumen esta montado en /dev/xvdf (la salida de lsblk quita el prefijo /dev por ello debemos tenerla en cuenta)
* Dar formato al volumen
* Verificar el file system con la linea: sudo file -s /dev/xvdf
* Si el resultado es "data" ejecutar la siguiente linea (en otro caso no es necesario y puede borrar la información que exista):
* sudo mkfs -t ext4 /dev/xvdf
* Crear punto de montaje (ubicación de acceso a través del sistema de archivos)
* sudo mkdir /vol (crear carpeta donde se montará el volumen)
* sudo mount /dev/xvdf /vol (Montar volumen en la carpeta)
* Agregar volumen al archivo de arranque del sistema
* Crear copia de seguridad:
sudo cp /etc/fstab /etc/fstab.orig
* Abrir archivo
sudo vim /etc/fstab
* Agregar la siguiente linea al final del archivo
/dev/xvdf /vol ext4 defaults 0 2
* Guardar cambios
* Verificar que no hallan errores (si hay errores deben corregirse o si no el sistema puede no arrancar cuando se apague)
sudo mount -a

Configurar host para la aplicación



En caso de querer almacenar más de una aplicación en el servidor se deben usar virtualHost para esto, pero si es solo una con esto basta:

* Crear copia de seguridad del sitio por defecto de apache
sudo cp /etc/apache2/sites-availables/default /etc/apache2/sites-available/default.orig
* Agregar
ServerName midominio.com (o localhost para acceder con la ip unicamente)
* Editar la dirección de correo en ServerAdmin
* Editar DocumentRoot
DocumentRoot /vol (si el proyecto se encuentra en otra carpeta dentro de /vol se puede indicar la ruta completa)
* Reemplazar:
<Directory /var/www/>
por
<Directory /vol/> (si el proyecto se encuentra en otra carpeta dentro de /vol se puede indicar la ruta completa)
* sudo service apache2 restart

RDS

RDS es el servicio para bases de datos relacionales como MySQL. RDS significa Relational Database Service

Crear instancia RDS



* Launch DB Instance
* Seleccionar MySQL
* No usar Multi-AZ Deployment (seleccinarlo puede generar costos adicionales)
* Seleccionar la version 5.5.31 (5.6.x no soporta current_timestamp)
* Seleccionar tipo de instancia micro
* Seleccionar 5GB en allocated storage
* Ingresar los identificadores para acceder a la base de datos
DB Instance Identifier
Master Username
Master Password
* Ingresar el nombre de la base de datos y dejar los demas datos por defecto
* Seleccionar el mismo grupo de seguridad de la instancia EC2
* Programar backups
* Lanzar instancia
* Agregar el permiso para mysql al grupo de seguridad que se selecciono
* Hacer click sobre el nombre del grupo en los detalles de la instancia EC2
* Seleccionar el grupo e ir a la pestaña inbound
* Seleccionar MYSQL y escoger las ip de acceso (0.0.0.0/0 es acceso desde cualquier ip)
* Para conectarse al servidor de base de datos se usa el endpoint de la instancia y el usuario y contraseña que se registraron en la creación

SES

En la mayoría de aplicaciones web necesitamos enviar correos, para esto esta el servicio SES Simple Email Service.

Configurar SES



* Ir a SMTP Settings y dar click en "Create My SMTP Credentials"
* Crear usuario (IAM) para uso de SES
* Descargar las credenciales (Estas credenciales no se pueden consultar despues, si se pierden debera crearse un nuevo IAM)
* Ir a Email Addresses y agregar un correo real desde donde se realizarán los envíos en la aplicación (ej. no_reply@midominio.com)
* Pueden enviarse correos de prueba entre las direcciones de correo registradas
* Para poder usar SES en producción debe enviarse la peticion de acceso a producción
* Click en Request Production Access
* Seleccionar Service Limit Increase
* Seleccionar SES Production Access
* Seleccionar la region
* Marcar todas las opciones en Pre-Production Checklist
* Ingresar una descripción de solicitud de apertura del servicio en ingles
* Ingresar la información solicitada del administrador de la cuenta Amazon
* Para conectarse al servidor se usa el ServerName, Username y Password del archivo descargado

Espero hacerme entender con estos paso a paso, cuando los hice no pensé en hacerlos públicos, con el tiempo los haré mas gráficos y entendibles, sin embargo estoy abierto a cualquier sugerencia o pregunta.

Por DMalagonH

1 de clabLevel



Genero:Masculino  

Desarrollo web

chrome
Citar            
MensajeEscrito el 20 Feb 2014 01:11 am
hola DMalagonH, bienvenido a cristalab. Estoy a cargo de la edicion de tutoriales. El tema es super, solo le faltan algunas capturas de pantallas a algunos procesos que mencionas en lista de items. Sera que podriamos agregarle algunas pantallas, acompañadas de los items que ya pusiste?

Como consejos que podes tomar en cuenta, trata de crear parrafos redactados de los procesos. Si bien son procesos tecnicos esta bueno unirlos en una oracion, total despues mostras las pantallas o el codigo. Fijate arriba en el post como edite algunos items y los converti en parrafo. Recuerda que escribis para que te entiendan.

Usa los H2, H3, H4, etc para titulos y subtitulos en vez de SIZE. y cuando postees codigo, en el editor tenes un listado de etiquetas para usar de acuerdo al lenguaje. Aprovecha las etiquetas para que el tutorial sea bien legible.

Cualquier cosa me consultas!!!

Por Mariux

BOFH

7761 de clabLevel

28 tutoriales
15 articulos

Genero:Femenino   Héroes Editores

Diseñadora & ilustradora

chrome
Citar            
MensajeEscrito el 25 Feb 2014 07:05 pm
Muchas gracias Maurix, voy a realizar los cambios que me dice. Gracias!

Por DMalagonH

1 de clabLevel



Genero:Masculino  

Desarrollo web

chrome
Citar            
MensajeEscrito el 25 Feb 2014 07:47 pm

DMalagonH escribió:

Muchas gracias Maurix, voy a realizar los cambios que me dice. Gracias!

gracias! cualquier cosa me consultas!

Por Mariux

BOFH

7761 de clabLevel

28 tutoriales
15 articulos

Genero:Femenino   Héroes Editores

Diseñadora & ilustradora

chrome
Citar            
MensajeEscrito el 02 Jun 2018 01:34 am
mt20180602
adidas campus
yeezy boost
pandora charms
salvatore ferragamo
pandora outlet
canada goose jackets
rolex watches
moncler outlet
ralph lauren outlet
birkenstock sandals
canada goose jackets
mcm outlet
pandora charms sale
nike air force 1
tory burch outlet
versace handbags
adidas yeezy boost
fitflops
canada goose sale
cheap nike air max
michael kors outlet online
cole haan shoes
ysl handbags
coach outlet
coach outlet store
adidas outlet
north face jackets
nike basketball shoes
air max 2017
timberland outlet
air more uptempo
bally handbags
merrell shoes
kobe shoes
caterpillar boots
kate spade
mbt
michael kors outlet
yeezy boost
kate spade outlet
adidas superstar
red wing shoes
moncler jackets
vans store
jimmy choo
birkenstocks
toms outlet
harry winston jewelry
moncler jackets
coach outlet store
coach outlet
pandora outlet
mammut boots
arcteryx boots
coach outlet
michael kors outlet clearance
ugg boots
nike cortez
ralph lauren outlet
pandora store
nike free 4.0
michael kors outlet
lebron james shoes
van cleef and arpels jewelry
nike air max
kate spade outlet store
coach factory outlet
michael kors outlet canada
fitflops sale
cheap jordans for sale
red bottoms
supreme clothing
salomon shoes
michael kors outlet online
keen sandals
mulberry bags
canada goose outlet
louis vuitton
moncler jackets
birkenstock outlet
cheap oakley sunglasses
hermes handbags
nike air max
coach outlet store
yeezy boost 350
dansko shoes
birkenstock
nike air foamposite
michael kors outlet
air jordans
polo ralph lauren outlet online
jordans
nike shoes
louis vuitton
coach factorty outlet
jimmy choo outlet
nike air max outlet
michael kors outlet
salewa shoes
jordan shoes
kate spade
ugg outlet
skechers shoes
wolverine boots
polo outlet store
kate spade outlet
salvatore ferragamo shoes
michael kors outlet
coach outlet
fendi handbags
cheap nfl jerseys
tiffany outlet
michael kors outlet
nike shoes
louis vuitton outlet online
michael kors outlet
pandora jewelry outlet
coach outlet canada
kate spade
swarovski crystal
hermes birkin
ugg boots
ralph lauren outlet
canada goose outlet
burberry outlet
pandora jewelry
polo ralph lauren
polo ralph lauren outlet
pandora jewelry
florsheim shoes
ralph lauren
canada goose
adidas shoes
kevin durant shoes
canada goose jackets
michael kors outlet clearance
cheap jordan shoes
coach outlet
nike outlet
abercrombie
birkenstock sandals
coach outlet
nike outlet
nike air max
coach outlet
louis vuitton outlet
cheap ray ban sunglasses
air max 2019
nike huarache
discount oakley sunglasses
louis vuitton handbags
ecco shoes for men
mulberry handbags
nike outlet online
moncler jackets
nmd adidas
polo ralph lauren outlet online
oakley sunglasses
coach outlet
cartier outlet
louboutin shoes
coach factory outlet
michael kors outlet clearance
ugg outlet
oakley sunglasses
columbia shoes
canada goose jackets
valentino shoes
ralph lauren outlet online
puma rihanna shoes
coach outlet
nike air max axis
adidas yeezy
polo ralph lauren outlet
philipp plein shirt
asics shoes
kyrie 4 shoes
nike air presto
ralph lauren outlet
pandora charms sale clearance
timberland boots outlet
abercrombie and fitch
north face jackets
christian louboutin shoes
polo outlet
coach outlet
ralph lauren sale clearance
pandora outlet
valentino shoes
michael kors outlet clearance
ralph lauren outlet
prada outlet
ferragamo shoes
pandora charms
coach factory outlet
nike zoom
coach factory outlet online
kobe bryant shoes
coach factory outlet
pandora charms
nike air max 87
mbt shoes
givenchy outlet
nike epic react flyknit
pandora jewelry
kate spade outlet store
saint laurent outlet
ray ban sunglasses
oakley sunglasses outlet
columbia sportswear
nike outlet
salvatore ferragamo shoes
coach outlet
adidas shoes
asics outlet
pandora jewelry
canada goose uk
coach factory outlet
reebok shoes
johnston and murphy outlet
rolex watches
christian louboutin outlet
new balance outlet
pandora charms
uggs
coach outlet
prada handbags
mont blanc pens
birkenstock outlet
ray ban sunglasses discount
nike air max 270
michael kors outlet
givenchy handbags
louis vuitton outlet online
hermes bags
jordan retro
ultra boost
harden vol 1
red wing outlet
kate spade handbag
canada goose outlet
michael kors outlet
puma shoes
cheap jordans
cheap jordans
dolce and gabbana handbags
converse outlet store
the frye company shoes
nba jerseys
kate spade handbags
michael kors outlet canada
cheap jordans free shipping
cheap jordans
pandora jewelry official site
armani exchange outlet
yeezy boost
jordan shoes
yeezy 350 boost
allen edmonds shoes
canada goose jackets
air max 97
jordan retro 11
nike tessen
hermes handbags
mulberry uk
air max 2018
coach outlet
louboutin shoes
toms shoes
ugg boots
mcm handbags
chch handbags
cheap oakley sunglasses
nike air max shoes
nike air max 1
nike air max zero
prana clothing
mont blanc
coach factory outlet
adidas yeezy
tiffany and co
tory burch outlet online
michael kors outlet
garmont boots
fitflops
pandora jewelry
saint laurent handbags
kate spade handbags
nike outlet
ralph lauren uk
coach outlet store
moncler outlet
adidas yeezy boost
adidas nmd shoes
underarmour shoes
coach factory outlet
oakley sunglasses
nike air max 95
supreme clothing
michael kors outlet
ugg boots on sale
kate spade outlet
oakey sunglasses
canada goose outlet
adidas yeezy
christian louboutin outlet
tiffany and co
coach outlet online
pandora charms
kate spade bags
ecco outlet
coach outlet
canada goose jackets
ralph lauren outlet
converse shoes
birkenstock sandals
cheap oakley sunglasses
louis vuitton outlet store
ecco shoes
coach outlet store
oakley sunglasses
michael kors handbags
cheap nba jerseys
dr martens
coach outlet store online
coach factory outlet
pg 2
jordans
ugg outlet
converse all star
nike shoes for men
uggs
pandora jewelry official site
adidas yeezy boost
vionic sandals
cheap ray bans
coach factorty outlet
mikimoto pearls
pandora jewelry
dior handbags
ralph lauren outlet
adidas shoes
red bottoms shoes
jordan shoes
coach factorty outlet
canada goose sale
canada goose outlet
birkenstock sandals
michael kors factory outlet
canada goose outlet
christian louboutin
red bottom shoes
michael kors outlet
christian louboutin
michael kors outlet clearance
timberland outlet
tory burch outlet
canada goose outlet
mlb jerseys
christian louboutin outlet
nike cortez
adidas yeezy
adidas nmd
pandora outlet
birkenstock shoes
dr martens outlet
pandora jewelry
coach outlet
teva sandals
moncler outlet
coach outlet online
cheap mlb jerseys
longchamp outlet online
nike shoes
vasque boots
coach outlet
polo ralph lauren outlet online
cheap mlb jerseys
birkenstock shoes
yeezy boost
timberland outlet
ugg australia
tory burch outlet
burberry outlet
canada goose
canada goose outlet
cheap nfl jerseys
nike react shoes
replica watches
michael kors outlet online
longchamp outlet
cheap jordans
uggs outlet
chopard watches
lacoste polo shirts
louis vuitton outlet
ray ban sunglasses discount
moncler outlet
supra shoes
canada goose sale
adidas outlet
fitflops
fitflops sale clearance
ray ban sunglasses
north face outlet
michael kors
canada goose outlet
michael kors handbags
fred perry polo
fitflops sale
air max 97
cheap mlb jerseys china
ralph lauren uk
givenchy handbags
polo ralph lauren outlet
canada goose outlet
hermes handbags
moncler outlet
salvatore ferragamo
fred perry
moncler
timberland boots
danner boots
adidas originals
canada goose outlet
coach factory outlet online
coach outlet store
coach factory outlet
pandora jewelry outlet
kenneth cole shoes
adidas stan smith
jordan shoes
swarovski outlet
michael kors
coach outlet
dr martens boots
kate spade outlet store
asolo boots
timberland boots
michael kors outlet
coach outlet
polo outlet
coach outlet
air jordan shoes
adidas nmd
philipp plein outlet
supra shoes
pandora jewelry
coach factory outlet
cole haan outlet
michael kors outlet online
ralph lauren sale
adidas yeezy
adidas shoes
coach outlet
coach factory outlet
coach canada
ugg outlet
salvatore ferragamo shoes
nike store
ysl outlet
coach outlet online
nike shox
toms outlet
moncler coats
gucci outlet
air jordans
ecco shoes
ugg boots on sale
jordan shoes
john lobb boot maker shoes
nike dunks
oakley sunglasses
fitflops sale clearance
coach factory outlet
ray ban sunglasses
kate spade outlet
adidas shoes
nike huarache
unomagli shoes
hermens bags
ralph lauren
vasque shoes
reef sandals
mulberry outlet
coach factory outlet
tory burch outlet store
canada goose uk
michael kors outlet
pandora charms sale clearance
adidas nmd
nike outlet online
vans shoes
pandora charms
pandora charms
nike free run
cheap jordans
coach outlet
uggs canada
ralph lauren outlet
manolo blahnik shoes
gap polo shirts
ray ban sunglasses
pandora jewelry
coach outlet
coach outlet
mbt shoes
berluti shoes
valentino shoes outlet
coach outlet store
jordan shoes
coach outlet store online clearances
supreme clothing
nike air more money
nike zoom
adidas shoes
dooney and bourke handbags
adidas
coach factorty outlet
ecco shoes
pandora charms
timberland boots
nike outlet store
cheap uggs
keen shoes
uggs outlet
adidas outlet
teva shoes
nike shoes
ralph lauren
pandora
adidas superstar
moncler jackets
nike shoes
air max 2018
uggs
ferragamo outlet
kate spade outlet
oakley sunglasses
nfl jerseys wholesale
louboutin shoes
yeezy boost
pandora charms sale clearance
pandora jewelry
michael kors outlet
michael kors outlet canada
ugg outlet
moncler outlet
coach factory outlet
air max 90
lowa boots
salomon shoes
timberland boots
alden shoes
moncler jackets outlet
fitflops sale clearance
ralph lauren sale clearance
new balance shoes
hermes outlet
supreme new york
coach outlet
jimmy choo outlet
naot sandals
ralph lauren sale clearance
coach outlet
air jordan shoes
fitflops
pandora jewelry
fitflops
canada goose jackets uk
mt20180602

Por leilei3915

Claber

161 de clabLevel



 

chrome

   Página 1 de 1

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.