본문 바로가기

AWS/파워쉘로 배우는 AWS

#16 [EC2] Linux Instance를 생성해 보자.

드디어 Instance(VM) 생성하기 위한 준비가 끝났습니다. 영광을 와이프와 엄마 아빠 그리ㄱ…..

사실 Instance 생성 하는 데에 있어서 사전 준비작업은 전혀 필요가 없습니다만, 그렇게 만들어진 Instance 접근할 없는 블랙박스가 되어버리기 때문에 전혀 사용을 수가 없습니다. 지금까지 작업한 내용들은 Instance 접근하여 사용할 있는 최소한의 작업만을 진행하였습니다. 추가적인 것들이 있습니다만, 다음에 다뤄보기로 하고 Instance 생성하고 접근하는 방법을 알아봅시다.

 

백문이 불여일행 cmdlet 바로 실행해 봅시다.

먼저, 명령어에 직접 속성값들을 삽입하면 지저분해 지기 때문에 제작한 AWS Resource들을 변수로 정의해 봅시다.


PS> $AMIImage = "ami-f0091d91"

PS> $AccessPublicIp = $true

PS> $InstanceType = "t2.micro"

PS> $SubnetId = "subnet-d98c8abc"

PS> $SecurityGroupID = "sg-dbc7c9bf"

PS> $KeyPair = "kimsejun-oregon"

 



 

위에서 부터 설명 드리면 검색한 Linux AMI ID 원격 접속을 위한 Public IP 할당 설정, Instance Type 지정, Instance 제작하고 싶은 Subnet ID(해당 정보에는 VPC AZ 들어있기 때문에 같이 정의된다고 보면 됩니다.), 접근을 위한 네트워크 방화벽인 Security Group ID, 접속 PS Key Pair 정의 하였습니다. 모두 이전에 작성한 글들이 있으니 참고하시면 됩니다.

변수 설정 고려해야 사항으로는 Subnet ID Security Group ID 동일한 VPC 존재하는지 확인해 보셔야 합니다. 설정 오류로 외부통신시 통신 제어가 안되기 때문입니다.

또한, Subnet ID 외부와 통신이 되는 환경으로 Route 설정되어 있는지도 확인하시기 바랍니다.

 

위와 같이 정의된 값들로 Instance 생성해 보도록 하겠습니다.


PS> New-EC2Instance -ImageId $AMIImage -InstanceType $InstanceType -AssociatePublicIp $AccessPublicIp `

-SubnetId $SubnetId -SecurityGroupId $SecurityGroupID -KeyName $KeyPair -MinCount 1 -MaxCount 1


 


 

생성이 완료되었습니다. 결과 값은 금방 나옵니다만, AWS cmdlet 비동기 명령이기 때문에 Instance 생성이 완료되진 않았다는 것을 알고 계셔야 합니다.


PS> (Get-EC2Instance -Instance i-4f846d88).Instances.state


 


 

보시는 바와 같이 바로 확인해 보시면 Instance 상태가 pending 것을 확인해 보실 있습니다. 시간이 조금 지난 확인해 보시면 다음과 같이 running 되는 것을 확인하실 있습니다.


PS> (Get-EC2Instance -Instance i-4f846d88).Instances.state


 


 

Instance를 제작하면 자동으로 Running 단계로 넘어가네요. 아마 초기화 단계가 있을 것이라 예상해 봅니다.

접속을 하기 전에 정의한 설정들이 정상적으로 Instance 반영되었는지 살펴봅시다.


PS> (Get-EC2Instance -Instance i-4f846d88).Instances | `

select ImageId, PublicIpAddress, InstanceType, SubnetId, SecurityGroups, KeyName, PrivateIpAddress


 

 


정상적으로 제작되었음을 확인하실 있습니다. 그럼 이제 접속을 해봅시다. 저는 Powershell에서 직접 접근하겠습니다만, 해당 기능은 따로 Module Import해야 사용 가능합니다. 제가 사용하는 기능은 SSH-Sessions 이라는 Module입니다. 아직 완성되지 않은 Module이기 때문에 간단하게 사용하고 있습니다. Powershell에서 SSH 기능은 Windows Server 2016 적용될 것이라고 합니다. Putty 접속하시는 분들은 아래 URL 참고하시면 됩니다.

 

Putty Instance 접속 방법 : http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ec2-connect-to-instance-linux.html#using-putty

 

그럼 접속해 보겠습니다.

(EC2 Instance 상태가 running인데 접속이 되지 않으시는 분들은 잠시 후에 다시 시도해 보시기 바랍니다. EC2 Instance running Machine 켜진 상태이지 OS 부팅(초기화) 완료된 상태가 아닙니다.)


PS> New-SshSession -ComputerName 54.201.93.238 -Username ec2-user -KeyFile D:\kimsejun-oregon.pem

PS> Enter-SshSession -ComputerName 54.201.93.238


 

 


간단하게 접속한 이것저것 확인해 보았습니다. SSH 세션이 불안정하기 때문에 많은 명령어는 실행되지 않습니다만, 제작된 Instance 접속된 것이라는 것은 hostname만으로도 있습니다. 여러 OS 접속 계정은 다음 URL 참고하시면 좋습니다.

 

AWS OS Default 계정 : https://alestic.com/2014/01/ec2-ssh-username/

 

Tag 달아야겠죠? 이미 언급된 내용이니 설명 없이 cmdlet 실행하겠습니다.


PS> New-EC2Tag -Resource i-4f846d88 -Tag @{ Key= "Name"; Value= "Example Lunux Instance"}

PS> New-EC2Tag -Resource i-4f846d88 -Tag @{ Key= "Example" }


 

 


이제 Instance까지 제작해 보았습니다. AWS 간단한 내용들만 우선적으로 설명 드렸습니다만 전달 되었는지 모르겠습니다. 이제 시작이라는 생각도 봅니다. 저의 글들이 여러분께 많은 도움이 되길 바랍니다.

 

참고자료 : http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/concepts.html