안녕하세요~
이번 포스트에서는 파이참을 이용해 AWS 리소스를 만드는 실습을 해보겠습니다.
사전작업으로
boto3 플러그인 설치, AWS CLI 2 다운로드가 필요합니다.
boto3 플러그인 설치:
#Terminal
python -m pip install boto3
AWS CLI 2 다운로드:
아래 링크에서 AWS CLI를 다운받고 credeintials, config 파일을 생성했습니다.
https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/getting-started-install.html
C:\Users\user> mkdir ~/.aws
touch ~/.aws/credentials
[default]
aws_access_key_id = [access key id 입력]
aws_secret_access_key = [secret access key 입력]
touch ~/.aws/config
[default]
region = ap-northeast-2
테스트
AWS 리소스 생성이 가능한지 간단히 테스트를 해보겠습니다.
S3 버킷리스트를 출력하는 간단한 코드입니다.
import boto3
s3 = boto3.resource('s3')
for bucket in s3.buckets.all():
print(bucket.name)
AWS 인스턴스 만들기
VPC, 서브넷, 라우팅, 보안그룹, 키페어 생성 방법은 다음에 포스팅하기로 하고
이번은 인스턴스 생성이 주제이니 기생성한 리소스를 활용하기만 하겠습니다.
# 변수
AWS_REGION = "ap-northeast-2"
KEY_PAIR_NAME = "키페어이름"
AMI_ID = 'ami-***' # Amazon Linux 2
#SUBNET_ID = 'subnet-***' #pub-a
SUBNET_ID = 'subnet-***' #pri-a
INSTANCE_TYPE = "t3.medium"
SECURITY_GROUP_ID = 'sg-***'
USER_DATA = #!/bin/bash
sudo yum update -y
EC2_RESOURCE = boto3.resource('ec2', region_name=AWS_REGION)
EC2_CLIENT = boto3.client('ec2', region_name=AWS_REGION)
instances = EC2_RESOURCE.create_instances(
MinCount = 1,
MaxCount = 1,
ImageId = AMI_ID,
#Architecture = 'x86_64',
InstanceType = INSTANCE_TYPE,
KeyName = KEY_PAIR_NAME,
SecurityGroupIds = [SECURITY_GROUP_ID],
SubnetId=SUBNET_ID,
UserData=USER_DATA,
TagSpecifications=[
{
'ResourceType': 'instance',
'Tags': [
{
'Key': 'Name',
'Value': '***-EC2-WAS'
},
]
},
]
)
for instance in instances:
print(f'EC2 instance "{instance.id}" has been launched')
instance.wait_until_running()
EC2_CLIENT.associate_iam_instance_profile(
IamInstanceProfile={'Name': INSTANCE_PROFILE},
InstanceId=instance.id,
)
print(f'EC2 Instance Profile "{INSTANCE_PROFILE}" has been attached')
print(f'EC2 instance "{instance.id}" has been started')
'Programming > Python' 카테고리의 다른 글
예제로 알아보는 boto3 (0) | 2023.06.02 |
---|---|
ChatGPT와 Slack 연동 (1) | 2023.05.17 |
[Python_Airflow] 설치 1.10버전 (0) | 2022.12.27 |
[Python] pandas csv 생성 (0) | 2022.12.15 |
[Python] 함수와 를 활용한 코드 분석 (0) | 2022.12.14 |
댓글