A Quick Guide to DynamoDB Secondary Indexes

When you create tables in DynamoDB, you must specify primary key attributes. These primary key attributes can then be used to retrieve data from your tables.

To more efficiently find your data, DynamoDB creates indexes for those attributes. Sometimes, however, you may need to query data using an attribute that’s not in one of your primary keys. This is where secondary indexes can help.

DynamoDB Table to illustrate primary keys (partition keys and sort keys) and secondary indexes
DynamoDB and primary keys (partition keys and sort keys) and secondary indexes

In the example above, we have a Reply table for our forums. The Id is our partition key, ReplyDateTime our sort key, and these two attributes make up our primary key. This primary key can be used to query data.

Say we want all of the Amazon DynamoDB#DynamoDB Thread 2 threads. We can query for that, and DynamoDB, in turn, gives us 3 items that match this query. Since we have ReplyDateTime as a sort key, we could also ask for replies after a specified date.

But what if we wanted to query by users who posted replies? We can’t use the PostedBy attribute to pull up all of User A’s messages because it is not a key attribute.

This is where secondary indexes come into play. Depending on the secondary index that we use, we could set PostedBy as another sort key (in addition to the ReplyDateTime sort key) or even set PostedBy as a partition key! Both of these options give us the ability to filter messages by user. (more…)

Serverless Architecture

When people aren’t talking about Docker and containers, they’re usually talking about serverless architecture — code that runs without servers. How is that possible? Well, technically, the code still runs on servers, but you’re not the one in charge of managing them. It’s kind of like the cloud, where people just accept that data goes in the cloud and comes back out just the way you requested it. Of course, we know it’s not that easy. There’s a lot that goes on behind the scene. The same holds true for “serverless” code execution… and it’s really cool.

How exactly does it work? To explain and illustrate, I’ll be talking about AWS Lambda. AWS Lambda allows you to focus on code by completely removing the need to think about servers. You write a function with a specific goal (i.e. insert a value in DynamoDB), you set the correct permissions (i.e. Lambda can write to DynamoDB), and all you have left to do is tell the function when to execute. How does it know when to run? Events. When an event occurs, it automatically triggers your function. Events can be things like user signups, user uploads, updating view counts, and more. These events can come from your applications, like mobile and web applications, or even from Amazon’s own services. Available services include Amazon S3, DynamoDB, Kinesis, SNS, Simple Email Service, Cognito, CloudWatch Logs & Events, CloudFormation, and Scheduled Events. As long as you properly configure Lambda and the appropriate service, you can have them working together automatically. That’s pretty powerful.

Let’s take a look at an example: (more…)

New Course: Active Directory and AWS

With a new month upon us, we’re happy to announce our newest AWS course: Active Directory and Amazon Web Services. Taught by Stephen (Linux Essentials, Advanced AWS Security, and more), the course covers the initial setup and integration between AWS and Active Directory, using Active Directory in conjunction with AWS, and more advanced options.


Cloud Cadet Episode 2: Advanced AWS Security with Barracuda’s WAF

Welcome to this episode of the Cloud Cadet Podcast. Today, Anthony and Christophe sit down with Linux Academy’s core OpenStack instructor, Stephen. Stephen has been an instructor with us for just about two years. He features our Linux Essentials course (which is where we suggest everyone should start), but today he’s going to be talking a little bit about AWS.

We’re going to set up a web application firewall, specifically, Barracuda’s WAF. Stephen shows you just how easy it is to use the marketplace to spin up the WAF and configure security groups to get it up and running. (more…)

Cloud Cadet Episode 1: Ansible and AWS

Welcome to the first episode of the Cloud Cadet podcast, brought to you by the Linux Academy. Our goal is to provide you with good how-tos, talk about the current technologies in the cloud, and help you run your cloud to perfection. Meet your hosts, Anthony James, and Christophe.

Anthony is the founder of Linux Academy while Christophe just joined us a few weeks ago and is super excited to keep going. He is the founder and owner of the Scale Your Code podcast, where he interviews all kinds of people from Twitpic, Google, Netflix, and more about the scalability of web performance, web performance, and web security. It is a lot of fun – click here to check it out.

Every episode, we’ll have a guest instructor who’s been working on content for Linux Academy. They talk about what they’ve been doing, the goals behind their courses, and they’ll show us comprehensive step-by-step demos so you can follow in their steps.

All three of them are AWS instructors, so maybe you have an idea of where this is heading: You’ll get a lot of useful knowledge from this show, and you will be particularly interested today if you like Amazon Web Services and Ansible.

We sit down with Terry, who’s been with Linux Academy for about three years. Today he is covering Ansible and the details of using it with AWS. He walks through a quick demo about how to instantiate an EC2 image and explains some of the environmental setup that you have to go through if you are going to use it with AWS. (more…)

New Year, New Courses!

With the New Year comes new courses from Linux Academy! Five new AWS courses are now available for all Linux Academy students. Extend your professional knowledge of Amazon Web Services with Ansible and Amazon Web Services, Advanced AWS Security, Lambda Deep Dive, Using the EC2 Container Service, and Docker and Elastic Beanstalk.
Fresh from our Ansible course and curious how to integrate the popular DevOps tool into an AWS infrastructure? Look no further, Instructor Terry provides an in-depth look at how Ansible and AWS can integrate. The course covers basics such as installing Ansible on various Linux distros, creating and managing your environment, AWS resources and modules for Ansible and use cases wherein you can practice creating and optimizing your Ansible Playbooks.
Learn how to protect your AWS infrastructure in Advanced AWS Security. Starting with an overview of the Shared Responsibility Model, this course goes into how to protect your data through a variety of points. Includes information on managing access to EC2 instances and resources, securing data at rest and in transit, network security, key pair usage, security groups, VPC security, flow logs, network ACLs, WAFs, and an IDS and IPS overview. Walk away from this course secure in your knowledge that you can secure a system.
The first course from our newest instructor, Christophe (creator of Scale Your Code) will provide in-depth information regarding AWS Lambda, which allows users to run code without provisioning or managing servers. This course covers Lambda fundamentals, Node.js, and Python Lambda functions, testing Lambda functions, and using Lambda functions in the CLI, with more content to be released!
Discover how to manage a cluster of Amazon EC2 instances with AWS’s EC2 Container Service. Learn about containers, container architecture, user and group setup, security, cluster creation, Docker integration, scaling, troubleshooting, performance metrics, and other skills to keep your clusters highly-available and performing at peak.
In another combo of DevOps and AWS, the Docker and Elastic Beanstalk course will teach students how to set up and configure the container solution Docker on Elastic Beanstalk, Amazon Web Services’ solution to deploying and scaling web applications. The course contains introductions to both Docker and Elastic Beanstalk, Docker set up, Elastic Beanstalk set up and CLI configuration, and use case examples where you will use the wizard to set up your “app,” learn the environment, review Elastic Beanstalk command line basics, and more.

Announcing the Linux Academy Mobile App for iOS and Android!

You asked for it, and the Linux Academy is delivering!

We are pleased to announce the addition of a mobile app for all of our users.  Coming February 2016, iOS users will have access to the Linux Academy mobile app via the App Store, with the Android version coming to Google Play by the end of 1Q 2016.  The app will be free for all users, but will require a membership with the Linux Academy to use.


Once logged into the app, students will be linked with their normal account.  Your course progress will be linked across any device that you log in from.  You will also have the ability to begin new courses straight from the app.

View your progress from the app.
View your progress from the app.
All modules are available on the app
All modules are available on the app

Don’t have the ability to stream videos?  Not a problem!  Download and save videos directly to your device for offline viewing!

Steam or download - your choice!
Steam or download – your choice!

In addition to regular courses, you can access nuggets and quizzes as well.  Note: labs are not available on the mobile app.




The mobile app is just another tool that Linux Academy provides for you to have the BEST learning experience on the web for Linux and Cloud training.  Enjoy!

Introducing Practice Exams v2.0!

We’d like to take the time to announce an exciting new feature that is now available on LinuxAcademy.com!

Our goal is to help you pass exams and get certified for your career.  We are very proud of our courses, and have recently made a significant upgrade to the way Practice Exams work.  Not only are practice exams a great way to study, but also it teaches you how to manage your time in an exam.

When you start a new practice exam, you will have the option to take a regular exam, or to enable Practice Mode.


Regular Mode loads in a pre-set number of questions and a pre-set amount of time for you to take the exam. For example, if you’re taking AWS CSA Associate in Regular Mode, it will load 60 questions and give you 80 minutes to complete the exam, just like a real exam. These questions are random questions, the potential answers are randomized each time, and each time you run the practice exam it will randomly pull from the potential pool of questions. In order for the practice exam to be checked off of your syllabus towards your certificate of completion, you must complete the exam successfully in regular mode.

But, what if you are short on time? What if you want to answer more questions in a shorter duration? Or, do you want less questions but a longer amount of time? It doesn’t matter, you can have all! In Practice Mode, you to select your time limit and the number of questions (up to the maximum amount in the potential pool) and then take the practice exam. This helps you prepare in any different way you want for the exam, and it puts flexibility into the practice exam system based on your current needs.


Remember, you have to use Regular Mode to complete the practice exam from the syllabus. In other words, you can’t enable Practice Mode, select 2 questions and 1 hour time and it count towards your Certificate of Completion.

Here is a summary of the new features available on the practice exam system:
1. Will display the total number of questions in your exam session
2. All practice exams are now timed. If time runs out, it will automatically submit the questions you currently have for grading.
3. Practice Mode allows you to define the number of questions and time limit for an exam session
4. Question order is randomized each time a new practice exam is started
5. Answers associated with a question are also randomized each time a new practice exam is started

Please note we are still loading pre-sets for some practice exams. If a pre-set is not currently available, it will default to the max questions and max time.

Re:Invent Recap and 9 Linux Academy Students Pass Certifications At Re:Invent (100% pass rate!)

WOW! This week at Re:Invent was truly a cool experience. Not only did we get to see a lot of new services and meet some neat people, we had the opportunity to see 9 certification exams taken by Linux Academy students and 9 certifications issued to Linux Academy students! That is awesome! First off thank you students who took the opportunity to share your success at re:invent with us! If your a Linux Academy student you can go into the community and talk with these other students. If not check out our public community archive to see what they had to say about passing!! It can be found here https://linuxacademy.com/community.

If you are interested to hear a recap of what was released at re:invent as well as what it might mean for the AWS Certifications check out our AWS Re:invent Linux Academy Show below!

New Live Lab!™: Troubleshooting Connectivity Issues

Today we introduced our first of many troubleshooting Live Labs!™ for our AWS labs. This specific lab is setup to help SysOps practice there VPC and EC2 instance connectivity issues. The lab is build in such a way that “tasks” are needed to be completed in order to resolve the connectivity issues displayed in the lab situation. This lab was added as part of complete training course including over 20 hours of training, videos, practice exams, and labs for the AWS Certified SysOps Administrator – Associate Level exam and our current 80+ hours of AWS Certification Training.