Эта статья была первоначально опубликована на Alibaba Cloud . Спасибо за поддержку партнеров, которые делают возможным использование SitePoint.
Думаете, у вас есть лучший совет по лучшему использованию облачных сервисов Alibaba? Расскажите нам об этом и воспользуйтесь своим шансом выиграть Macbook Pro (плюс другие интересные вещи). Узнайте больше здесь .
В этом документе показано, как одним щелчком мыши развернуть сайт WordPress и приложение phpMyAdmin с помощью шаблона ROS .
Вступление
Многие пользователи не имеют собственных технических возможностей для создания и управления веб-сайтом. У них есть команды, которые могут управлять контентом, но не инфраструктурой, которая сопровождает его. Доступные в настоящее время решения подходят для ограниченного периода времени, когда требования являются базовыми, но как только они требуют настройки, высокой доступности и масштабируемости, необходимы дополнительные решения, поддерживающие масштабирование.
Шаблон стека ROS ( WordPressCluster-phpMyAdmin.ros ), обсуждаемый в этом документе, помогает удовлетворить требования таких пользователей к высокой доступности и масштабируемости. Одним щелчком мыши он создает весь стек VPC , балансировщик нагрузки сервера , автоматическое масштабирование , ECS , RDS и другие экземпляры, развертывает WordPress и phpMyAdmin и настраивает автоматическое масштабирование, чтобы гарантировать возможность добавления и настройки любых новых экземпляров без ручного вмешательства. ,
Предпосылки
- Наличие ведра OSS.
- Пользователь ОЗУ с доступом для чтения и записи к корзине OSS.
- Понимание ROS и способность создавать шаблоны стеков ROS и стеки из консоли.
Обзор архитектуры
На этой диаграмме представлен обзор архитектуры развертывания, созданной на основе шаблона WordPressCluster-phpMyAdmin.ros .
Три типа пользователей получают доступ к инфраструктуре:
Конечные пользователи , которые получают доступ к веб-сайту, размещенному на WordPress, по URL-адресу, который разрешен для экземпляра Public Server Load Balancer.
WordPress размещается на веб-серверах Apache. Серверы имеют корневой каталог документов /wwwroot
который находится в /wwwroot
OSS, совместно используемой веб-серверами с использованием OSSFS (файловая система на основе FUSE, официально предоставляемая Alibaba Cloud).
Пользователи ОЗУ, имеющие разрешение на доступ к корзине OSS, могут смонтировать корзину OSS на экземпляре ECS.
База данных RDS for MySQL содержит содержимое WordPress и доступна с веб-сервера через его строку подключения к интрасети.
Системный администратор , который может получить доступ к среде VPC через вход SSH в JumpBox (хост-бастион).
JumpBox имеет эластичный IP-адрес и доступен через Интернет.
Доступ через JumpBox предназначен для управления экземплярами внутри VPC.
phpMyAdmin установлен на JumpBox и доступен через Интернет.
Таким образом, администраторы могут администрировать базу данных RDS.
Менеджеры контента , которые могут получить доступ к консоли управления WordPress через Интернет.
Доступ ко всем этим службам может контролироваться группами безопасности и настраиваться в соответствии со средой.
Обзор шаблона
Нажмите WordPressCluster-phpMyAdmin.ros, чтобы загрузить шаблон стека ROS для использования.
Примечание: в шаблоне ZoneId установлен как eu-central-1a , а ImageId — m-gw8efmfk0y184zs0m0aj . Вы можете изменить ZoneId и ImageId в соответствии с зонами и изображениями, поддерживаемыми в консоли ROS. Войдите в консоль ROS , нажмите « Информация об экземпляре ECS» , выберите регион и нажмите « Зона ECS» или « Изображение ECS», чтобы просмотреть все зоны или изображения, поддерживаемые в этом регионе.
На основе шаблона стека WordPressCluster-phpMyAdmin.ros система создает VPC, балансировщик нагрузки сервера, VSwitch, шлюз NAT, группы безопасности и экземпляры ECS для JumpBox, Elastic IP для JumpBox, автоматическое масштабирование для экземпляров ECS и экземпляр RDS.
Требуются следующие входные параметры, чтобы сделать стек ресурсов достаточно универсальным, чтобы его можно было развернуть для любого пользователя в любом регионе.
Согласно шаблону, система устанавливает httpd, mysql-client, PHP, OSSFS, phpMyAdmin и WordPress на JumpBox, а также настраивает их в разделе UserData ресурса ALIYUN :: ECS :: Instance.
Ниже приведен фрагмент раздела UserData JumpBox.
"ossbucketendpoint=", { "Ref": "OSSBucketEndPoint" }, "\n", "DatabaseUser=", { "Ref": "MasterUserName" }, "\n", "DatabasePwd=", { "Ref": "MasterDBPassword" }, "\n", "DatabaseName=", { "Ref": "DBName" }, "\n", "DatabaseHost=", { "Fn::GetAtt": ["Database", "InnerConnectionString"] }, "\n", "yum install -y curl httpd mysql-server php php-common php-mysql\n", "yum install -y php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc\n", "yum install -y phpmyadmin\n", "sed -i \"s%localhost%$DatabaseHost%\" /etc/phpMyAdmin/config.inc.php\n", "sed -i \"s%Deny,Allow%Allow,Deny%\" /etc/httpd/conf.d/phpMyAdmin.conf\n", "sed -i \"s%Deny from All%Allow from All%\" /etc/httpd/conf.d/phpMyAdmin.conf\n", "sed -i \"/<RequireAny>/a Require all Granted\" /etc/httpd/conf.d/phpMyAdmin.conf\n", "chkconfig httpd on\n", "service httpd stop\n", "wget https://github.com/aliyun/ossfs/releases/download/v1.80.3/ossfs_1.80.3_centos6.5_x86_64.rpm\n", "yum install -y ossfs_1.80.3_centos6.5_x86_64.rpm\n", "echo $ossbucket:$ossbucketaccesskey:$ossbucketsecret >> /etc/passwd-ossfs\n", "chmod 600 /etc/passwd-ossfs\n", "mkdir $ossbucketmountpoint\n", "chmod -R 755 $ossbucketmountpoint\n", "echo #This script will automount the ossbucket\n", "echo umount $ossbucketmountpoint >> /usr/local/bin/ossfs-automount.sh\n", "echo #Mounting OSS Bucket\n", "echo ossfs $ossbucket $ossbucketmountpoint -ourl=http://$ossbucketendpoint -o allow_other -o mp_umask=0022 -ouid=48 -ogid=48 >> /usr/local/bin/ossfs-automount.sh\n", "chmod 755 /usr/local/bin/ossfs-automount.sh\n", "echo /usr/local/bin/ossfs-automount.sh >> /etc/rc.d/rc.local\n", "chmod +x /etc/rc.d/rc.local\n", "/usr/local/bin/./ossfs-automount.sh\n", "wget http://WordPress.org/latest.tar.gz\n", "tar -xzvf latest.tar.gz\n", "sed -i \"s%database_name_here%$DatabaseName%\" WordPress/wp-config-sample.php\n", "sed -i \"s%username_here%$DatabaseUser%\" WordPress/wp-config-sample.php\n", "sed -i \"s%password_here%${DatabasePwd:-$DatabasePwdDef}%\" WordPress/wp-config-sample.php\n", "sed -i \"s%localhost%$DatabaseHost%\" WordPress/wp-config-sample.php\n", "mv WordPress/wp-config-sample.php WordPress/wp-config.php\n", "cp -a WordPress/* $ossbucketmountpoint\n", "chmod -R 755 /wwwroot/*\n", "rm -rf WordPress*\n", "service httpd start\n", "done\n"
Раздел UserData развертывает WordPress в корзине OSS, которую можно подключить к веб-серверам, созданным с использованием автоматического масштабирования. Это гарантирует, что веб-серверы имеют обновленный контент из корня документа.
Веб-серверы запускаются через автоматическое масштабирование. Установка и настройка httpd, PHP и ossutil, монтирование DocumentRoo и запуск служб выполняются в разделе UserData конфигурации Auto Scaling.
Ниже приведен фрагмент раздела UserData конфигурации автоматического масштабирования веб-сервера.
"DatabaseHost=", { "Fn::GetAtt": ["Database", "InnerConnectionString"] }, "\n", "yum install -y curl httpd mysql-server php php-common php-mysql\n", "yum install -y php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc\n", "chkconfig httpd on\n", "service httpd stop\n", "DocumentRoot='/var/www/html'\n", "sed -i \"s%$DocumentRoot%$ossbucketmountpoint%\" /etc/httpd/conf/httpd.conf\n", "Directory='/var/www'\n", "sed -i \"s%$Directory%$ossbucketmountpoint%\" /etc/httpd/conf/httpd.conf\n", "wget https://github.com/aliyun/ossfs/releases/download/v1.80.3/ossfs_1.80.3_centos6.5_x86_64.rpm\n", "yum install -y ossfs_1.80.3_centos6.5_x86_64.rpm\n", "echo $ossbucket:$ossbucketaccesskey:$ossbucketsecret >> /etc/passwd-ossfs\n", "chmod 600 /etc/passwd-ossfs\n", "mkdir $ossbucketmountpoint\n", "chmod -R 755 $ossbucketmountpoint\n", "echo #This script will automount the ossbucket\n", "echo umount $ossbucketmountpoint >> /usr/local/bin/ossfs-automount.sh\n", "echo #Mounting OSS Bucket\n", "echo ossfs $ossbucket $ossbucketmountpoint -ourl=http://$ossbucketendpoint -o allow_other -o mp_umask=0022 -ouid=48 -ogid=48 >> /usr/local/bin/ossfs-automount.sh\n", "chmod 755 /usr/local/bin/ossfs-automount.sh\n", "echo /usr/local/bin/ossfs-automount.sh >> /etc/rc.d/rc.local\n", "chmod +x /etc/rc.d/rc.local\n", "/usr/local/bin/./ossfs-automount.sh\n", "chmod -R 755 /wwwroot/*\n", "service httpd start\n", "done\n" ]
Это хорошее решение для пользователей, которые ищут комплексную среду, и для архитекторов решений для поддержки своих клиентов в POC.