
AWS(Amazon Web Service)를 사용하게 되면 일단 가입한지 일년동안은 AWS Free Usage Tier 로 1 Linux Micro Instance, ELB, EBS 10G, S3, SimpleDB, SQS등 무료로 사용이 가능하다.
EC2를 만들어 사용하기 전에 EC2에서 사용하는 storage 개념부터 이해해야 한다.
일종의 하드 디스크의 개념인 AMI(Amazon Machine Images)를 이용해서 서버를 런칭하게 되는데, AMI는 두가지 Storage 종류가 있다. EBS-backed storage device 와 S3-backed storage device인 ephemeral storage(하루살이 목숨의?) 로 두가지다.
보통 micro instance가 아닌 Small, Medium, Large 등으로 좀 많은 돈이 들어 만드는 instance에 들어가는 storage는 S3-backed storage를 사용하게 된다. 이 S3-backed storage는 EBS보다 빠르나 instance가 정지(stop)되거나 종료(terminate)되면 storage의 내용은 날라가게 됩니다.(그 서버는 restart만 가능하게 되는 것이다.) 그러니 일단 그런 storage를 사용하게 되면 주의해야 한다. 단 S3-backed storage로 AMI를 만들게 되면 S3를 이용해서 다른곳으로 이동할수 있다고 한다.
어떤 서비스 조합으로 이용할것인가는 대해서는 고민좀 해봐야 한다. Free Usage Tier 일 경우 1년동안 EBS Volume을 10G를 사용할수 있다. 일단 Micro Linux Instance + 10G EBS Volume을 사용해 보겠다.
나의 경우에는 ubuntu ami보다 amazon linux ami를 선호하는데, 이유는 ubuntu ami의 경우 가끔씩 리부팅시(극히 낮은 빈도지만, 직접 경험해봤다. 경험적 판단임을 밝혀둔다. aws console에서는 분명 제대로 돌아가고 있는데 ssh 접근이 안된다. 다시 한번 밝히건데, 이러한 이유가 ubuntu ami라는 확신은 없다.) hang이 걸리기 때문이다.
AWS(http://aws.amazon.com/)에 접속해서 계정을 만들어라. 신용카드 사용에 대한 좀 복잡한 과정이 있음에 유의하자.
그리고 그 과정이 끝났으면 AWS Management Console (https://console.aws.amazon.com) 로 해서 EC2 탭으로 들어간다. [Launch Instance]를 눌러서 Basic 32-bit Amazon Linux AMI를 선택해서 일단 생성한다. 대부분 기본 옵션을 선택하면 되는데, 생성시 미리 Security Group 과 Key Pairs 메뉴를 클릭해서 각각 셋팅을 해두는 게 좋다. 생성시 region을 정확히 확인해 둔다.
Security Group 은 일종의 방화벽으로 외부에서 EC2안으로의 접근 및 port forward 등이 가능하다. ‘default’ 라고 있는데, 처음이라면 일단 ‘default’ Security Group를 사용해서 서비스를 이용하면 된다. 만일 ssh 접근이 안된다면 SSH Rule을 추가하여 접근하면 된다.
Key Pairs 는 서버에 접근하는 SSH 키 생성/import를 할수 있다. 자신이 원래 쓰던 ssh key가 있다면 등록도 가능하니 일단 등록시 두면 된다.
Unix 콘솔이 있다면 다음과 같이 로그인 한후 기본 업데이트를 실행한다.
ssh -i keypair-xxxx.pem ec2-user@xxx.xxx
sudo yum update
일단 로그인까지 완료가 되면 AWS 사용 가능한 상태가 된다.
EBS Volume 을 연결하기 위해선 다음과 같이 한다. 콘솔(https://console.aws.amazon.com)에 로그인을 해서 Elastic Block Store 메뉴에서 EBS Volume 10G를 만들어주고, [Attach Volume]을 한다.(단 생성시 AMI 랑 같은 region에 만들어야 한다.) 일단 device path를 확인한다. (대부분 /dev/sdf이다.)
sudo mkfs.ext4 /dev/sdf
sudo mount -t ext4 /dev/sdf /mnt
vi /etc/fstab
/dev/sdf /mnt ext4 defaults 0 0
그리고 EBS 볼륨이 아닌 Ephemeral Storage Volume을 사용하는 인스턴스를 사용하기 위해선 약간 더 복잡한 단계를 거쳐야 한다. Amazon Linux AMI로 small이상의 인스턴스를 생성하면 볼륨이 안붙은체로 나온다.
일단 이렇게 인스턴스를 생성하기 전에 몇가지 준비를 해야 한다.
생성 방식이 좀 까다로운데 command line developertools을 사용해야 한다. command line developertools 을 사용하기 위해선 인증서를 만들어야 하는데, My Account > Security Credentials 로 가서 중간에 [X.509 Certificate] 탭을 눌러서 인증서와 키를 각각 다운 받아 둔다. 그 인증서와 키를 나의 Desktop 이던 사용하는 서버에 저장한다. 그리고 편의성을 위해 keypair name 등도 같이 저장하는게 편하다. (데스크탑이나 다른 서버를 이용할시 http://aws.amazon.com/developertools/351 툴을 다운 받아서 사용해야 한다. 자세한 설명은 https://help.ubuntu.com/community/EC2StartersGuide 를 참조한다.)
mkdir ~/.ec2
chmod 700 ~/.ec2
mv cert-xxxx.pem ~/.ec2
mv pk-xxx.pem ~/.ec2
mv keypair-xxx.pem ~/.ec2
chmod 600 ~/.ec2/*.pem
vi ~/.bashrc
export EC2_KEYPAIR=keypair-xxx # keypair!, name only, not the file name
export EC2_PRIVATE_KEY=~/.ec2/pk-xxxx.pem
export EC2_CERT=~/.ec2/cert-xxxx.pem
export EC2_URL=https://ec2.ap-northeast-1.amazonaws.com # region which you are using
# test
ec2-describe-keypairs
# run-instance
ec2-run-instances ami-xxxxx --block-device-mapping '/dev/sda2=ephemeral0' --block-device-mapping '/dev/sda3=ephemeral1' -k kyepair-xxx
-z ap-northeast-1
여기서 ephemeral0 은 swap 을 ephemeral1은 추가 드라이브를 말한다.
일단 기본적인 서버 사용까지를 적어봤다. part2에서는 몇가지 서비스를 깔아보면서 진행을 해보겠다. 좀더 볼만한 사이트로는 다음의 사이트가 있다. http://paulstamatiou.com/how-to-getting-started-with-amazon-ec2