ДЗ
Создать аккаунт на AWS. Создать инстанс на EC2, и развернуть на нем простое веб приложение..
1. Войдите в тестовый аккаунт https://otus-test.signin.aws.amazon.com/ со своим логином.
2. Перейдите в AWS EC2 web console региона Stockholm.
3. Перейдите в раздел Launch Templates.
4. Нажмите Create launch template.
5. Укажите имя для шаблона, нажмите Show Tags и добавьте тег student со вашим логином (установите такой же тег и для Instance tags).
6. В качестве AMI ID укажите ami-1dab2163 (это ubuntu-bionic-18.04-amd64-server).
7. Для параметров launch template укажите те же настройки (Instance Type - t3.micro, Key Pair Name - ваш ключ, Security Groups - otus-$вашлогин-*, Instance tags) что и в занятии “AWS IAM” (другие настройки лучше не меняйте).
8. Нажмите Advanced Details, установите ваш IAM instance profile (также, из занятия “AWS IAM”) и в Userdata укажите строки из примера ниже (вы можете сделать тот сервер, который вам привычен, использовав нужные пакеты и файлы).
9. Нажмите Create launch template.
10. Вернитесь в раздел Launch Templates.
11. Выберите ваш шаблон и намите Actions > Launch instance from template.
12. Выберите Source template version и нажмите Launch instance from template (другие настройки лучше не меняйте).
13. Проверьте, правильно ли отработал ваш Userdata (например, вы можете зайти на инстанс и посмотреть файл /var/log/cloud-init-output.log или просто в браузере открыв адрес вашего инстанса по http).
14. Если всё хорошо, удалите ваш инстанс (НО НЕ ШАБЛОН).
Пример Userdata для простейшего веб сервера:
#!/bin/bash -xe
export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get -y upgrade
apt-get -y install apache2 php7.2 php7.2-xml php7.2-mbstring unzip awscli
wget --output-document /tmp/aws.zip https://docs.aws.amazon.com/aws-sdk-php/v3/download/aws.zip
mkdir /var/www/aws-php-sdk
unzip /tmp/aws.zip -d /var/www/aws-php-sdk/
aws s3 cp s3://otus-test/s3-test.php /var/www/html/index.php
rm -rvf /var/www/html/index.html
service apache2 restart
Содержание файла s3://otus-test/s3-test.php из примера Userdata
<?php
require '../aws-php-sdk/aws-autoloader.php';
use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;
$bucket = 'otus-test';
$keyname = 'NGC6543.jpg';
$s3 = new S3Client([
'version' => 'latest',
'region' => 'eu-north-1'
]);
$s3object = $s3->getCommand('GetObject', [
'Bucket' => $bucket,
'Key' => $keyname
]);
$s3request = $s3->createPresignedRequest($s3object, '+10 minutes');
$s3signedUrl = (string) $s3request->getUri();
echo "
";
?>