brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Mar 22. 2017

5. AWS 게임 웹 구축, VPC, ELB

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를 만들면 자동 생성되는 부분이다.

oㅅ



6. 이제   만들어진 서브넷에  각각 서버 1대를 생성해 보해자.


EC2 서버 만들기

EC2 클릭 - 원하는 서버 클릭 



7. Next :Configure Instance Details 클릭


t



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 설치를 원활하게 하기 위해 작업한다.

원래는 보안상  다른 게이트웨이 서버를 통해 해당 서버들에 접속해야 한다.


c IP









13. 보안 그룹 설정한다.

EC2에서 Security Groups

외부에서 80 , 22 접속되도록 허용한다.

웹서버,  ssh포트로 접속.





t




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으로  해당  이동한다.

j




17.  ELB가 설정되었다.

설정값 중  DNS name을 확인해보자.




이제  ELB설정이 완료되었다.





18. Monitoring부분에 Healthy Hosts가  2개 ON 되어 있는 것 확인이 가능하다.

healthy on 되는데 10 분이 걸리는 거 같다.



 h



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)를  해제한다.




감사합니다.


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari