Amazon Web Services (AWS) is the leading Infrastructure-as-a-Service (IaaS) cloud provider. AWS provides a large suite of services - accessible via APIs - that are used to set up a "virtual" IT infrastructure, run applications in the cloud, and provide services to applications running outside of the cloud. This course focuses on the concepts and programming techniques used by both IT professionals and application developers to setup, configure, and deploy applications into AWS. The course also covers the use of AWS cloud services from applications and tools that run outside of the AWS cloud.
The course will start with a brief overview of cloud computing that focuses on IaaS. Discussions will address the various AWS compute, storage, database, networking, messaging, monitoring, and deployment services as well as APIs including: EC2, Auto-Scaling, EBS, S3, SimpleDB, RDS, ElastiCache, Load Balancing, VPC, SQS, SNS, SES, CloudWatch, and Beanstalk.
Upon completion of this course, you will understand the technologies and tools used to work with the AWS cloud. You will gain hands-on experience through a class project that involves designing, coding, and deploying a cloud-focused tool or application. Students interested in an “IT-centric” project can use scripting languages (e.g. Ruby, Perl, or Python) to set up and manage an AWS cloud. Students interested in a software development approach can use programming languages such as Java, Objective-C, C#, or Ruby-on-Rails to develop and deploy an application that uses AWS Cloud services or resides in the AWS Cloud.
- Review of cloud-computing concepts: scalability, cost, virtualization, IaaS
Accessing AWS: the AWS console
- Using AWS services: using an AWS programming library
- Compute: EC2, Auto-scaling, regions and availability zones
- Volumes: EBS
- Storage and database: S3, SimpleDB, RDS, ElastiCache
- Networking: Load Balancing, VPC, Direct Connect, Route 53
- Messaging: SQS, SNS, SES
- Monitoring: Cloud Watch
- Application deployment: Beanstalk
Note(s): There will be an additional cost for accessing AWS capabilities for class project. Cost may vary but is generally low.
Skills Needed: Experience developing programs in any of Python, Perl, Java, C# or Ruby.