Home > Amazon EC2 > Setting Up a New Amazon EC2 Server (2015-01-25)

Create Amazon EC2 Instance
1. Login to AWS Management Console
2. Select Amazon EC2
3. Click "Instances" from the left menu
4. Click "launch Instance"

Create Elastic IPs
1. Login to AWS Management Console
2. Click "Elastic IPs" from the left menu
3. Click "Allocate New Address"
4. Select "EC2" and click "Yes, Allocate"

Assign Elastic IP to an Instance
1. Right click an IP and select "Associate"
2. Select an instance and click "Yes, Associate"

First Time Connect
1. Download PuttyGen
2. Click "Load" and select the .pem file
3. Click "Save private key"
4. Open putty
5. From the left menu, select Connection > SSH > Auth
6. Click "Browse" and select the ppk file created in step 3
7. Connect to your instance with the username "ec2-user"

Change Password

sudo passwd root

Create user

adduser myhelper
passwd myhelper

Add user to sudoers

chmod 777 /etc/sudoers
vim /etc/sudoers
myhelper  ALL=(ALL)       ALL
chmod 440 /etc/sudoers

Configure sshd

vim /etc/ssh/sshd_config
PasswordAuthentication yes
AllowUsers myhelper
/etc/init.d/sshd restart

Change timezone

ln -sf /usr/share/zoneinfo/Hongkong /etc/localtime
(or use tzselect)

Install Apache, MySQL, PHP, FTP

yum install httpd mod_ssl mysql-server php php-mysql php-common php-gd php-mbstring php-mcrypt php-devel php-xml vsftpd

chkconfig httpd on
chkconfig mysqld on
chkconfig vsftpd on

Create virtual host directory

mkdir -p /var/www/vhosts/myhelper.com/subdomains
mkdir -p /var/www/vhosts/myhelper.com/htdocs
mkdir -p /var/www/vhosts/myhelper.com/logs
chown -R myhelper.myhelper /var/www/vhosts/myhelper.com

Configure Apache

vim /etc/httpd/conf/httpd.conf
NameVirtualHost *:80
Include /etc/httpd/conf/extra/httpd-vhosts.conf
<IfModule prefork.c>
	StartServers      30
	MinSpareServers   30
	MaxSpareServers   45
	ServerLimit     4000
	MaxClients      4000
	MaxRequestsPerChild  4000

vim /etc/php.ini
upload_max_filesize = 5M
post_max_size = 8M
memory_limit = 256M

mkdir /etc/httpd/conf/extra
vim /etc/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
	DocumentRoot "/var/www/vhosts/my-helper/htdocs"
	ServerName my-helper.com
	ServerAlias www.my-helper.com
	<Directory "/var/www/vhosts/my-helper/htdocs">
		Options Indexes FollowSymLinks
		AllowOverride All
		Order allow,deny
		Allow from all
	ErrorLog "/var/www/vhosts/my-helper/logs/error.log"
	#CustomLog "/var/www/vhosts/my-helper/logs/access.log" common

/etc/init.d/httpd restart

Configure Vsftpd

vim /etc/vsftpd/vsftpd.conf
pasv_address={your public ip address}
vim /etc/vsftpd/user_list

mkdir /etc/vsftpd/userconfig
vim /etc/vsftpd/userconfig/myhelper

/etc/init.d/vsftpd restart

Update sysctl.conf

vim /etc/sysctl.conf

sysctl -p

Update Security Group
1. Login to AWS Management Console
2. Click "Security Groups" from the left menu
3. Select your security group
4. Add TCP port 20-21, 80, 21024-21048

Flag Counter