AWS EC2 instance 생성 및 접속
AWS EC2 instance 생성 및 SSH로 접속하기.
AWS EC2 Ubuntu server.
aws cli에 config 정보 등록. (key 필요함.) 여러개의 config을 사용하려면, 아래와 같이 profile을 파서 만들면 된다.
aws configure --profile 'username'
여기서는 편하게 접속하기 위해 python script를 사용하였고, AWS는 boto3라는 api로 python 스크립트로 접속 가능함.
마지막 python 코드에서 확인할 수 있듯이, 앞의 과정은 EC2 instance 정보와 ip, private key 정보를 담은 pem 파일을 ssh로 같이 넘겨주는 스크립트이며,
이 때 처음 pem 파일은 권한이 너무 open 되어 있어서 deny 발생하니, chmod 커맨드로 권한을 변경시켜 주자.
chmod 600 *.pem
- instance 간편(?) 접속 python script
import boto3
import sys
import os
def help():
print()
print('Usage: python3 connect.py [instance_idx]')
print()
print('\tinstance_idx: integer')
print()
if __name__ == '__main__':
# aws profile select by Session
dada_session = boto3.session.Session(profile_name='dada')
client = dada_session.client('ec2')
ec2_meta = client.describe_instances()
ec2_instances = ec2_meta['Reservations'][0]['Instances']
if len(sys.argv) < 2:
help()
exit()
instance_idx = int(sys.argv[1])
# print('All ec2 instances:')
# for i_idx, i in enumerate(ec2_instances):
# print('[{}]: {} | {}'
# .format(i_idx, i['InstanceId'], i['PublicIpAddress']))
## in case public IP
print('Connecting to instance {} | {}'.format(
ec2_instances[instance_idx]['InstanceId'],
ec2_instances[instance_idx]['PublicIpAddress']))
print('executing!')
os.execlp('ssh', 'ssh', '-i', 'dada-yumi-ec2.pem',
'ubuntu@{}'.format(ec2_instances[instance_idx]['PublicIpAddress']))