to post messages and comments.

This IAM Role trust relationship configuration allow IAM User from another account to assume current role

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::USER-ACCOUNT-ID:root"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"aws:username": "USER-NAME"
}
}
}
]
}

get current version of deployed by docker application on aws (hard way)

on linux host with access to ECR
```
# get login string
aws ecr get-login --registry-ids ECR-ACCOUNT-ID --region ECR-REGION
# get latest deployed image
docker pull ECR-ACCOUNT-ID.dkr.ecr.ECR-REGION.amazonaws.com/ECR-NAME:latest
# run and verify
docker run -it ECR-ACCOUNT-ID.dkr.ecr.ECR-REGION.amazonaws.com/ECR-NAME:latest bash
# list ontainers to get container ID
docker ps -a
# docker cp CONTAINER-ID:/file/path/within/container /host/path/target
# create APP-NAMEzip with application files
zip -r /tmp/APP-NAME /tmp/APP-NAME
```

on win host
```
# register environment key file in putty
# run copy command
pscp -r [email protected]:/tmp/APP-NAME.zip d:\
```

неск инстансов находятся в placement group. Теребят redis, мастер которого находился вне плейсмемента. После переключения мастера на машину внутри плейсмента общее латенси (p75, max) не поменялась (ну, может на 1мс (и чуть меньше дрожит), но у этой тачки чуть лучше проц). Enhanced networking включён.

manual deployment of elastic beanstalk application:


upload new package version to s3

aws s3 cp app-package.zip s3://packages-bucket/packages/manual-app-0.zip --profile yourprofile

create new version in beanstalk

aws elasticbeanstalk create-application-version --application-name some-app --version-label "manual-0" --source-bundle S3Bucket="packages-bucket",S3Key="/packages/manual-app-0.zip" --profile yourprofile

update beanstalk to new version

aws elasticbeanstalk update-environment --application-name some-app --environment-id e-someid --version-label "manual-0" --profile yourprofile

дано:
aws инстанс, на нём нода, в которой работает консенсус протокол, тут важно только то, что раз в N секунд лидер должен подтвердить свое лидерство, т.е. используется какой-то там таймер. Лидер периодически его теряет (хотя при той нагрузке что есть не должен), и на реальном железе, и в виртуалке не воспроизводится. Но, стоит мне включить кучу debug логов, как все начинает работать и лидерство не теряется, хотя казалось бы должно быть наоборот.

Куда тут вообще можно копать?

Жуйка, подскажи, что лучше GridFS vs S3. Вот сижу и думаю, что будет лучше. Засунуть все свои файлы в ГридФС Монги и заморочиться с амазоновским С3.
GridFS выглядит няшно, репликации, шардинг, относительно секурно. Мне часть файлов нельзя напрямки отдавать.
S3 привлекает простой хранения и масштабирования.
Задача — хранить миллионы mp3-шек и документов.
Я тут еще на Swift смотрел, но мутное оно какое-то.

youtrack.jetbrains.com

There are couple issues with push agent functionality:

— by default wrapper.ntservice.interactive setting in the buildAgent/launcher/conf/wrapper.conf configuration file is set to true — this brings to error during agent installation with psexec:


in the push agent logs:

bootstrapper.exe exited on MY_AGENT_HOST_IP with error code 255.
Remote agent installation failed: Command 'D:\:\teamcity\temp___5060497447753492559\cli-wrapper.exe D:\teamcity_data\system\pluginData\psexec\psexec.exe /accepteula \\MY_AGENT_HOST_IP -e -h -u MY_USER -p ********** -c -f D:\teamcity\temp___5612841585882618839\bootstrapper.exe bootstrap -u MY_TC_MASTER_HOST – bin\install.bat MY_TC_MASTER_HOST C:\\BuildAgent 27f25fcd78b2812602f9a14ea6756bae' was executed with error message(s): Execution error. Return code=255


in the windows event logs on agent host:

The TeamCity Build Agent service is marked as an interactive service. However, the system is configured to not allow interactive services. This service may not function properly.

— it would be good to determine if push agent functionality used to install agent on EC2 host and set wrapper.ntservice.dependency.1=Ec2Config setting of the buildAgent/launcher/conf/wrapper.conf configuration file. As mentioned in manual (https://confluence.jetbrains.com/display/TCD9/Setting+up+and+Running+Additional+Build+Agents#SettingupandRunningAdditionalBuildAgents-BuildAgentasaWindowsService). Or provide corresponding configuration option in the Agent Push preset configuration dialog

— to simplify agent push configuration on the AWS please add note to manual about 445 port that should be configured in the AWS::EC2::SecurityGroup attached to build agent host. This allow to communicate psexec from TeamCity server host with build agent host

по умолчанию aws beanstalk настраивает auto scaling group использовать ec2 метрики для определения жив хост или нет. так не пойдет если там хоститься веб приложение, так как дееспособность веб приложения определяем elastic load balancer дергая health check url.

чтобы заставить aws beanstalk использовать метрики балансера для определения здоровья хоста нужно добавить в пакет следующие настройки:

docs.aws.amazon.com

Из cloudformation темплейта эти настройки прокинуть нельзя :(

Пощупал немного немного terraform (terraform.io):

pros

— changes can be previewed before it applied (https://www.terraform.io/docs/commands/plan.html and terraform.io
— have a modules (https://www.terraform.io/intro/getting-started/modules.html) system that allow to reuse existing configurations
— have no lock to AWS and allow to work with different resources (https://www.terraform.io/docs/providers/)
— have templating (https://www.terraform.io/docs/providers/template/)

cons

— there is no creationpolicy (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-creationpolicy.html) alternative github.com
so we have no ability to check if instance configured properly in easy way
— there is no ability to configure AWS::CloudFormation::Init (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-init.html) metadata
so we have no ability to work with host configurations that already written. (could be replaced by Chef terraform.io
— there is no ability to work with AWS Roles yet (https://github.com/hashicorp/terraform/issues/1275)
so we need to provide AWS access and secret tokens

language support in Atom

atom.io

Dear Amazon Web Services Customer,
There was a problem with your account 12345. We were unable to charge your credit card for the amount of $AMOUNT for your use of AWS services during the month of Oct-2015. We will attempt to collect this amount again. Unless we are successful in collecting the balance of $AMOUNT in full by 11/30/2015, your Amazon Web Services account may be suspended or terminated.
Почему-то ассоциируется с историями когда коллекторы звонят бабушке в Сибирь на холодильник.

Introducing AWS CloudFormation Designer for Visually Authoring Templates

aws.amazon.com
aws.amazon.com
docs.aws.amazon.com

Незнаю насколько удобно будет, но визуальной части давно не хватало — что бы все зависимоти просмотреть одной кучкой.

Ну и CodeDeploy теперь в темплейты писать можно, давно пора:

aws.amazon.com

Version 3 of the AWS SDK for .NET is available for production use in .NET 3.5 and 4.5

The new version is distributed as several per-service packages on NuGet. The package names take the form of "AWSSDK — [service name]", allowing you to conveniently find, install, and depend only on the packages your application needs. This allows us to be more agile in delivering API updates to customers, and customers get the benefits of smaller dependency footprint, faster deployments, and the ability to individually update AWS service clients.
aws.amazon.com

docs.aws.amazon.com

blogs.aws.amazon.com

Попробовал я тут разрекламированную (@docker усилено ретвитит все сообщения об этом, что даже большой AWS любит docker) фичу поддержки деплоя docker контейнеров в aws beanstalk.

Как идея хорошая. Я уже и так стараюсь заворачивать всё что могу в контейнер, это как минимум удобно для тестирования деплой скриптов, можно проверить всё ли запускается и не упустили ли какой пакет для установки (с docker это намного быстрее чем с vagrant). Плюс можно прогнать тесты в том же окружение в котором будет работать и продакшен версия.

Идея отличная, но реализация у AWS страдает. Есть как минимум две проблемы:

1. goo.gl нет возможности пробросить переменные окружения в контейнер, что очень странно т.к в обычное EB приложение возможность есть. Выглядит просто как недоработка, это должны починить, а еще лучше если добавят поддержку fig
2. goo.gl проблема хуже, при деплое сборка контейнера завершается с успехом, но процедура отваливается по таймауту, подозреваю что-то крашится на стороне утилит aws для сборки и запуска контейнеров. От этого можно выкрутится, следовать совету просто убивать инстанс и ждать пока балансер поднимет новый или подготавливать контейнеры самим и выкладывать на свой приватный хаб (EB поддерживает приватные репы), но это лишние телодвижения.

Еще из минусов:

— сборка контейнеров при деплое очень долгая, т.е не только в первый раз когда надо спулить основные слои, а всегда
— чувство что делали для галочки

Если коротко то EB пока сыроват для docker что печально, т.к на мой взгляд EB самый простой способ поднять бэкенд с возможностью настроить автомасштабирование без больших проблем.

читаю тут доки на boto:
---
Return type:  
Reservation
Returns:  
The boto.ec2.spotinstancerequest.SpotInstanceRequest associated with the request for machines
---
при этом SpotInstanceRequest и Reservation - реально разные классы.
Ну вот как так можно?

Попробовал я тут amazon beanstalk и мне понравилось (если не смотреть на цены амазона в целом). Аля такой GAE стайл но без завязки на платформе. Т.е можно поднять например проект который будет сам масштабироваться, правда это не касается RDS, потому что понятно mysql/postgres автоматически скейлить сложно.
Но больше всего мне понравилось что решается вопрос деплоя, такой упрощенный вариант шефа, больше похожий на хероку. Не надо сильно администь, думать как держать нагрузку и как деплоить на десятки машин.

Пока не поменял ендпоинт европейскому бкету на EU-шный. При аплоаде периодически пугал меня ошибками
hClose: resource vanished
и
FailedConnectionException "bucket_name.s3.amazonaws.com" 443
после удаления. Хотя и удалял
Срань какая-то...

если у кого-то при использовании амазоновского фарволла при большой нагрузке иногда теряются тсп-соединения от линуксов и маков, то возможно стоит отключить tcp window scaling на сервере. Нам эта "особенность" файрволла амазона попортила немало крови.