I am trying to figure out how AWS auto scaling can work together with AWS BIG-IP/F5 LTM. Did quite some investigation. Unfortunately could not find helpful information and I doubt that this can be accomplished in a reliable way.
states: "*Users can additionally leverage scripts to automatically spin up nodes as needed, enabling organizations to execute on an auto-scaling strategy without needing to build out a complicated system"
-> Sounds good, but is it true or just big words ? How ?
White paper page 6 : http://www.f5.com/pdf/white-papers/migrating-tier-1-application-workloads-with-aws-white-paper.pdf
tell about the same, not talking about interesting details.
Main issue to me is: how to dynamically and automatically change F5 LTM pools properly, when AWS auto scale adds new servers (instances) with some new (dynamic) IP address, or delete any server. I know I could basically use tmsh on the F5 to change pool members. But how could this be triggered by AWS (e.g. CloudWatch, SNS) in a robust way ? I don't see one so far.
Any hints or even experiences ?
Thanks a lot.
Update to this...
1) In version 12.0 BYOL, you can integrate BIG-IP with an auto-scaled group of pool members.
2) When the utility version of 12.0 is released (target is mid December), you will be able to auto-scale BIG-IP as well.
Also in 12.0 (BYOL and utility), CloudInit has been installed on BIG-IP, so that BIG-IP can be configured at launch to start handling traffic (key for #2) above with user data scripts.
I'll be writing some articles on this stuff soon, and will post back here. Until then, here is the latest setup guide which discusses pool member auto-scaling. It refers to CloudFormation templates hosted on DevCentral that help with the setup process.
Check out this new feature in 11.6.0:
You can configure a BIG-IP system with nodes and pool members that are identified with fully-qualified domain names (FQDNs). When you configure pool members with FQDN, addresses will dynamically follow DNS changes. Fully dynamic DNS-managed pools may even be created. In the following illustration, the BIG-IP Local Traffic Manager creates an ephemeral pool member for each IP address returned in the DNS response.
Does anyone know if there is a way to replicate this in 11.5.1? We just upgraded from 10 to 11.5.1, were advised against 11.6 because at the time it had just been released and therefore an unknown quantity. We now find ourselves with the need to do exactly this with our company putting more and more systems into AWS. I can plan for an upgrade to 11.6, but it would be good to know if this feature can be replicated in 11.5.1.
Thanks for the info.
Look at this: https://devcentral.f5.com/articles/automating-web-app-deployments-with-opscode-chef-and-icontrol or add a ssh command to add the IP to the pool in question in rc.local of your AMI. You can modify the shutdown command to remove it when the group is scaled down.
I have implemented something similar which uses AWS SNS to add/remove nodes from pools. Its a Flask based small microservice which listens for Autoscaling events. Give it a shot .
There is now an Auto Scaling guide available for an immutable deployment: https://support.f5.com/kb/en-us/products/big-ip_ltm/manuals/product/bigip-ve-autoscaling-amazon-ec2-12-1-0.html
There are also AWS CFTs created by F5 available here: https://github.com/F5Networks