SQL or No?: Relational and Non-Relational Databases

sqltestMany cloud applications are not complete without a database storing information. Traditionally, relational databases like MySQL and Oracle provide the needed tools; although, with the advent of non-relational or distributed databases (more commonly known as NoSQL), various alternative options have arrived to counter the conventional SQL solution.

Amazon Web Services (AWS) is one company that capitalized on the wealth of database options, providing users with multiple services for database management. However, before we delve into the differences between AWS database options, just what is a relational database? And what does NoSQL really mean? (more…)

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…)

Cloud Cadet #4: AD and LDAP services within AWS

Welcome to episode four of Cloud Cadet. Today we are joined by instructor Stephen, and our co-hosts Anthony and Christophe. Stephen will be showing us some content for his course Active Directory and AWS.

This course stems from the need many enterprises have for Active Directory, which allows for credential management. Active Directory is stored on-site, but many need to extend their Active Directory environment to AWS. Today, you will discover the what, why, and how of Active Directory on AWS.

Topics include:

  • Setting up and managing services for AD with AWS solutions
  • Gaining fine-grain control by getting rid of permissions
  • Spinning up VPN instances
  • Looking inside site to site VPN
  • Binding Windows and Linux servers

Stephen first shows us an existing environment he has created by building two separate AWS accounts with separate VPCs. In them, he has spun up VPNs. For more details on how to perform these actions, please see the course itself.

He then uses an already existing AD domain controller located in one of these environments and shows us how to bind a Linux server using an AD credential to the AD environment. Additionally, both AWS accounts are tied together with an openswan VPN.

He walks us through a variety of options for these accounts and on-premise networks. The idea is that regardless of whether it is between various AWS accounts and regions, or an AWS account and on-premise servers, you can certainly have a site to site VPN connection set up. Stephen also explains how to work between various VPCs in different regions.

Stephen moves on to bind a Linux instance into his AD domain. This is done through an EC2 instance setup in AWS, where he sets up a user to use as a Linux credential, versus using local instance authentication. A step-by-step narration of this is also provided within the course.

Stephen then jumps into a Linux instance that he first had to bind with the domain. He joins this particular instance to the domain using a realm command.

We also learn that we have the opportunity only to allow certain users to bind through AD to our server, and have the chance to allow only serving groups in AD to log onto the domain.

This is where some of the power of managing Linux servers comes in, using existing enterprise solutions such as AD.

Thanks for tuning in for this week’s edition of Cloud Cadet. Be sure to stay tuned for all-new episodes coming soon.

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.

(more…)

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…)

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.

Preparing For The AWS Certified Solutions Architect – Associate Level Exam

Amazon Web Services has done nothing short of disrupting the traditional data center paradigm. Large corporations to small startups are testing, prototyping, and sometimes flat out converting large scale data centers to Amazon Web Servers. Running applications on Amazon Web Services isn’t exactly the same as running them in traditional hosting environments. In some ways it feels the same and in others it feels, well, incredibly better.

With AWS we can build our applications on top of a scaleable and elastic, fault tolerant infrastructure that helps react automatically to any change in demand for your app. Here is the most common misconception of the cloud, it’s not magical. It doesn’t just “do everything for you”. You still need to build on it, code it, automate it, configure it, network it, and everything else. You just do it differently now. To help prepare organizations and individuals for this process, Amazon recently announced a certificate program called AWS Certified Solutions Architect – Associate Level.

I’ve recently had the opportunity to sit in on this exam and pass it on the first try. Without breaking any NDA’s I agreed to while taking the exam, I’m going to attempt to help you “prepare” for the exam. After reading several other posts on the internet, I notice that they are pushing you disproportionately towards services such as VPC (Virtual Private Cloud). Lets see if we can’t clear a few things up and help you prepare for this exam.

(more…)

Amazon_S3_O

How To Host Static HTML Web Sites With Amazon S3

Sometimes you need to host a static website somewhere. It might be a simple index.HTML page that you can easily redirect servers to in case of downtime for your current site or for simple documentation. How you use it is really up to you. But Amazon S3 now has the ability to “host” static HTML pages. This means that if you provide the link to your .html page the Amazon S3 bucket will think it needs to interpret that as a website and display it accordingly. This behavior is different than it used to be, Amazon would only allow you to download the object and not display it in a web page. Let’s set up an index.html page in our Amazon S3 bucket.

(more…)