Instalación de SemanticWebBuilder 4AWSCloud CURSO: Especiales CREACIÓN Y ADMINISTRACIÓN DE PAGINAS WEB Instalación de SemanticWebBuilder AWS Cloud Curso: Manuales especiales Fondo de Información y Documentación para la Industria Av. San Fernando #37 Col. Toriello Guerra Del. Tlalpan México DF El Copyright y las Marcas registradas INFOTEC WebBuilder, SemanticWebBuilder, el personaje Semius y demás logotipos, emblemas y características distintivas, así como elementos relacionados son propiedad de INFOTEC Fondo de Información y Documentación para la Industria, Centro de Investigación CONACYT. Reservados todos los derechos. Queda estrictamente prohibido bajo las sanciones establecidas en las leyes, la reproducción parcial o total de esta obra por cualquier medio o procedimiento de alquiler o préstamos públicos de ejemplares de la misma, sin la autorización escrita de INFOTEC Fondo de Información y Documentación para la Industria, Centro de Investigación CONACYT. Instalación de SemanticWebBuilder 4 AWS Cloud Prologo SemanticWebBuilder (SWB) es una plataforma tecnológica desarrollada en INFOTEC, un Centro de Investigación y Desarrollo Tecnológico del CONACYT, por lo que es un producto hecho en México y por mexicanos que tiene como propósito principal el brindar los elementos y utilerías necesarias para permitir una construcción rápida y simple de Sitios y Portales Web Semánticos, así como desarrollo de aplicaciones con características semánticas. La idea principal de aplicar Semántica a los Sitios y Portales Web o mejor dicho incorporarle Semántica a Internet, es permitir que la información pueda ser definida con un significado específico, de forma que conforme se le van incorporando descripciones y propiedades a cada elemento de información este pueda tener más aspectos que lo distingan de los demás y lo puedan identificar mejor, logrando con ello que pueda ser fácilmente consultado, interpretado y procesado ya sea por personas o incluso por otras aplicaciones y sistemas, es decir por maquinas. Esta característica de la semántica que hace que la información tenga un mayor significado y en consecuencia sea fácilmente consultada por personas o sistemas, implica que el intercambio e integración de información sea de forma más natural sin importar el lugar físico donde se encuentre la información o la forma en que haya sido procesada originalmente. Esto implica que podremos realizar una consulta de información y la respuesta será más completa y adecuada a nuestro criterio de búsqueda, pues la fuente de consulta podrá ser leída, interpretada e integrada a partir de la información publicada por diferentes organizaciones, a múltiples niveles técnicos y/o humanos, permitiendo con ello obtener información más completa y adecuada a los requerimientos específicos de cada usuario en la red. Fecha de Elaboración: Enero 2013. INFOTEC CONACYT FIDEICOMISO. i Instalación de SemanticWebBuilder 4 AWS Cloud Fecha de Elaboración: Enero 2013. INFOTEC CONACYT FIDEICOMISO. ii Instalación de SemanticWebBuilder 4 AWS Cloud Índice de Contenidos Prologo .......................................................................................................................................... i Índice de Contenidos ................................................................................................................... iii Acerca de este manual ................................................................................................................ iv Objetivos...................................................................................................................................... iv Convenciones usadas en este manual ......................................................................................... v Calibri 14 color Azul Énfasis Negrita, es utilizada para los títulos de tema ................................... vi Calibri 12 color Azul Énfasis 1 negrita ...................................................................................... vi Comenzando a trabajar… ........................................................................................................... vii Instalación de SemanticWebBuilder 4 AWS® Cloud ..................................................................... 1 SemanticWebBuilder 4 AWS® Cloud ........................................................................................ 1 Arquitectura de SWB4Cloud...................................................................................................... 1 Instalación de la instancia de Administración ............................................................................ 3 Configuración de la consola Amazon EC2 (Elastic Compute Cloud) ............................................. 4 Security Groups ........................................................................................................................ 5 SG01 ......................................................................................................................................... 6 SG02 ......................................................................................................................................... 6 SG03 ......................................................................................................................................... 6 KeyPair ..................................................................................................................................... 7 Instance .................................................................................................................................... 8 Configurando la instancia ........................................................................................................... 15 Requerimientos Previos .......................................................................................................... 15 Configurando la Base de datos ............................................................................................... 16 Configurando el servidor de aplicaciones (Tomcat) ................................................................. 18 Configurando el NFS ............................................................................................................... 20 Configurando la base de datos de SWB .................................................................................. 21 Configurando el ambiente de SWB ......................................................................................... 22 Fecha de Elaboración: Enero 2013. INFOTEC CONACYT FIDEICOMISO. iii Instalación de SemanticWebBuilder 4 AWS Cloud Acerca de este manual Este manual fue realizado con el objetivo de explicar el conocimiento mínimo necesario para realizar correctamente la instalación de SemanticWebBuilder4 AWS Cloud en una infraestructura de Amazon Web Services (AWS) Indicándole además los pasos necesarios para configurar una instancia en AWS y aprovechar la capacidad de SWB para poder desplegarse en ambientes en cluster y balanceo de cargas Objetivos General: Al finalizar el curso el alumno usará una instancia de SWB en la nube con la infraestructura de Amazon Web Services (AWS) y podrá lanzar instancia espejo Específicos: Al finalizar el tema de Instalación de SemanticWebBuilder4AWSCloud el alumno será capaz de construir y adecuar ambientes en cluster y balanceo, así como administrarlos Fecha de Elaboración: Enero 2013. INFOTEC CONACYT FIDEICOMISO. iv Instalación de SemanticWebBuilder 4 AWS Cloud Convenciones usadas en este manual Las siguientes convenciones son utilizadas en este manual para representar diferentes elementos de capacitación y recursos alternativos de aprendizaje: Iconos Sabías Que – Indica comentarios al margen en los que se extenderá el tema expuesto mediante recomendaciones o tips que mejoren el aprovechamiento de la herramienta Consideraciones Importantes – Exponen puntos importantes que deben tenerse en cuenta para la correcta operación de las utilerías. Nota – Indica Información adicional que puede ayudarle a aprovechar mejor la funcionalidad expuesta. Referencia – Indica la necesidad de consultar otro documento o dirección Web en donde se encontrará mayor información sobre el tema expuesto. Procedimiento Guiado – Indica que se comenzara la descripción paso a paso de la operación de un proceso. Ejercicio Guiado – A partir de este punto se comenzará la ejecución de un ejercicio que deberá realizar el usuario de manera guiada paso a paso con el manual. Resultado – Expone el efecto final correcto de una operación o procedimiento. Diagnostico – Por características de la tecnología involucrada, se generan resultados no deseados. Aquí se indicara como resolverlo. Improcedente – Indica situaciones tecnológicas en las que no es posible realizar una operación o que requiere de algún proceso alterno para obtener el resultado deseado. Cuidado – Indica que existe alguna información restringida o con derechos reservados. Fecha de Elaboración: Enero 2013. INFOTEC CONACYT FIDEICOMISO. v Instalación de SemanticWebBuilder 4 AWS Cloud Convenciones Tipográficas Arial 26 Negrita, es utilizada como título de tema Calibri 14 color Azul Énfasis Negrita, es utilizada para los títulos de tema Calibri 12 color Azul Énfasis 1 negrita, es utilizada para destacar subtemas Arial 11, es utilizada como fuente principal para el cuerpo del texto <Times New Roman 11> es utilizada para descripción de configuraciones o código Arial 10 negrita color azul con recuadro y sombreado azul indica temas a resaltar y/o puntos importante en los que el lector debe prestar especial atención Arial 10 en color azul con recuadro azul y sombreado azul, se utiliza para denotar puntos importantes en los que el lector debe prestar atención especial Fecha de Elaboración: Enero 2013. INFOTEC CONACYT FIDEICOMISO. vi Instalación de SemanticWebBuilder 4 AWS Cloud Comenzando a trabajar… Instalación de SemanticWebBuilder 4 AWS Cloud Fecha de Elaboración: Enero 2013. INFOTEC CONACYT FIDEICOMISO. vii Instalación de SemanticWebBuilder 4 AWS Cloud Instalación de SemanticWebBuilder 4 AWS® Cloud SemanticWebBuilder 4 AWS® Cloud Uno de los principales beneficios del cómputo en la nube consiste en la oportunidad de reemplazar los gastos iniciales en infraestructura con un bajo costo variable que escala según el negocio lo necesite, ya que rápidamente es posible utilizar cientos de servidores en minutos entregando resultados inmediatos. Amazon Web Services (AWS) provee una infraestructura con centros de datos en los Estados Unidos, Brasil, Singapur, Japón y Australia; cuenta con una interface de servicios REST mediante la cual es posible escalar horizontalmente. Tras el auge del internet “social”, es posible que la demanda de un sitio pase de unas decenas a unos miles de visitantes en cuestión de un par de horas y que tras otro par de horas regrese a su nivel de tráfico usual. SemanticWebBuilder (SWB) es una suite de productos que sirven como plataforma para el desarrollo de portales, estos portales deberían poder beneficiarse de contar con la posibilidad de crecer en capacidad de atención de manera dinámica según el negocio lo requiera; por lo que se desarrolló una extensión conocida como SWB4Cloud que permite el despliegue de un portal construido con SWB en la infraestructura de AWS que pueda moverse de manera dinámica según la carga existente en el sitio. El presente documento contiene los pasos necesarios para configurar un portal en AWS. Arquitectura de SWB4Cloud El SWB4Cloud aprovecha la capacidad de SWB para poder desplegarse en ambientes en cluster y balanceo de cargas por lo que requiere de al menos lanzar dos instancias en su configuración mínima. La primer instancia se encargará del servicio de administración del portal, proveer de los servicios de Base de datos (estos se pueden configurar en una instancia por separado o en un Amazon RDS), los archivos estáticos (estos se podrán entregar por las instancias o por el servicio de Global Content Delivery Network de Amazon: Cloud Front), y el software necesario para realizar el lanzamiento de instancias adicionales. La segunda instancia se encargará de entregar el contenido del portal a los visitantes, este es lanzado por la instancia de administración desde la consola de SWB y según la configuración y demanda SWB lanzará tantas instancias como sean necesarias y a su tiempo, dará de baja las instancias necesarias según se requiera. Fecha de Elaboración: Enero 2013. INFOTEC CONACYT FIDEICOMISO. 1 Instalación de SemanticWebBuilder 4 AWS Cloud El diagrama anterior ilustra los servicios y las conexiones que existen en un despliegue típico de SWB4Cloud, a continuación se describirá la función de cada parte: LB01: Elastic Load Balancing. En este punto es donde se reciben las peticiones de los visitantes, el DNS del portal deberá apuntar a esta IP, es recomendable que el DNS se hospede en Amazon Route 53 para poder tener el dominio raíz apuntando al portal. Aquí se realiza un NAT del puerto 80 al puerto 8080 en donde corren los servicios y un balanceo entre las instancias iniciadas. SG01: Security Group 01. Este grupo contiene las políticas de acceso a los clientes desde internet, y desde el LB01, por lo que requiere el puerto 8080 a ANY. SG02: Security Group 02. Este grupo representa a la red interna, contiene políticas para NFS, acceso a base de datos y sincronización de instancias entre SWB. SG03: Security Group 03. Este grupo contiene las políticas de acceso a la administración de SWB MySQL data: Servicio de Base de datos instalado sobre la instancia de administración. work/models: Ruta que será compartida vía NFS a los servidores cliente en donde encontrarán el contenido estático necesario para operar el portal. Fecha de Elaboración: Enero 2013. INFOTEC CONACYT FIDEICOMISO. 2 Instalación de SemanticWebBuilder 4 AWS Cloud Software: Repositorio compartido vía NFS a los servidores cliente en donde encontrarán un tar.gz con el servidor de aplicaciones (Apache Tomcat) que se instalará en los clientes, un swb.war que será desplegado en los clientes (debe ser la misma versión instalada en la administración) y un archivo config.jar que tendrá los archivos pre-configurados con los parámetros de la instancia, así como bibliotecas y archivos que no formen parte de SWB pero que sean necesarios para el portal desplegado. Instalación de la instancia de Administración Procedimiento 1. Diríjase a la ruta http://aws.amazon.com y hacer clic en el botón “Inscríbase” 2. Llenar todos los datos requeridos en la inscripción 3. Tras registrarse y validar la cuenta la gestión de la misma se mostrará así: 4. En el menú “Cuenta / Consola” diríjase a la opción del menú “AWS Management Console”. 5. Estando en el manejador de consola de AWS diríjase a la opción “EC2 (Virtual Servers in the Cloud)” Fecha de Elaboración: Enero 2013. INFOTEC CONACYT FIDEICOMISO. 3 Instalación de SemanticWebBuilder 4 AWS Cloud 6. Tras realizar estos pasos la consola de Amazon EC2 se ve así: Configuración de la consola Amazon EC2 (Elastic Compute Cloud) Amazon Elastic Compute Cloud (Amazon EC2), es un servicio web que ofrece Amazon para alojar servidores en centros de datos, que se utilizan para construir y alojar sus sistemas de software Las configuraciones que se tiene que realizar son las siguientes: Fecha de Elaboración: Enero 2013. INFOTEC CONACYT FIDEICOMISO. 4 Instalación de SemanticWebBuilder 4 AWS Cloud Security Groups Lo primero que se debe de configurar son los grupos de seguridad, inicialmente se cuenta con el grupo default, este permite todo el tráfico entre miembros del mismo grupo. Procedimiento 1. Entrar a la sección “NETWORK & SECURITY”, seleccionar “Security Groups” 2. Elegir “Create Security Group”. 3. Se mostrará la pantalla para capturar el nombre y la descripción del grupo de seguridad; posteriormente se podrán agregar las reglas que pertenecen a este grupo de seguridad. Fecha de Elaboración: Enero 2013. INFOTEC CONACYT FIDEICOMISO. 5 Instalación de SemanticWebBuilder 4 AWS Cloud 4. Se deberán generar los tres grupos con al menos los siguientes permisos: SG01 Acceso Público - Clientes Puerto Fuente Protocolo 8080 0.0.0.0/0 TCP Puerto 111 Fuente Mismo grupo de seguridad Protocolo TCP 2049 Mismo grupo de seguridad TCP 3306 Mismo grupo de seguridad TCP 111 1500 Mismo grupo de seguridad Mismo grupo de seguridad UDP UDP 32806 Mismo grupo de seguridad UDP SG02 Comunicación Interna SG03 Acceso Público – Administración Puerto Fuente Protocolo 80 0.0.0.0/0 TCP 443 22 Red de administración TCP Máquina del operador TCP Para más información sobre descripción y configuración de Grupos de Seguridad, dirigirse a la siguiente ruta: http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/using-networksecurity.html Fecha de Elaboración: Enero 2013. INFOTEC CONACYT FIDEICOMISO. 6 Instalación de SemanticWebBuilder 4 AWS Cloud KeyPair También se deberá generar un KeyPair, este servirá de método de autenticación para poder entrar a cualquier instancia vía SSH Procedimiento 1. Entrar a la sección “NETWORK & SECURITY”, seleccionar “KeyPairs“ 2. Elegir el botón Create KeyPair 3. El sistema preguntará por un nombre para el juego de llaves, generará las llaves y enviará la llave privada por una descarga del navegador. El archivo se deberá proteger para que sólo pueda ser leído por el usuario dueño del mismo, en *nix se puede usar la siguiente instrucción: chmod 400 portalKey.pem Fecha de Elaboración: Enero 2013. INFOTEC CONACYT FIDEICOMISO. 7 Instalación de SemanticWebBuilder 4 AWS Cloud Para más información sobre descripción y configuración de Juegos de llaves, dirigirse a la siguiente ruta: http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/usingcredentials.html#using-credentials-keypair Instance Contando ya con el par de llaves y los grupos de seguridad procedemos a lanzar una instancia. Procedimiento 1. Entrar a la sección “NETWORK & SECURITY”, seleccionar “INSTANCES”. 2. Elegir el botón Launch Instance 3. Se desplegará el asistente para una nueva instancia, para configurar las opciones necesarias usaremos el asistente clásico. Fecha de Elaboración: Enero 2013. INFOTEC CONACYT FIDEICOMISO. 8 Instalación de SemanticWebBuilder 4 AWS Cloud 4. El siguiente paso solicita elegir la Amazon Machine Image (AMI); 5. A continuación se elige el número de instancias a iniciar, por ser el administrador elegimos 1 instancia y tendremos que elegir el tamaño del hardware. Es importante considerar que en esta instancia se tendrá la base de datos, los archivos compartidos y la instancia de administración y que al administrador se le deberá asignar la memoria que corresponda al tamaño del sitio o sitios a publicar. SWB4Cloud fue diseñado y probado usando la AMI de Amazon Linux y las instancias clientes se lanzarán usando alguna versión de 64 bits de esta AMI. 6. Tendremos que elegir la zona, dentro de la región en la que estamos creando la instancia en la cual tendremos nuestro grupo de instancias. Tanto el administrador como las instancias cliente deberán estar en la misma zona. Fecha de Elaboración: Enero 2013. INFOTEC CONACYT FIDEICOMISO. 9 Instalación de SemanticWebBuilder 4 AWS Cloud 7. Posteriormente se tiene la configuración del kernel y comportamientos de la instancia, recomendamos usar el Kernel y RAM Disk por defecto y activar la protección contra la terminación accidental, así se evitará que por accidente se termine esta instancia, lo que liberaría los recursos y por lo que se podría perder la información almacenada en esta instancia. 8. Ahora corresponde configurar el almacenamiento, la instancia deberá contar con un dispositivo Root en donde se colocará el Sistema Operativo, aunque este cuenta con alrededor de 5GB de espacio disponible, se recomienda crear un segundo volumen de datos. Este volumen adicional deberá tener espacio suficiente para el Tomcat, la base de datos, el software de instalación y los contenidos estáticos; también se deberá considerar contar con espacio suficiente para crecer durante la vida del portal. 9. Es posible iniciar con una instancia con poca infraestructura, y pensar en un futuro crecerla en caso de que el administrador se vuelva un cuello de botella en el procesamiento del portal; para lograr lo anterior es recomendable iniciar con un buen espacio en este volumen y desactivar la opción Delete on Termination, de esta manera este volumen se podrá cambiar a otra instancia en el momento en que se crezca. Fecha de Elaboración: Enero 2013. INFOTEC CONACYT FIDEICOMISO. 10 Instalación de SemanticWebBuilder 4 AWS Cloud 10. Contando con nuestros volúmenes, uno para Sistema operativo y otro para los datos podemos continuar al siguiente paso. 11. Los Tags sirven para poder marcar nuestras instancias y saber para que se usa cada una de ellas, SWB4Cloud marcará como type swbClient las instancias que lance y se recomienda colocar estos marcadores a la instancia de administración. 12. El siguiente paso consiste en elegir con que par de llaves se realizará la autenticación al sistema operativo de la instancia de administración que estamos creando. 13. Por último se seleccionan los grupos de seguridad que corresponden a la instancia de administración, que de acuerdo a la arquitectura ya comentada corresponden al grupo de administración y al grupo de tráfico interno. Fecha de Elaboración: Enero 2013. INFOTEC CONACYT FIDEICOMISO. 11 Instalación de SemanticWebBuilder 4 AWS Cloud 14. Ya teniendo esta información lista podemos proceder a lanzar la imagen. 15. Con la Instancia iniciada será necesario asociarle una IP Elástica, esta se obtiene en el botón Allocate New Address de la sección Elastic IPs Fecha de Elaboración: Enero 2013. INFOTEC CONACYT FIDEICOMISO. 12 Instalación de SemanticWebBuilder 4 AWS Cloud 16. Ya que tenemos la IP asignada, se deberá asociar a la instancia eligiendo Associate del menú contextual (click derecho) de la IP que se nos asignó 17. Entonces se elige la instancia que corresponde al administrador Es necesario realizar esta asociación para poder contar con una IP que no cambiará entre reinicios de la instancia de administración, para que así los clientes puedan ubicar la base, los NFSs y la comunicación de sincronización. 18. También será necesario generar un balanceador de cargas, este servirá para distribuir las peticiones entre las instancias cliente que se levanten. 19. Al elegir Create Load Balancer en la sección Load Balancers tendremos una pantalla similar a la siguiente: Fecha de Elaboración: Enero 2013. INFOTEC CONACYT FIDEICOMISO. 13 Instalación de SemanticWebBuilder 4 AWS Cloud 20. Habrá que asignarle un nombre y configurar que los puertos sean 80 contra 8080 en HTTP quitando la regla que tiene por defecto (80-80) y generando una con estos parámetros. En la siguiente ventana se configura el chequeo de salud. 21. Cambiar el Ping Path a la ruta /ping que es parte del sistema de monitoreo de SWB para que el balanceador pueda saber cuando una instancia está disponible para recibir peticiones. 22. No se asociarán al momento instancias a este balanceador, pero si se recomienda elegir la misma zona para colocarlo, para lo que se puede agregar la instancia del administrador al balanceo y retirarla una vez creado. 23. Una vez creado será necesario cambiar el modo de fijación del balanceo, esto se hace dando click a la liga (edit) en la seccion “Port Configuration” de la información del balanceador: 24. Elegir Enable Application Generated Cookie Stickiness y como Cookie Name se le proporcionará el valor JSESSIONID que es el nombre por defecto de la galleta de sesión. Fecha de Elaboración: Enero 2013. INFOTEC CONACYT FIDEICOMISO. 14 Instalación de SemanticWebBuilder 4 AWS Cloud Configurando la instancia Una vez que la instancia arranca, hay que configurarla, para lo cual será necesario conectarnos vía ssh al servidor con la siguiente instrucción o con algún cliente ssh que pueda usar archivos de llave como método de autenticación: ssh –i rutaAlArchivoDeLaLlave.pem ec2-user@dnsPublicoDeLaInstancia Ejemplo: ec2-user@ec2-54-245-2-255.us-west-2.compute.amazonaws.com Requerimientos Previos Para la creación de una instancia de SWB4Cloud se utilizarán las siguientes versiones. OpenJDK 7 MySQL 5.5 swb.war 4.2.3.0 (en adelante) SWBAWSSupport.jar aws-java-sdk-1.3.22.jar commons-codec-1.3.jar commons-logging-1.1.1.jar dnsjava-2.1.3.jar httpclient-4.1.1.jar httpcore-4.1.jar Fecha de Elaboración: Enero 2013. INFOTEC CONACYT FIDEICOMISO. 15 Instalación de SemanticWebBuilder 4 AWS Cloud …Procedimiento 1. Es conveniente realizar una actualización de los paquetes en la imagen y de instalar la nueva versión del OpenJDK así como de MySQL mediante las siguientes instrucciones: sudo yum update -y sudo yum erase java-1.6.0-openjdk -y sudo yum install nfs-utils rpcbind -y sudo yum install java-1.7.0-openjdk-devel -y sudo yum install mysql55-server –y 2. Las instrucciones anteriores actualizan todos los paquetes instalados, borran el JDK6 (que se distribuye como parte de la AMI), se asegura de tener instalado lo necesario para ser el servidor de NFS, instala el OpenJDK 7 y el MySQL 5.5 3. Ahora corresponde preparar la unidad de almacenamiento de datos que agregamos durante la instalación, en cuyo proceso se indicó que estaría ligada a la máquina por la ruta /dev/sdf, si en su lanzamiento se usó otra ruta deberá ajustar las siguientes instrucciones según se requiera: sudo mkfs -t ext3 /dev/sdf sudo mkdir /swb sudo mount /dev/sdf /swb sudo mkdir /swb/datos sudo mkdir /swb/portal sudo mkdir /swb/software 4. Así creamos un FS tipo ext3 en el disco /dev/sdf, y lo montamos como el fileSystem /swb en donde creamos subdirectorios para los datos, el portal y el software que servirá para ajustar las instancias cliente de este despliegue. Configurando la Base de datos La configuración por defecto es suficiente para la mayoría de los portales construidos en SWB, esta configuración sólo especifica lo necesario para colocar los archivos de datos de la base en el Volumen EBS que se creó al iniciar la instancia. Fecha de Elaboración: Enero 2013. INFOTEC CONACYT FIDEICOMISO. 16 Instalación de SemanticWebBuilder 4 AWS Cloud …Procedimiento 1. El archivo de configuración se encuentra en “ /etc/my.cnf “ y se tendrá que cambiar el valor de la variable datadir para que apunte al directorio que creamos dentro del volumen EBS, es decir “ /swb/datos/mysql “ el cual quedaría como se muestra: [mysqld] # Settings user and group are ignored when systemd is used. # If you need to run mysqld under different user or group, # customize your systemd unit file for mysqld according to the # instructions in http://fedoraproject.org/wiki/Systemd datadir=/swb/datos/mysql socket=/var/lib/mysql/mysql.sock # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid 2. Para configurar a MySQL a fin de que se inicie cada vez que se reinicia el sistema se aplica la siguiente instrucción: sudo chkconfig --level 2345 mysqld on 3. Para levantar por primera vez la instancia se deberá usar la instrucción: sudo service mysqld start 4. Al ser una nueva instalación se recomienda correr el script de la instrucción siguiente para asegurar y cambiar la contraseña del usuario root de la base: sudo /usr/bin/mysql_secure_installation 5. Después se deberá crear la base de datos, en este caso la llamaremos swb y para crearla usaremos la instrucción: /usr/bin/mysqladmin --user root -p create swb 6. Para generar el usuario será necesario conectarse a la base de datos con la instrucción: Fecha de Elaboración: Enero 2013. INFOTEC CONACYT FIDEICOMISO. 17 Instalación de SemanticWebBuilder 4 AWS Cloud /usr/bin/mysql --user root -p 7. Estando en la base crear al usuario swb, asignarle una contraseña, en este ejemplo es la palabra password y asignarle todos los permisos sobre la base swb que creamos anteriormente: CREATE USER 'swb'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON swb.* TO 'swb'@'%' WITH GRANT OPTION; Configurando el servidor de aplicaciones (Tomcat) Para iniciar la instalación del servidor de aplicaciones (Tomcat) y de SWB tendremos que colocarlos en esta instancia, 1. Para esto podemos descargar o copiar ambos archivos al directorio /swb/software el cual le deberá pertenecer al usuario de la AMI que es ec2-user, la pertenencia de los directorios se puede cambiar mediante las instrucciones: cd /swb sudo chown ec2-user:ec2-user software sudo chown ec2-user:ec2-user portal 2. Para colocar archivos se puede usar scp como se muestra en el siguiente ejemplo: scp -i ~/portalKey.pem swb.war ec2-user@ec2-54-245-2-255.us-west2.compute.amazonaws.com:/swb/software 3. O también desde la instancia se puede usar la instrucción wget para descargar el archivo, en el ejemplo se ilustra la descarga de Tomcat cd /swb/software wget http://apache.webxcreen.org/tomcat/tomcat-7/v7.0.33/bin/apache-tomcat-7.0.33.tar.gz La instrucción realiza la descarga de archivo apache – tomcat-7.0.33.tar.gz, si se requiere realizar la descarga de la última versión del servidor de aplicaciones diríjase a la siguiente ruta http://tomcat.apache.org/download-70.cgi 4. La instalación se realizará en el directorio /swb/portal, en donde desempacaremos el Tomcat, Fecha de Elaboración: Enero 2013. INFOTEC CONACYT FIDEICOMISO. 18 Instalación de SemanticWebBuilder 4 AWS Cloud 5. SWB será la única aplicación desplegada y no se necesita la administración de Tomcat se recomienda eliminar las aplicaciones que contiene Tomcat e instalar como la aplicación por defecto a SWB, esto se realiza con las instrucciones siguientes: cd /swb/portal/ tar -zxvf ../software/apache-tomcat-7.0.33.tar.gz cd apache-tomcat-7.0.33/webapps/ rm -Rf * mkdir ROOT cd ROOT jar xvf /swb/software/swb.war 6. Lo siguiente consiste en agregar las variables de ambiente a los archivos de arranque de Tomcat, para que Java pueda crear el heap, stacks y sepa la codificación adecuada para SWB, esto se hace agregando al archivo catalina.sh en el directorio /bin de tomcat, esto se realiza como se describe a continuación: export CATALINA_OPTS="-Dfile.encoding=ISO8859-1 -Xss192k -Xmx1024m -server" De esta manera le indicamos a Java que deberá crear una JVM de tipo server, con una codificación ISO8859-1, 192k de stack por thread y un heap máximo de 1GB; estos valores se deberán ajustar de acuerdo al tamaño del portal a instalar. 7. A continuación se deberán configurar los puertos y el certificado, en este ejemplo se mostrara el uso de un certificado autofirmado. 8. Se procede a editar el archivo server.xml dentro del directorio /conf de Tomcat, en donde se busca lo siguiente: <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 9. Esta es la configuración del puerto HTTP, que deberá cambiarse al puerto 80, quedando de la siguiente manera: <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" /> Fecha de Elaboración: Enero 2013. INFOTEC CONACYT FIDEICOMISO. 19 Instalación de SemanticWebBuilder 4 AWS Cloud 10. Ahora hay que encontrar la parte que sigue: <!-<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" /> --> 11. Esta parte configura el servicio de SSL con el keystore por defecto, por lo que hay que quitar los tags que lo encierran como comentario y cambiar el puerto al 443 quedando: <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" /> 12. Resta crear el certificado en el keystore por defecto, para lo cual habrá que usar la instrucción siguiente y contestar las preguntas con la información referente al sitio, es importante recalcar que como contraseña se deberá usar “changeit”, En la documentación de Tomcat podrá encontrar como configurar otras contraseñas o usar certificados comerciales http://tomcat.apache.org/tomcat-7.0doc/ssl-howto.html sudo keytool -genkey -alias tomcat -keyalg RSA Configurando el NFS Para poder tener el contenido estático en los SWB clientes y poder configurar los clientes de acuerdo a la instalación en específico será necesario compartir dos rutas de nuestro filesystem al grupo de seguridad interno. …Procedimiento 1. Será necesario agregar las rutas al archivo /etc/exports como sigue: sudo vi /etc/exports /swb/portal/apache-tomcat-7.0.33/webapps/ROOT/work/models *(ro,async) /swb/software *(ro,async) Fecha de Elaboración: Enero 2013. INFOTEC CONACYT FIDEICOMISO. 20 Instalación de SemanticWebBuilder 4 AWS Cloud 2. Al agregar las líneas anteriores le estamos indicando al NFSServer que queremos compartir las rutas que se indican en sólo lectura a todos los servidores; cómo en AWS cada instancia está aislada y sólo se comunica según las reglas de su grupo de seguridad, estos directorios sólo estarán disponibles a los clientes. En este ejemplo se usó apache 7.0.33, ajustar la ruta según se necesite 3. Ahora procedemos a cargar estos cambios con la instrucción: sudo exportfs -ar 4. Para iniciar los servicios del NFSServer se usan las instrucciones: sudo service rpcbind start sudo service nfs start sudo service nfslock start 5. Para registrar los servicios del NFSServer se usan las instrucciones: sudo chkconfig --level 2345 rpcbind on sudo chkconfig --level 2345 nfs on sudo chkconfig --level 2345 nfslock on Configurando la base de datos de SWB SWB requiere de una base de datos para persistir los objetos que forman el portal, por simplicidad usamos MySQL (instalado en los pasos previos) ya que hemos encontrado que se desempeña de manera adecuada con SWB.SWB distribuye el JDBC de MySQL por lo que sólo será necesario configurar la conexión, …Procedimiento 1. En el archivo WEB-INF/clases/db.properties del despliegue de SWB; este archivo cuenta con ejemplos para diversas bases de datos y trae configurado como demostración una base de datos Java en Memoria. Tras la configuración se deberá comentar o retirar la configuración por defecto y dejar la nueva, como se ilustra en el siguiente fragmento: 2. Descomentar el pool de MySQL Fecha de Elaboración: Enero 2013. INFOTEC CONACYT FIDEICOMISO. 21 Instalación de SemanticWebBuilder 4 AWS Cloud drivers=org.gjt.mm.mysql.Driver swb.url=jdbc:mysql://ec2-54-245-233-218.us-west-2.compute.amazonaws.com:3306/swb swb.maxconn=80 swb.user=swb swb.password=password swb.idle_time=900 3. Comentar el pool de HsqlDB #drivers=org.hsqldb.jdbcDriver #swb.url=jdbc:hsqldb:mem:swbmemdb #swb.url=jdbc:hsqldb:file:{apppath}/WEB-INF/db/hsqldb/swb #swb.maxconn=80 #swb.user=SA #swb.password= #swb.idle_time=900 Configurando el ambiente de SWB El archivo /WEB-INF/clases/web.properties del despliegue le indica a SWB la forma en que deberá configurar la instancia, si está en un arreglo de balanceo de cargas, el tipo de almacenamiento que usará, servidores de SMTP y demás configuraciones del ambiente. …Procedimiento 4. Para el administrador en AWS se deberán ajustar al menos los parámetros que se enlistan a continuación: swb/clientServer=SAS swb/cloudImplementation=org.semanticwb.aws.AWSServicesImp swb/regionEndPoint=us-west-2.amazonaws.com Es importante recalcar que en el parámetro swb/regionEndPoint se usará el subdominio correspondiente a la región en donde correrá la instancia, ya que este se complementará con cada uno de los servicios que se requiera consultar. Fecha de Elaboración: Enero 2013. INFOTEC CONACYT FIDEICOMISO. 22 Instalación de SemanticWebBuilder 4 AWS Cloud 5. Generando el config.jar. El archivo config.jar se deberá depositar en el directorio /swb/software y contiene los archivos de configuración y archivos adicionales requeridos para levantar el portal que se instalará. Este archivo contiene la misma estructura en donde existirán esos archivos en el despliegue final, ya que se desempacará a nivel de ROOT sobre escribiendo los valores y archivos de la instalación por defecto. 6. Como mínimo indispensable deberá contener los archivos db.properties y web.properties ajustados a la instancia cliente en la ruta WEB-INF/classes recordando que toda referencia a la máquina de administración deberá hacerse mediante el DNS de la IP Elástica asignada al mismo. 7. La manera más sencilla es generar en un directorio limpio la estructura de los archivos de configuración que se agregarán y luego desde ese directorio usar la instrucción siguiente: jar cvf /swb/software/config.jar * cp /swb/software/aws/*.jar 8. Levantar la instancia de SemanticWebBuilder con la siguiente instrucción: cd /swb/portal/apache-tomcat-7.0.33/bin/ Sudo ./startup.sh 9. Una vez que levanto la aplicación entrar a la administración de swb con la siguiente ruta: Ip_Elastica/swbadmin Usuario: admin Contraseña: webbuilder 10. Configurando SWB. La instancia de administración será la encargada de generar instancias cliente, está requiere tener información sobre el ambiente que se acaba de generar en AWS por lo que habrá que entrar a la opción “Configuración AWS” en el menú “Sistema” como SuperUsuario. Para la creación de usuarios y asignación de roles diríjase a los siguientes manuales: Creación_y_Administración_de_Roles_y_Grupos_de_Usuarios Creacion_y_Administracion_de_Usuarios Fecha de Elaboración: Enero 2013. INFOTEC CONACYT FIDEICOMISO. 23 Instalación de SemanticWebBuilder 4 AWS Cloud 11. En caso de tener instalada y configurada la extensión para AWS, lo que hicimos en el paso “Configurando el ambiente de SWB”, esta opción nos solicitará los datos de acceso. 12. Esta información se encuentra en la opción Security Credentials del menú del usuario de AWS, debemos notar que estos datos permitirán que se hagan acciones a nombre de esta cuenta en AWS y que estas acciones incurren en costos para dicha cuenta 13. Ya proporcionada esta información deberemos llenar las opciones que corresponden al ambiente que generamos durante ésta instalación. Fecha de Elaboración: Enero 2013. INFOTEC CONACYT FIDEICOMISO. 24 Instalación de SemanticWebBuilder 4 AWS Cloud En donde: Placement Zone: Corresponde a la zona de disponibilidad en donde instalaremos, KeyPair Es la llave de seguridad para poder entrar a las instancias cliente, Image: Corresponde a la imagen del Sistema Operativo que se instalará, Instance type: Define el tamaño de las máquinas que se generarán, Max instances to launch: Especifica hasta cuantas instancias cliente se podrá crecer, Memory string: Es el parámetro para configurar el –Xmx de Java, AppServer es el nombre de la versión y archivo de Apache Tomcat con el que se instalará y que se colocó en /swb/software, Internal security group y External security group: Son los grupos de seguridad de Comunicación interna y acceso público (SG01 y SG02), Elastic Admin IP: Es la IP elástica asociada a la instancia de administración, LoadBalancer: Es el Balanceador por el cual se publicará el portal CPU AverageLevel to launch: Es el nivel que se deberá rebasar para lanzar instancias adicionales. En nuestro ejemplo quedaría así: 14. Cuando se envían todos los datos se activará la sección Lanzamiento que le indica a SWB que puede iniciar el lanzamiento de la primera instancia. Fecha de Elaboración: Enero 2013. INFOTEC CONACYT FIDEICOMISO. 25 Instalación de SemanticWebBuilder 4 AWS Cloud 15. Ya que existen instancias se mostrará la sección Shutdown en donde se pueden Terminar las instancias cliente asociadas a esta cuenta. Fecha de Elaboración: Enero 2013. INFOTEC CONACYT FIDEICOMISO. 26