В моем предыдущем посте я показал, как настроить тему и подписку на Amazon SNS . В этом посте я интегрирую этот сервис с моим сервером EC2, чтобы он отправлял письмо при запуске экземпляра. Это будет удобно, когда мы начнем использовать автоматическое масштабирование, чтобы экземпляры могли запускаться «автоматически» по разным причинам, но я опишу это позже. В настоящее время у нас есть сервер EC2 под управлением Debian Linux и тема SNS . Теперь давайте посмотрим, как мы можем объединить эти два, чтобы получить желаемый результат. Для этого мы будем использовать инструменты командной строки SNS .
Первый шаг — войти через SSH на сервер EC2 с помощью команды (помните, я настроил эластичный IP-адрес, чтобы использовать его здесь):
ssh -i 4synergy_palma.pem [email protected]
Затем мы должны установить среду выполнения Java, которая используется инструментом командной строки. Для этого введите команду
sudo apt-get update sudo apt-get install openjdk-6-jre-headless
И когда он закончится, проверьте, что он установлен нормально, запустив команду
java -version.
Это даст следующий результат:
помимо Java нам также понадобится инструмент для разархивирования, чтобы извлечь загрузку инструмента SNS. Чтобы установить его просто запустите:
sudo apt-get install unzip
Следующим шагом является установка инструментов SNS. Загрузите его на компьютер с помощью следующей команды:
wget http://sns-public-resources.s3.amazonaws.com/SimpleNotificationServiceCli-2010-03-31.zip
Теперь распакуйте инструмент с помощью
unzip SimpleNotificationServiceCli-2010-03-31.zip
Я собираюсь установить инструмент в каталог / opt / amazonSNS ‘:
sudo mkdir /opt/amazonSNS sudo mv SimpleNotificationServiceCli-1.0.3.3/* /opt/amazonSNS/ chmod +x /usr/lib/amazonSNS/bin/*
Средство командной строки использует файл учетных данных для связи с Amazon. В этом файле вы должны указать свои AccesKey и SecretKey. Чтобы создать этот файл, скопируйте файл шаблона и отредактируйте его:
cd /usr/lib/amazonSNS/ sudo cp credential-file-path.template credentials.cnf sudo nano credentials.cnf
Вы можете найти необходимые учетные данные на странице консоли AWS в разделе «Учетная запись» -> «Учетные данные безопасности» и добавить их в файл учетных данных следующим образом:
Теперь я создам простой сценарий оболочки для проверки установки. В скрипте нам нужен ARN темы SNS, поэтому сначала выберите его на странице обзора SNS:
теперь создайте скрипт, введя команду
cd nano sns.sh
и поместите следующее в сценарий
#!/bin/bash export AWS_SNS_HOME=/usr/lib/AmazonSNS export AWS_CREDENTIAL_FILE=$AWS_SNS_HOME/credentials.cnf export JAVA_HOME=/usr export PATH=$PATH:/usr/lib/AmazonSNS/bin START=`date` sns-publish arn:aws:sns:eu-west-1:024658091597:WorpressServerNotificaction --message --message "A WordPress EC2 instance is started at $START" --subject "AWS EC2 Alert"
После сохранения скрипта сделайте скрипт исполняемым с:
sudo chmod +x sns.sh
Вы можете запустить скрипт, чтобы увидеть, работает ли он с командой
./sns.sh
Последний шаг — сделать сценарий частью сценариев запуска. Мы делаем это, изменяя скрипт уровня запуска. Сначала мы перемещаем только что созданный скрипт в каталог /init.d
cd sudo mv sns.sh /etc/init.d/
Следующим шагом является создание символической ссылки:
cd /etc/rc2.d sudo ln -s ../init.d/sns.sh S99sns.sh
Теперь обновление скриптов радиоуправляемых так , что ссылка срабатывает при запуске сервера:
sudo update-rc.d sns.sh enable 2
То есть. Теперь перезагрузите компьютер, и вы получите сообщение, когда он снова включится. Как было сказано ранее, эта реализация будет очень полезна, когда мы реализуем автоматическое масштабирование, потому что мы будем знать о неожиданных запусках сервера. Как это сделать я опишу в следующем посте.