Статьи

Использование Amazon SNS

В моем предыдущем посте я показал, как настроить тему и подписку на 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. Чтобы установить его просто запустите:

Снимок экрана 2012-12-22 в 14.04.35

 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 в разделе «Учетная запись» -> «Учетные данные безопасности» и добавить их в файл учетных данных следующим образом:

Снимок экрана 2012-12-23 в 13.50.42Теперь я создам простой сценарий оболочки для проверки установки. В скрипте нам нужен ARN темы SNS, поэтому сначала выберите его на странице обзора SNS:
теперь создайте скрипт, введя команду

Снимок экрана 2012-12-23 в 14.01.43

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

То есть. Теперь перезагрузите компьютер, и вы получите сообщение, когда он снова включится. Как было сказано ранее, эта реализация будет очень полезна, когда мы реализуем автоматическое масштабирование, потому что мы будем знать о неожиданных запусках сервера. Как это сделать я опишу в следующем посте.