Visual Studio Toolbox
16 Essential Windows Tools for Amazon Web Services
That "other" cloud company is a popular option due to the breadth of tools and capabilities. So, it only makes sense that there are a number of Windows developer tools available for those who want to hop on the AWS cloud.
- By Terrence Dorsey
You've probably heard of Amazon Web Services (AWS), the sprawling collection of cloud data and computing services provided by the folks who used to sell cheap books with free shipping. Now, thanks to AWS, you can spin up computing infrastructure from nothing to an enterprise in minutes, and you don't even need Amazon Prime to do it!
But seriously, the services available through AWS range from simple S3 and Glacier file storage to SQL and NoSQL data stores, Hadoop-based distributed data processing, data pipelines, message queues, Elastic Compute Cloud (EC2) application servers and more. Pretty much any type of computing task can be rented from AWS.
It doesn't take any particularly special tooling to get started with AWS -- pretty much everything can be done via Web interfaces and standard network communication protocols -- but good tooling always makes the job easier and less error prone. If your local development, testing, deployment, operations, and data services tasks typically revolve around Windows, Visual Studio, and SQL Server, here are a collection of tools you should check out that will fit smoothly into your existing workflow and seamlessly tie AWS-hosted data and services into your projects.
Your first installation for working with Amazon cloud services should be AWS Toolkit for Visual Studio, also available directly from AWS. AWS Toolkit adds the AWS Explorer to Visual Studio, along with the AWS SDK for the Microsoft .NET Framework and new project templates. AWS Explorer enables you to view and manage AWS resources used in your project such as S3 buckets or other data resources, and you can even deploy and manage resources with your own configurations or AWS CloudFormation provisioning templates. AWS Toolkit also provides editors that let you view, edit, and send messages on Amazon SQS queues and Amazon SNS topics. It pretty much lets you write code, provision services, deploy your code, and manage the service right from Visual Studio. If your services are running Windows, you can even Remote Desktop into it using AWS Toolkit.
Amazon provides fairly good AWS Toolkit for Visual Studio Documentation in both HTML and PDF formats. If you're just getting started, take a look at Getting Started with the AWS Toolkit for Visual Studio over at the Clearpath Solutions Group blog. (Clearpath offers help with planning and managing cloud deployments, should you need it.) Also check out Philip Stirpe's "How To Work with S3 Using the AWS Toolkit in Visual Studio" tutorial with accompanying video demonstration, and Norm Johanson's "Connecting to Amazon EC2 Instances from the AWS Toolkit for Visual Studio" tutorial on the AWS .NET Development blog.
If you're at all handy with a command-line interface, there are a few excellent AWS command-line toolkits available to suit both your resource management needs and your terminal environment preferences.
The "AWS Command-Line Interface (CLI)" provides an aws-shell environment from which you can issue commands to manage S3 instances and transfer files, as well as manage EC2, SNS and SQS instances. AWS CLI is available for Linux, Mac OS X and Windows. See "Installing the AWS CLI" for details on downloading the MSI installer and setting up the tools on Windows. You'll end up with a Unix-like command environment, which might have a learning curve, but the advantage is the ability to move between Windows and *nix environments with ease.
"AWS Tools for Windows PowerShell (see Figure 1) is a great alternative if you want a more Windows-native CLI to your AWS resources. The PowerShell tools provide access to all of the AWS resources and services available to the AWS SDK for the .NET Framework and you can also take advantage of PowerShell's scripting tools. I recommend reading "Mapping Cmdlets to AWS Service APIs" by Steve Roberts over on the AWS .NET Development blog to get a great overview of the translation between cmdlets and API resources. It also demonstrates how powerful and flexible the PowerShell tools can be for managing your AWS infrastructure.
Of course, if you're running something like From the Canyon Edge: Ubuntu on Windows -- The Ubuntu Userspace for Windows Developers (AKA Windows 10's Bash Shell) or maybe Cygwin you can install the AWS CLI using apt-get or pip.
SAWS: A Supercharged AWS CLI takes the AWS CLI tools a step further, using the same commands and syntax, but adding features including auto-completion of commands, options, bucket names, instance IDs, and instance tags, customizable shortcuts, syntax and output highlighting, and more. SAWS is supported on Windows and even works in your familiar CMD prompt.
While its main line of business is providing an app store for server software via Stacks, Bitnami offers Cloud Tools for AWS. This packages together the AWS CLI tools with preconfigured Java, Ruby, Python, Perl and Node.js language runtimes, the idea being a one-stop shop for AWS tools, SDKs, and pre-configured cloud services stacks that you can manage directly or through Bitnami's service.
S3Express (see Figure 2) is a lightweight, specialized command-line application for managing Amazon S3 resources and for backing up or restoring between S3 and Glacier. S3Express enables scripting, retrying, pausing, and resuming transfers, selective uploads, and enables managing metadata and ACLs, as well. The download includes a 21-day trial period. See the S3Express Web site for licensing details and current pricing.
Late-breaking and still in preview as we go to press: Those of you who like configuration automation should take a look at the AWS DSC Toolkit PowerShell module from Microsoft, which lets you register AWS EC2 instances as Desired State Configuration (DSC) nodes in Azure Automation, then manage the EC2 instances with PowerShell DSC configurations. For background check out the Azure Automation DSC Overview and the PowerShell DSC on AWS guide.
S3 Browser from NetSDK Software is a handy graphical Windows client for working with Amazon S3 and CloudFront storage resources. Similar to the previously mentioned S3Express, but with an intuitive GUI, S3 Browser supports features like folder syncing (only move new or modified files), compression and encryption, data-integrity checking, pause and resume uploads, bandwidth throttling, backup and restore to Glacier, and much more.
NetSDK offers some related applications including FastGlacier, which provides advanced features for uploading and downloading files with Amazon Glacier, as well as managing Glacier vaults. TNT Drive lets you mount S3 buckets as removable or network drives in Windows. All three applications are free for personal use and licenses are available for professional use.
I mentioned Cloud Combine (see Figure 3) in my recent 14 Tools for Microsoft Azure Development article, and of course it also fits nicely into this roundup as a cross-cloud file management tool. Cloud Combine provides a simple Windows Explorer-style interface that lets you configure access to all of your cloud storage resources: AWS S3, Microsoft Azure Storage (Blobs, Tables and Queues), and Google Cloud Storage. Once set up, you can browse, download, upload, and transfer files locally and in your cloud services, and even move files between cloud storage services. Download a 30-day free trial from the Web site. As I'm writing this, perpetual licenses with unlimited free updates are available for individuals or teams.
Amazon Integrator from /n Software provides a comprehensive suite of components that gives your code direct access to AWS services including AmazonRequest, EC2, Glacier, PAAPI (Amazon Associates, formerly ECS), S3, Simple Email Service (SES), SimpleDB, Simple Notification Service (SNS) and Simple Queue Service (SQS). Components are available for the .NET Framework including Windows Forms and ASP.NET, classic ASP, ActiveX, Xamarin, Windows Phone and more. /n Software put together some excellent documentation plus code samples and demos across the supported services and technology stacks. You can grab a 30-day free trial from the Web site, which also has details on licensing and support.
SimpleDB and DynamoDB Drivers
CData Drivers for Amazon SimpleDB and Drivers for Amazon DynamoDB give you straightforward, live access to information stored in your AWS SimpleDB and DynamoDB data stores from a wide variety of applications, database drivers and programming frameworks. There are ODBC drivers, of course, but you can also connect from SQL Server to SimpleDB through SSIS, data binding through ADO.NET and LINQ, use BizTalk adapters for cloud-powered workflows and more. You can even hook up your cloud data to spreadsheets with Excel add-ins or to mobile apps via the ADO.NET provider for Xamarin.
30-day trial downloads are available for all of the CData SimpleDB and DynamoDB drivers. Both ADO.NET Provider for Xamarin are in open beta right now as well.
ZappySys SSIS PowerPack is a handy collection of almost 50 SSIS components and tasks designed for high-performance manipulation of data. The components include support for Amazon S3 data transfer and management, Redshift data transfer and ExecuteSql, Redshift cluster management, DynamoDB source and destination connectors, and DynamoDB ExecuteSQL. SSIS PowerPack also includes support for Azure Blob and Table storage, NoSQL components, and much more.
You can download a 30-day trial of SSIS PowerPack, and no license needed if you're developing or testing in BIDS/SSDT. Licenses are available for individual components or the entire package.
While you're there, check out ZappyShell, a collection of command-line tools that help you work with Redshift, S3, and Azure data stores and for exporting relational data to CSV, JSON, Excel, PDF, and HTML.
Aqua Data Studio
You might be familiar with the AquaFold Aqua Data Studio as an excellent tool for query building, analysis and data visualization. The new version 17 release includes an enhanced Apache Hive and Spark database toolkit. Hive is an open source data query and analysis framework, and Spark is an open source cluster-computing framework. Both are supported on AWS Hadoop-based Elastic Map Reduce (EMR) services.
Aqua Data Studio Hive and Spark tools provide visual administration features for browsing and modifying schemas, build and execute queries and scripts, and transfer data into and out of Hive and Spark databases.
A 14-day trial download is available from AquaFold. You can purchase individual or enterprise licenses for Aqua Data Studio, and qualified OSS developers can get a free license.
About the Author
Terrence Dorsey is a technical writer, editor and content strategist specializing in technology and software development. Over the last 25-plus years he has worked on developer-focused projects at ESPN, The Code Project, and Microsoft. Read his blog at http://terrencedorsey.com or follow @tpdorsey on Twitter.