We may earn an affiliate commission when you visit our partners.
Gernot Glawe

AWS supports many programming languages with SDKs. GO is a powerful language, but what is lacking is a complete reference not only for writing applications, such as AWS Lamba Functions, but also for Infrastructure as Code. Starting with basic programming knowledge, you get expert tips from real-world projects on how to build fast, secure and cost-effective applications with GO on AWS.The course is written for students with basic AWS knowledge and experience in at least one other programming language like python or javascript.

Read more

AWS supports many programming languages with SDKs. GO is a powerful language, but what is lacking is a complete reference not only for writing applications, such as AWS Lamba Functions, but also for Infrastructure as Code. Starting with basic programming knowledge, you get expert tips from real-world projects on how to build fast, secure and cost-effective applications with GO on AWS.The course is written for students with basic AWS knowledge and experience in at least one other programming language like python or javascript.

We begin with GO fundamentals with many hints for a student from other languages. Building on that knowledge, we discover the possibilities of the AWS SDK - the software development kit. How to call services on a basic and more abstract level.

To build projects on AWS, you also need infrastructure like a storage bucket or a Lambda function. Modern infrastructure is built with IaC - infrastructure as code. We explore the AWS CDK - the cloud development kit. With GO, you gain speed an another level of type safety.

Having created some resources, we dive into the world of serverless. GO is one of the best languages for serverless programming because of the speed and the go compatibility promise. With python or javascript, you have to update often because of new runtime versions. Not with GO.

Now that we have learned all the building blocks, it’s time to look at more complex architectures. We discuss container and serverless applications, and both build with GO.

The chapter about different types of the automated test give you insights into building applications with high programming quality.

All that is waiting for you, so let`s GO.

Enroll now

What's inside

Learning objectives

  • Coding in golang
  • Using go for aws serverless projects
  • Doing infrastructure as code with go on aws
  • Using test driven devolpment for go applications and aws infrastructure

Syllabus

Getting to know the content

This is an Introduction to the different sections of the course. Feel free to skip if you want to start!

Basic programming in GO
Read more

How to download and install GO in different environments.

GO is


- Fast

- Mature

- Quality through rigidity , e.g. static typing(*)

- Less maintenance costs

In this first exercise you will learn about the three levels of exercise:
1) Challenge: Just use the description and try it own your own
2) Free: Use step by step example without code
3) Guided: Watch the video

Basic Data Types

Starting with simple variables.

Your first program. We start with just a few variable declarations.

Variable scopes are vital to understanding that sometimes different variables may have the same name!

Variable scopes are vital to understanding that sometimes different variables may have the same name! To fully understand scopes, we do an exercise.

Do you think pointers are complicated? They are no. Let me give you a simple explanation.

Advanced Data Types

This first datatype is available in almost any programming language. The only difference is the fixed length. Let's explore this.

Slices are the better arrays. Have a look at the most crucial type in GO.

Maps, dictionary - the name is different across the programming languages. Maps are your small database, so check it out.

Structs and Interfaces

Structured are composed of datatypes.

Structures start easy and become more complex to be the solution to complex problems.

You will use structures often used in AWS. So it is worth some training.

This lecture is about how GO implements the features of dynamic languages. Prepare for enhanced duck-typing.

Modules

Modules are the base of the GO dependency system since GO 1.13.

Modules are the base of the GO dependency system since GO 1.13. You will use them in almost every program. So it is worth an exercise.

Functions

Functions are just functions. This lecture is about how to define and call them. Again GO has its ways of solving problems.

Train functions executing through different parts of the program.

GO is object-oriented. It just concentrates on vital features.

This lecture shows you how to deal with the AWS event JSON files.

A late introduction to interfaces.

Control Flow

The most famous control statement.

Combine multiple ifs with switch.

The only loop you need.

Using the AWS software development kit in GO

Access all AWS services with the GO SDK.

This lecture combines GO knowledge and basic SDK knowledge.

Access the EC2 service - a starter for AWS API usage.

How to write files, aka objects to S3.

Simple Service Examples with the GO SDK V2

This lecture is a short introduction to the CloudFormation service API.  Code a stack counter!

This exercise goes one step further: List all resources inside a stack.

This lecture shows a safe way to distribute files.  You implemented it as a command line app.

You implemented it as a command line app.

S3 - handling storage with GO

This lecture is a short introduction to the S3 storage service.

With S3, you can save a large number of files. This lecture shows you how to handle this in a fast way. Also, this is the introduction to concurrency in GO with goroutines.

With S3, you can save large files up to 5TB. Put the standards API calls are only working up to 5 GB. Meet multi-part-upload.

This lecture shows the different ways to trigger events: Direct, SNS and event bridge.

DynamoDB

The lecture is an introduction the NoSQL storage service DynamoDB.

The lecture explains the basic DynamoDB terms.

Simplify data access with structures. Migrate json events to structs.

The standard DynamoDB way to query data is quite complicated. The expression package helps!

STS - Secure Token Service

This lecture teaches how to use an IAM role. Roles enable cross-account access.

Creating AWS resources with the Cloud Development Kit - CDK in GO

This lecture discusses Infrastructure as Code (IaC) - written in GO.

This lecture shows you how to create your first AWS-CDK (Cloud Development Kit) program.

Here I show you some features which helped me - a lot!

Let me show you the actions from zero to hero with IaC with CDK.

Much simpler as in the SDK section: Create a DynamoDB Table with the CDK,

Code and deploy serverless projects on AWS in GO

Serverless computing needs no introduction - I will do it anyway. What are the bases of serverless computing on AWS? What is synchronous and asynchronous lambda execution?

Updates

  • V2 - 2023-07-30 "custom runtime on Amazon Linux 2"

    • Video: Appended at minute 26:30

    • Slides: L49-serverless-v2.pdf

    • Sources: lambda-go/lambda-cdk/hello-world-custom

It's good to know the different deployment options. Are dependencies files too large? Use container deployment. Is deployment too slow? Use fast direct deployment. Let me show you how!

DSL: DynamodDB, S3 and Lambda - this is one standard serverless architecture!

Create the standard serverless architecture!

Test driven development für applications and infrastructure

Automated testing enhanced program quality. This lecture introduces the integrated testing pyramid. We look at Unit and integration testing for program and infrastructure code both.

Basics of writing GO unit tests. Batteries included!

AWS stores events as JSON. What is the structure of an event? How to deal with these events?

This lecture is a short introduction to interface-based API unit testing.

This lecture shows the more flexible, straightforward solution to test AWS API calls that keep your program code untouched. AWS mocks with reflection!

Unit, Integration and End2Ende testing

This lecture explains how to test the generated CloudFormation of a CDK app.

Now we define integration testing with CDK/IaC: Test the deployed infrastructure.

I will show you the definition and practical execution of all parts of the integrated test pyramid.

Using the additional tools

I use task a lot - it will be helpful to you also.

This lecture shows how to use d2 - a new approach to generating architecture diagrams. After IaC - DaC. Documentation as code with declarative diagrams.

What you have learned and where to go from here

Congratulation - Good job!

You finished the course and learned a lot.



Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Provides expert tips from real-world projects, which can help learners build fast, secure, and cost-effective applications with GO on AWS
Starts with GO fundamentals, offering hints tailored for students familiar with other languages, easing the transition and accelerating the learning process
Explores the AWS CDK, which allows learners to use GO for Infrastructure as Code, potentially increasing speed and type safety in their projects
Covers automated testing, which gives learners insights into building applications with high programming quality and robust infrastructure
Requires basic AWS knowledge and experience in at least one other programming language, which may exclude absolute beginners from fully benefiting
Uses GO modules, which are the base of the GO dependency system since GO 1.13, so learners should be aware of potential compatibility issues with older versions

Save this course

Save GO on AWS - Coding, Serverless and Infrastructure as Code to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in GO on AWS - Coding, Serverless and Infrastructure as Code with these activities:
Review Basic Programming Concepts
Reinforce fundamental programming concepts like data types, control flow, and functions to prepare for learning GO.
Browse courses on Pointers
Show steps
  • Review notes and materials from previous programming courses.
  • Complete practice exercises on data types and control flow.
  • Write simple programs to solidify understanding of functions.
Review: 'The Go Programming Language'
Gain a deeper understanding of Go syntax and best practices by studying a comprehensive guide.
Show steps
  • Read the first few chapters covering basic syntax and data types.
  • Work through the examples provided in the book.
  • Try to rewrite some of your existing code in Go, using the book as a reference.
Practice Go Coding Challenges
Improve coding proficiency in Go by solving coding challenges on platforms like HackerRank or LeetCode.
Browse courses on Go
Show steps
  • Select a coding challenge platform with Go support.
  • Solve at least three coding challenges per week.
  • Review solutions and learn from others' approaches.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Review: 'AWS Certified Developer Official Study Guide'
Broaden your understanding of AWS services and best practices for development on AWS.
Show steps
  • Focus on chapters related to services used in the course (e.g., Lambda, S3, DynamoDB).
  • Take practice quizzes to assess your understanding.
  • Identify areas where you need further study.
Build a Simple Serverless Application
Solidify understanding of serverless concepts and Go by building a simple application on AWS Lambda.
Browse courses on Serverless
Show steps
  • Design a simple serverless application (e.g., a URL shortener).
  • Write the Lambda function in Go.
  • Deploy the application using AWS CLI or CDK.
  • Test the application thoroughly.
Write a Blog Post on Go and AWS
Deepen understanding and share knowledge by writing a blog post about a specific topic covered in the course.
Browse courses on Go
Show steps
  • Choose a specific topic related to Go and AWS (e.g., CDK, Lambda).
  • Research the topic thoroughly.
  • Write a clear and concise blog post explaining the topic.
  • Publish the blog post on a personal blog or platform like Medium.
Contribute to a Go-based Open Source Project
Gain practical experience and contribute to the Go community by contributing to an open-source project.
Browse courses on Go
Show steps
  • Find a Go-based open-source project on GitHub.
  • Identify an issue or feature to work on.
  • Submit a pull request with your changes.
  • Respond to feedback and iterate on your contribution.

Career center

Learners who complete GO on AWS - Coding, Serverless and Infrastructure as Code will develop knowledge and skills that may be useful to these careers:
Serverless Developer
A Serverless Developer specializes in building and deploying applications that run on serverless platforms like AWS Lambda. This course is directly applicable to this role since it focuses greatly on using GO for AWS serverless projects. The course covers how to use the AWS SDK with GO to create serverless functions, integrate with other AWS services and design serverless architectures. Moreover, the course highlights GO’s speed and compatibility advantages for serverless programming. Any aspiring Serverless Developer who wishes to be proficient in cloud native technologies should strongly consider taking this course.
Cloud Application Developer
A Cloud Application Developer creates applications that run on cloud platforms. This course is highly relevant to this role, as it provides a complete reference for using GO to build applications on AWS. The course covers essential topics such as using the AWS SDK, creating serverless applications, and using Infrastructure as Code to provision cloud resources. Those interested in Cloud Application Development will find the course's practical approach to building applications using GO on AWS extremely valuable. The course also teaches modern techniques like serverless computing.
Cloud Engineer
A Cloud Engineer designs, builds, and maintains cloud infrastructure. This course is very relevant to this role, as it covers using GO with the AWS SDK and the AWS CDK for Infrastructure as Code. Specifically, the course explores creating AWS resources such as storage buckets and Lambda functions, and it provides a practical understanding of how to manage these resources with GO on AWS. This knowledge is essential for a cloud engineer working with AWS, as they build and configure cloud services. The course's focus on serverless application development with GO also aligns perfectly with modern cloud native paradigms.
DevOps Engineer
A DevOps Engineer focuses on automating and improving the software development lifecycle, including infrastructure management. This course directly relates to this career because it teaches Infrastructure as Code with the AWS CDK in GO. A DevOps engineer needs to understand how to build and manage cloud infrastructure efficiently and the course focuses on this. Also, learning how to implement automated tests for both applications and infrastructure helps build a strong foundation for a DevOps role. This course provides an opportunity to dive into practical skills that a DevOps professional values highly, such as using IaC, Go, and automated testing in a cloud environment.
Test Automation Engineer
A Test Automation Engineer develops and maintains automated test suites. This course is relevant because it covers how to use Go for test driven development, including unit and integration testing of both applications and infrastructure code. A Test Automation Engineer will benefit greatly from learning how to write automated tests for cloud infrastructure, which is a modern trend. The course's focus on testing with Go is a perfect fit for those interested in this specialization. The course introduces testing approaches that are extremely valuable for a test automation engineer.
Backend Developer
A Backend Developer works on the server side of applications, dealing with databases, APIs, and business logic. This course is useful for a backend developer because it teaches the Go programming language, which can be used to create high-performance reliable backend services. Moreover the AWS SDK lessons enable development of applications that incorporate cloud storage, serverless functions, and database integration. Those interested in backend development should take this course because it provides practice with building real world serverless architectures, using GO with AWS, a skill that is very relevant in today's industry. Lastly, the course covers integrating automated testing into the development process.
API Developer
An API Developer designs, builds, and maintains Application Programming Interfaces that enable software systems to communicate with each other. This course is useful because it provides a foundation in using GO and the AWS SDK to create robust backend services and integrate AWS services. The course teaches how to build and deploy serverless applications, which is a key skill for an API developer working with cloud based technology. Those interested in creating and maintaining performant APIs should take the course to grasp the technical underpinnings of development with Go on AWS.
Infrastructure Engineer
An Infrastructure Engineer manages and maintains the hardware and software systems that support an organization's IT operations. This course may be useful because it introduces Infrastructure as Code using the AWS CDK and GO. An Infrastructure Engineer must know how to provision and manage resources and this course provides the tools for accomplishing such tasks on AWS. Using Go programming language and Infrastructure as Code, this course provides a modern look at infrastructure management. It provides a good starting point by demonstrating how to create resources and manage infrastructure using code and test them in an automated way.
Automation Engineer
An Automation Engineer develops and implements automated systems to improve efficiency and reduce manual work. This course provides relevant skills since it covers Infrastructure as Code with the AWS CDK using GO. Also, it teaches automated testing for applications and infrastructure. The course provides an overview of creating automated tests in Go. The course is helpful for an automation engineer because it touches on the skills necessary to create automated processes for cloud infrastructure, using Go. An Automation Engineer should take this course to practice such skills.
Software Engineer
A Software Engineer designs, develops, and maintains software systems. This course helps build a foundation in areas relevant to a software engineering role that works with cloud services. It teaches how to use Go for building serverless applications on AWS, including integrating with various AWS services. The course's emphasis on test driven development using Go is critical for any software engineer committed to quality and performance. With the course's focus on cloud native tech, any software engineer who wishes to work with such technologies should take this course.
Platform Engineer
A Platform Engineer builds and maintains the underlying platform that software runs on. This course may be helpful in this area because it teaches how to create and manage cloud infrastructure with the AWS CDK using Go. The course covers automation of infrastructure through code and is relevant for an engineer focused on platform stability and scaling. The course's focus on test driven development and serverless applications may also be relevant to this area. Platform Engineers who want to work in a cloud native environment may find this course very helpful.
Systems Engineer
A Systems Engineer focuses on the design, integration, and management of systems and infrastructure. This course may be useful for learning how to build infrastructure on AWS using code, which is a task that a Systems Engineer often does. The course provides a look at how to use GO to manage AWS, including cloud services, infrastructure as code, and test automation. Those who aspire for this career path can enhance their skills by diving into this course's practical techniques for building systems and infrastructure on AWS with Go.
Site Reliability Engineer
A Site Reliability Engineer ensures that applications and systems are reliable, scalable, and performant. This course may help an SRE because it focuses on building and managing cloud infrastructure with Go and AWS. This course provides a solid foundation in understanding and implementing automated tests for both programs and cloud infrastructure. The course covers many essential concepts, such as infrastructure as code, serverless computing, and automated testing, which are all used by Site Reliability Engineers to maintain system stability. The course may be useful for an SRE because of its coverage of development in a cloud environment.
Cloud Solutions Architect
A Cloud Solutions Architect designs and plans cloud computing solutions for organizations. This course may be helpful for this role because it provides hands-on experience with building and deploying cloud infrastructure with GO on AWS. Even though the course focuses on implementation, an architect needs a deep technical understanding, and this course gives a comprehensive reference for building applications on AWS with GO. The course covers serverless architectures, infrastructure as code, and integration of various AWS services, all of which are vital for a cloud solutions architect.
Technical Consultant
A Technical Consultant provides technical expertise to clients, helping them solve business problems with technology. This course may be useful, as it offers a deeper understanding of AWS and GO, which are both important in today's tech landscape. The course's focus on serverless, infrastructure as code, and software development allows a Technical Consultant to understand the inner workings of cloud based applications. By understanding the technologies discussed in the course, they can offer more effective advice to clients. The hands on approach allows a realistic understanding of real world situations.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in GO on AWS - Coding, Serverless and Infrastructure as Code.
Comprehensive guide to the Go programming language. It covers the language's syntax, semantics, and standard library in detail. It is commonly used as a textbook in academic institutions and by industry professionals. Reading this book will provide a solid foundation in Go and help you understand the more advanced topics covered in the course.
Is designed to help you prepare for the AWS Certified Developer - Associate exam. It covers a wide range of AWS services and best practices for developing applications on AWS. While not specific to Go, it provides valuable context and knowledge about the AWS ecosystem. It useful reference for understanding the broader AWS landscape and how Go fits into it.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser