VPC, ELB, Route53
게임 웹 서비스를 하기 위한 간단한 AWS구성을 해보자.
<1> AWS 구성의 이해
<2> 네트워크, 보안, L4, 서버, DNS 이용해 구축하자.
<1> AWS 구성의 이해
사업 계획하고, 개발하고, 인프라 구축해 서비스를 하게 된다.
인프라 구축을 AWS로 해보자.
우선 전통적인 인프라 구조를 알아보자.
네트워크, 보안, L4 , 서버, DB, 스토리지, DNS, CDN 등등이 사용된다.
AWS 인프라와 비교해보자
<2> 네트워크, 보안, L4, 서버, DNS 이용해 구축하자.
다른 부분은 다음에 하나씩 해보도록 하겠다.
0. 구성도
서버는 EC2로 생성한다.
web1와 web2는 동일한 기능을 하는 게임 웹서버이다.
L4는 서버 2대를 이중화해주는 장비이다.
자 이제 기본 네트워크부터 구성해보자.
1. 네트워크 vpc 설정하기.
VPC는 네트워크이다.
Virtual Private Cloud로 가상 개인 네트워크를 구축하게 해 준다.
외부와 연동이 되는 Public과 외부에서 접속하지 못하는 DB 서버 네트워크인 Private를 구축하게 해 준다.
VPC에서 서버 넷(subnet)을 나누어 정책을 적용한다.
[VPC] - [Create VPC]
[10.0.0.0/16]로 B class를 기본 네트워크로 설정한다.
2. 이중화를 위해 C-class단위 2개로 서브넷을 나눈다.
이중화를 위해 2a 지역과 2c 지역 중 2a로 지정한다.
[10.0.10.0/24] C-class하나 만든다.
3. 서브넷 하나를 더 만든다.
이중화를 위해 2a 지역과 2c 지역 중 2c로 지정한다.
[10.0.20.0/24 ] C-class하나 만든다.
4. 게이트웨이를 생성하고 네트워크에 연결한다.
Create Internet Gateway 클릭해서 게이트웨이를 생성한다.
[ Attach to VPC] 클릭해서 기본 네트워크 10.0.0.0/16의 게이트웨이를 지정한다.
5. 모든 패킷을(0.0.0.0/0) 게이트웨이(game-web-igw1)로 가도록 설정한다.
외부에서 접속했을 때 응답을 주려면 디폴트(0.0.0.0/0)가 설정되어 있어야 한다.
Routes Tab에서
모든 패킷 (0.0.0.0/0)을 게이트웨이 igw로 가도록 꼭 설정하도록 한다.
Route Talble ID는 처음에 VPC를 만들면 자동 생성되는 부분이다.
6. 이제 만들어진 서브넷에 각각 서버 1대를 생성해 보해자.
EC2 서버 만들기
EC2 클릭 - 원하는 서버 클릭
7. Next :Configure Instance Details 클릭
8. 10.0.10.0/24에 서버 1대 생성
Next Add Storage -[Next]
9. 서버 이름을 지정한다.
gameaws-web01
게임 서비스 aws에 위치하고, 웹서버 1번이다.
10. 보안 그룹 설정
보안설정을 한다.
기존에 존재하는 디폴트 보안설정에 적용한다.
Select an existing security group
11. 이제 2개의 서버가 만들어졌다.
12. 고정 공인 IP인 Elastic IPs를 받아 서버와 매칭 한다.
외부에서 서버에 직접 접속해 ftp설치나 apache 설치를 원활하게 하기 위해 작업한다.
원래는 보안상 다른 게이트웨이 서버를 통해 해당 서버들에 접속해야 한다.
13. 보안 그룹 설정한다.
EC2에서 Security Groups
외부에서 80 , 22 접속되도록 허용한다.
웹서버, ssh포트로 접속.
14. 리눅스 서버에서 ssh로 서버 접속해 ftp와 apache를 설치해보자.
1) Putty로 서버 접속 방법 1
putty 다운로드한다.
putty key generator 실행 - load - xxx.pem을 읽는다.
Save private key로 저장한다.
putty 실행
Connetion - SSH 부분에서 저장한 private key를 불러온다.
2) 리눅스 서버에서 EC2 서버 접속 방법 2
키파일 naver1.pem을 리눅스에 올리고 400 권한을 준다.
ssh로 만들어진 ec2 2대에 접속해 ftp, apache설정 작업한다.
웹서버 설정법 https://brunch.co.kr/@topasvga/18
15. ELB 설정한다.
L4를 설정하는 것이다.
EC2 - Load Blancers 클릭.
Create Load Balancer
16. 80에 대해 Load Balancer 설정한다.
Avaliable subnets에 있는 서버를 클릭해
Selected subnet으로 해당 이동한다.
17. ELB가 설정되었다.
설정값 중 DNS name을 확인해보자.
이제 ELB설정이 완료되었다.
18. Monitoring부분에 Healthy Hosts가 2개 ON 되어 있는 것 확인이 가능하다.
healthy on 되는데 10 분이 걸리는 거 같다.
10분 정도 있다가 웹브라우저로 DNS name을 접속해보면 접속이 된다.
19. 브라우저로 각 서버 공인 ip (Elastic IPs)로도 접속해 사이트가 뜨는 것을 확인한다.
20. route53에서 cname으로 DNS name을 설정한다.
gameweb.dns-book.com cname game-web1-elb-1 xxxxxxxxxxxxxxxxxxxxxxxx
gameweb.dns-book.com으로 접속되는지 확인한다.
21. 서버 1대의 apache를 다운시켜 본다.
dns로 설정한 gameweb.dns-book.com으로 접속되는지 확인한다.
22. 이제 정상 동작하는 게 확인되었다.
테스트를 위해 서버에 매칭 된 Elastic IPs (공인 IP)를 해제한다.
감사합니다.