brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Jul 19. 2018

39.[AWS]모바일 홈페이지 2대 CLI로 만들기2

AWS 명령어(CLI)로 서버를 만들어보자

<1>  현황

VPC 네트워크 구성을 클릭 클릭해서 만들고 있다.

서버 생성도 클릭 클릭해서  생성한다.


<2>  문제점

VPC 네트워크 구축할때마다 수작업을 해야 한다.

서버 100대를 생성하고자하면 클릭을 수천번 해야 한다.

빠르게 서버를 생성하고 관리하고 싶다.


<3> 개선방향

관리서버에서 한번에 명령어(CLI)로 한번에 네트워크와 서버를 생성한다.

자동화 툴로 빠르게 생성하고 관리한다.



<4>  CLI로  서버 생성 해보기 

관리서버에서 명령어로 서비스 서버를 한번에 만들어 보자.



1.  보안그룹을 만든다.

2. 명령어로 관리서버에서 서버생성을 위해 CLI툴 설치하자

3. 어느 지역에  설치할지 정의한다.

4.  관리서버 정보를 확인하고 그 정보를 이용해 서비스 서버를 만들어보자.

5. 관리서버 로그인해서 명령어로 새로운  EC2 생성하기




1.  보안그룹을 만든다.

웹서버라면 80 443 포트를 허용하는 보안그룹을 만든다.

Cli로 보안그룹을 만들수있지만 여기선 GUI로 우선 만든다.


AWS 콘솔에 접속한다. http://console.aws.amazon.com



[Security Groups] - Create Security Group






2. 명령어로 관리서버에서 서버생성을 위해 CLI툴 설치하자


 AWS CLI Tool 설치하여  명령어로 서비스 서버를 만들어보자.


AWS CLI툴 설치하기


1) Linux   OS


[root@ip-10-10-0-107 ~]# yum install python-setuptools

[root@ip-10-10-0-107 ~]# easy_install pip

[root@ip-10-10-0-107 ~]# pip install awscli

[root@ip-10-10-0-107 ~]# aws --version

aws-cli/1.15.60 Python/2.7.5 Linux/3.10.0-862.el7.x86_64 botocore/1.10.59


awscli 업데이트하기

[root@ip-10-10-0-107 ~]# pip install -U awscli

[root@ip-10-10-0-107 ~]# aws --version

aws-cli/1.15.76 Python/2.7.5 Linux/3.10.0-862.el7.x86_64 botocore/1.10.75



2) Windows OS

다운로드 https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/install-windows.html


참고 사이트 

https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/install-windows.html



3. 어느 지역에  설치할지 정의한다.


AWS console  관리서버의 Description에서 Availability zone 정보를 확인하자.

http://console.aws.amazon.com


ap-northeast-2a 로 보이는 경우  ap-northeast-2  가 지역이다. (a가 빠진다)


aws configure 로 지역을 정의한다.
IAM role을 가지고 있으므로 키는 필요 없어 [엔터]로 넘어간다.


# aws configure   [엔터]

AWS Access Key ID [엔터]

AWS Secret Access Key [엔터]

Default region name [None]:  ap-northeast-2

Default output format [None]:[엔터]


이제 지역이 설정되었다.




4.  관리서버 정보를 확인하고 그 정보를 이용해 서비스 서버를 만들어보자.


1) 선행작업

관리서버는  생성시에   IAM role로  EC2-Full  Access권한이 있어야 한다.


2) 관리 서버를 이용해서 서버(EC2)를 생성하는 명령어는 아래와 같다.
  

# aws ec2 run-instances --image-id <ami-id> --user-data file:///root/UserData.txt --key-name <key-name> --security-group-ids <sg-id> --instance-type t2.micro --subnet-id <subnet-id> --associate-public-ip-address --query 'Instances[*].InstanceId'


참고: 생성을 위해 필요한 정보는 EC2 관리서버의 Description에서 확인한다.


--image-id = AMI ID

ami-3eee4150


--user-data

서버 생성시 자동으로 시작하게하는 스크립트

웹서버를 설치하도록 하는 스크립스를 만들어 넣는다.


--key-name


--security-group-ids

서비스서버를 위한 새 보안그룹을 만든다.


--instance-type


--subnet-id



5. 관리서버 로그인해서 명령어로 새로운  EC2 생성하기


1) 서버 만들기 위해 명령어 실행

# aws ec2 run-instances --image-id <ami-id> --user-data file:///root/UserData.txt --key-name <key-name> --security-group-ids <sg-id> --instance-type t2.micro --subnet-id <subnet-id> --associate-public-ip-address --query 'Instances[*].InstanceId'


[
"i-08ecb29011c7e4be5"
]


2) 관리서버외에 서버 1대 추가로 생성 완료 



3) 한번 더 실행하면 EC2서버가 하나더 만들어 진다.


aws ec2 run-instances --image-id <ami-id> --user-data file:///root/UserData.txt --key-name <key-name> --security-group-ids <sg-id> --instance-type t2.micro --subnet-id <subnet-id> --associate-public-ip-address --query 'Instances[*].InstanceId'


[
"i-0f9a3620bb60d80e3"
]
[root@ip-10-10-0-107 ~]#

  


4) 서버가 잘 생성되었는지 확인한다.


[root@ip-10-10-0-107 ~]# aws ec2 describe-instances --instance-ids i-08ecb29011c7e4be5



5) 호스트명이 없어서 호스트명을 부여한다.

[root@ip-10-10-0-107 ~]# aws ec2 create-tags --resources i-08ecb29011c7e4be5 --tags Key=Name,Value=mobileaws-web01


[root@ip-10-10-0-107 ~]# aws ec2 create-tags --resources i-0f9a3620bb60d80e3 --tags Key=Name,Value=mobileaws-web02


6) 서버 접속해 본다.

[root@ip-10-10-0-107 ~]# ssh -i "google1.pem" ec2-user@13.125.239.105
[ec2-user@ip-10-10-0-84 ~]$ exit
logout
Connection to 13.125.239.105 closed.


서버 접속해 본다.

[root@ip-10-10-0-107 ~]# ssh -i "google1.pem" ec2-user@13.125.129.104
Are you sure you want to continue connecting (yes/no)? yes
[ec2-user@ip-10-10-0-204 ~]$ sudo su



이제 100대의 서버도 명령어로 금방 만들수 있다 ^^



기타 : 인스턴스-id , 사설ip , 공인ip 확인법

curl http://169.254.169.254/latest/meta-data/instance-id

curl http://169.254.169.254/latest/meta-data/local-ipv4

curl http://169.254.169.254/latest/meta-data/public-ipv4



연관 자료

AWS CLI로  VPC 만들기 https://brunch.co.kr/@topasvga/747

AWS CLI로 서버 만들기 https://brunch.co.kr/@topasvga/872

AWS CLI로 서버 생성법  https://brunch.co.kr/@topasvga/345

테라폼으로 VPC 만들기 https://brunch.co.kr/@topasvga/780


감사합니다.

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