Day 2 - Adam Selipsky Kenote
Early start to walk to the Venetian for a coffee and some breakfast. I usually don’t function without a coffee so the 20 minute walk between Caeser’s and the Venetian was a bit of a challenge.
Another great warm-up band, and again some good aussie rock before Adam comes out on stage.
First announcement of the day was “S3 Express One Zone”. This is yet another tier of S3 storage that trades off the durability of storing your data across multiple availability zones, with lightning fast (single digit ms) access to the your data.
Next was the announcement of the Graviton 4 chip, improving significantly on the performance and efficiency of the Graviton 3 chip. This would be worthless without an instance to run it in, so the new R8g instance type will be powered by Graviton 4. While we’re on new chips AWS also announced their new Tranium 2 chip dedicated for training ML models. Again, faster and more effecient than the previous generation chip.
Of course re:Invent this year was going to be very ML/AI heavy… it is the new black after all. There were some GA announcements for Bedrock services that allow you augment the provided foundation models (FM) with your own data, but also keep your data private to you. “Fine Tuning”, “Retrieval Augmented Generation”. Coupled with this is the GA of Bedrock Agents allowing you to easily string together tasks in a simple workflow. In the spirit of responsible AI, AWS have also announced the preview of “Guardrails for Amazoon Bedrock” that easily allows you to filter for inappropriate content, or extract PII.
The big announcement though was “Q”, AWS’s new generative AI assistant for… everything. You can ask it generic wuaestions, ask it which AWS service to use, or how to wire it up. It has now even appeared as part of the AWS plugin for Visual Studio code.
As you can see above, it doesn’t recommend C# as the best language to use for lambda, I guess it’s not all-knowing. That does bring me to my next concern. While I love a good Star Trek reference like any other treky, I’m a little concerned that they chose a rogue diety to name their AI. Just hoping Q doesn’t get a big head as a result.
Q can also be trained on your own business data while keeping your data completely private. This makes it perfect for answering context heavy business related questions. It’s obvious that Q is AWS’s answer to Microsoft’s Copilot. Unfortunately they are a little late to the market with many large organisations already investing in Copilot, and the integration directly into office is a really difficult value add to combat. Unless Q offers significantly better results than Copilot, it’s going to be a hard sell for AWS.
Next was a series of Zero-ETL integration announcements. Amazon Aurora PostgreSql, Amazon RDS for MySQL and Amazon DynamoDB all now have a Zero-ETL method of integrating into Amazon Redshift. Similarly DynamoDB has a Zero-ETL integration into OpenSearch.
Continuing with the AI announcements, Amazon DataZone AI Recommendations can automatically add business context to your data catalog.
Building APIs: Choosing the best API solution and strategy for your workloads
I have been doing a lot of API work recently, so this session caught my attention. They speakers started by stating that “A good API abstracts implementation details”. Things important thing to think about is your access patterns:
- Temporal dependency (sync vs async)
- Initiation mode (one way or two way)
- Data Structures: Fixed or flexible
This will guide the decision of what type of API you require:
- REST
- GraphQL
- gRPC
- Async API (using http streaming)
From a service perspective, AWS provides multiple options to front your API, all with different trade-offs:
- API Gateway, great for public facing REST or Websocket APIs
- App Sync, designed for GraphQL
- Application Load Balancer
- VPC Lattice, great for internal APIs
- Lambda Function URLs, great for simple experiments or public facing no-auth APIs
To be honest, I had never realised that VPC Lattice could be used in this way. To make it worse, when I asked Q “what options can I use to expose an API”, it didn’t even offer VPC Lattice as an option.
Things to consider:
- Authentication
- Throttling
- Caching
- Prefer subscription over polling
Getting the most performance for your .NET apps from AWS SDK for .Net
I love making .Net apps run faster, so this was a must see for me. Tips from this talk:
- Only instantiate AWS service clients once in your Application. This is because the logic required to get credentials and region can be complex and take time to initialize. The clients also cache their http client, ensuring connection negotiation is only done once. Generally, you want to use your dependency injection framework to create a singleton of clients as your application requires them.
- STS Assume role is called by your lambda to get the permissions required. By default, (for legacy
reasons), this will use the us-east-1 region, which may not be the lowest latency endpoint for your
application. To ensure STS uses a the region the your application is running in, you can set an
environment variable
AWS_STS_REGIONAL_ENDPOINTS=regional
. - One issue with using the high-level Document Model, or Object Persistence model, is that by default the framework needs to perform a
DescribeTable
operation on the associated DynamoDB table. This only happens once, but it will usually be at the same time as your cold start initialisation, which can make the cold start feel even worse than it actually is. As of recent changes to the .Net SDK, you can now specify this metadata and forgo this call.
Of course if you want real performance, then there is always Native AOT. This does ahead of time compilation on your code, but of course it relies on trimming, which can be problematic. A lot of effort has gone into making sure the SDK itself is (for the most part) AOT compilable, but there are still parts (such as the high-level DynamoDB frameworks), that may well break if you use AOT.
Ambassador Drinks
Tuesday night saw me invited to 2 dedicated drinks events. First one was the AWS Ambassador drinks. This was an opportunity to meet other AWS Ambassadors from all over the world, as well as to touch base with the various leads of the AWS Ambassador program from AWS.
ANZ Drinks
After the AWS Ambassador drinks, it was down to Top Golf in the MGM Grand. This saw me essentially walk half of the Vegas stip, from the Venetian to MGM Grand… Very exhausting. Top Golf is a massive 4 storey, indoor(ish) driving range.
While having a hit and giggle on the driving range was a bit of fun, it wasn’t really conducive to mingling as you tended to stay in a small group of people. Still had a good time catching up with my former boss, Donna Edwards who now works for AWS, aws well as meeting some new aussies working with the AWS platform.