Back in April of 2015, Amazon announced Elastic File System (EFS), their file-based cloud offering, as a complement to Amazon’s other cloud offerings, such as their object-based S3 and block based EBS. However, at the time, we were not able to use it – preview was not going to be available until the summer.
Well, now EFS preview is available! (sort of)
Given my curious nature and the fact that EFS ties in directly with my position as the NFS Technical Marketing Engineer at NetApp, I wanted to give it a whirl and see what it was all about. Thankfully, if you want to try it out, Amazon is offering a full year free trial for it. Free tier gives you:
- 750 hours per month of EC2 instances
- 5GB of Amazon S3
- 25GB of DynamoDB
- 1 million requests in Lambda
For more, see this: http://aws.amazon.com/free/
In addition, you get VPC, as it’s free aside from normal EC2 usage charges.
NOTE: I’ve signed up for EFS Preview, but still waiting on my access. In the meantime, I figured I’d get the essentials worked out.
Signing up for AWS Free was easy and standard – contact info, credit card, choose your plan, etc. Once you do that, you’re assigned an Amazon account number to use when requesting your EFS preview. Before I got started, I watched the AWS Summit presentation on EFS, just to get a feel for what exactly EFS was.
If you don’t want to watch the whole video, then here’s a brief overview of what EFS is, how it works, etc.
Amazon EFS use cases are listed as, but not exclusive to:
- Content repositories
- Dev environments
- Big Data
Now, I’m guessing that running databases in the cloud is not recommended yet. But that’s not to say it’s not possible…
There are some terms that are good to understand before starting. If you haven’t noticed, there are a TON of acronyms used in AWS. This attempts to ferret out the ones we care about with regards to EFS.
Resource groups: Basically, a group of resources you work with inside of AWS.
Regions and Availability Zones: A cloud is intended to be ethereal, meaning, it has to be available anywhere in the world. But there are always physical constraints, so AWS has a series of regions to ensure your physical devices are as close by as possible to maintain a latency you can live with. Inside of each region is an availability zone, which is in place for redundancy.
Virtual Private Cloud (VPC): Essentially, a cloud within a cloud. VPC is your own secure, segmented network inside of the larger AWS infrastructure. This is where you will be operating most of the time.
Elastic Cloud Computing (EC2): EC2 is your compute portion of the cloud. Virtual machines running whatever flavor of OS you want to run. For EFS, you could run pretty much any OS (even Windows) but likely will be running some Linux flavor.
This offering includes NetApp Private Storage (NPS) for use with existing on-prem NetApp storage to create hybrid cloud, disk-to-cloud backups, etc.
NetApp Data Fabric: The Data Fabric is NetApp’s solution to managing data across multiple cloud architectures, regardless of what that data lives on. It’s the only solution available that offers a combination of performance, multiple protocol support, disaster recovery and cloud integration.
How AWS Works
When you set up an AWS instance to use with EFS, you first need a client via EC2. No client? No NFS mount = no way to use EFS.
You get your EC2 instance from your AWS Management Console. You need to have an account prior to signing in.
Once you’re in, you get a nice dashboard of stuff you can configure, provision, etc. On the top left, you get EC2.
However, it’s best to first set up a resource group.
Then, create an EC2 instance. It’s relatively simple – just pick your desired OS.
I chose SLES, because I didn’t want to screw around with RHEL’s yum repos. :)
Then, you pick the type. There’s only one eligible for “free tier.”
From there, you can either “review and launch” or manually configure things like storage (you get 30GB), etc.
Review the configuration, correct any warnings you desire and click launch.
If you have not already created a key pair, you will be asked to do so.
Download the key pair and click Launch Instances and you’re done! Now I can check the instance:
The public DNS and IP address are also listed in that (hidden for obvious reasons here). They are not ping-able, but you can access via SSH.
Connecting to your Linux instance
Connecting to your Linux client from a host is not as simple as SSHing in and using a user name and password. It won’t work, and frankly, isn’t super secure. Remember that key pair you had to download? AWS provides a doc on how to get this working with PuTTY on Windows. (Just be sure to use an official version)
Once you get that going, login.
Using username "ec2-user". Authenticating with public key "imported-openssh-key" SUSE Linux Enterprise Server 12 x86_64 (64-bit) As "root" use the: - zypper command for package management - yast command for configuration management Management and Config: https://www.suse.com/suse-in-the-cloud-basics Documentation: http://www.suse.com/documentation/sles12/ Have a lot of fun... ec2-user@ip-172-31-36-67:~> uname -a Linux ip-172-31-36-67 3.12.28-4-default #1 SMP Thu Sep 25 17:02:34 UTC 2014 (9879bd4) x86_64 x86_64 x86_64 GNU/Linux
Wheeeee! Now we have a valid Linux NFS Client to use with EFS. If I was really feeling adventurous (and I’m not) I could set up a KDC for Kerberos, as well as a server for LDAP. For now, I’ll stick with basic NFSv4,
Once I am able to get a preview of EFS going, I’ll move to the next step – setting up an EFS mount via NFSv4! Feel free to click for some more of my NFSv4 related posts.