드디어 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
'AWS > 파워쉘로 배우는 AWS' 카테고리의 다른 글
#18 [EC2] 고정 IP(EIP)와 Public DNS (0) | 2016.01.12 |
---|---|
#17 [EC2] Windows Instance를 만들어 보자. (0) | 2016.01.08 |
#15 [EC2] 논리 방화벽 Security Group (0) | 2016.01.08 |
#14 [EC2] Instance의 Password Key-Pair (0) | 2015.12.24 |
#13 [EC2] Instance Type은 뭘까요? (0) | 2015.12.23 |