Getting vsftpd to work on EC2 instance

I've gotten vsftp to run on a few different instances of linux with little to no effort. Today, I was trying to get it to work on my EC2 Linux instance and had some trouble. I was using Filezilla to connect to my instance. It would connect, authenticate, but simply refused to get a directory listing. I tried specifying the Transfer Mode of Active and Passive, but no luck.

I modified the /etc/vsftpd/vsftpd.conf file adding the following lines

pasv_enable=YES
pasv_max_port=12100
pasv_min_port=12000
port_enable=YES

I also added a line pasv_address=external IP address of instance. If you do not have a fixed elastic IP address add the following instead.     pasv_addr_resolve=your public domain or DNS

I also had to modify the EC2 firewall. Determine which Security Group has ftp defined. Add port 20 as well as 21. Also add the range 12000-12100.

Restart the vsftp service and all should be fine.