This is my first blog post that actually is somewhat technical.
I will not give you secret sauce. I will just share what works and what not.
So, first of all – internet is full of guides and how-to’s, but they all lack fundamentally one thing – context. So, this post will give minimalist context and minimalist steps to make things happen.
General expectation is that you know what AWS and what EBS is. Do not know that? This is not for you. Bye.
Right. Back to the topic.
There are 3 ways that makes the AWS ELB deploying your ‘application’ successfully. They are:
1) Using Standalone Deployment Tool – awsdeploy.exe . It comes together with AWS Toolkit for visual Studio. In fact AWS gives good documentation on how to use it at . But – it is not enough. What you need to do to make your newly created Application and Environment working is:
1.1) Deploy the ‘Application’ ( Built and Packaged .NET/ASP.NET/ISS/C# application ) via Visual Studio UI for first time. If you will not do it, then the needful components will not be created and you will hit your head or run into the wall for infinite period of time. Once that is done, you then should be able to deploy via awsdeploy.exe onwards w/o issues.
1.2) Permissions are handled by deploying the zip archive, that consists of files like ‘parameters.xml’. Define the zip, holding these files, for a deployment and you should be good.
2) Powershell cmdlets. You can do it using AWS Tools for Powershell. It comes with AWS Tools for Powershell. Here, there is no big issues as the rest of config happens via standardized .ebextensions and .elasticbeanstalk. BUT. There is a catch. It is IIS ACL configuration, which is pain in ass. I have not made it work via cmdlet way and as seen in Stack-overflow .. nobody has.
2.1) If you will be using Option 1, these two .<> directory config files will not be used. Instead, you have to handle the configuration of Beanstalk via the config file that you have to pass to awsdeploy.exe AND aws-windows-deployment-manifset.json, in the ‘Project’ root to handle the IIS configuration (like msdeploy targets, used by CSPROJ builds or custom section for things like file extraction).
3) Using ‘eb’ cli. It comes with AWS CLI. Here, there is no big issues as the rest of config happens via standardized .ebextensions and .elasticbeanstalk. BUT. There should be a catch! 🙂
3.1) This is expecting you are building the source into deployable ‘Package’. If you have CI or any other way to generate the Package, this option is not really for you unless you are using Windows instance for building and ‘Publishing’ ( a.k.a deployment ).
As of now, I am going for hybrid solution by combining option 1 and 2.
And it bloody works!!!!!1!!!!!11111111
P.S. List of issues you might hit through the process: