Python์ฉ AWS SDK์ธ Boto3๋ฅผ ์ฌ์ฉํ์ฌ AWS๋ฅผ ๋น ๋ฅด๊ฒ ์์ํ์ญ์์ค. Boto3๋ฅผ ์ฌ์ฉํ๋ฉด Python ์ ํ๋ฆฌ์ผ์ด์
, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋๋ ์คํฌ๋ฆฝํธ๋ฅผ Amazon S3, Amazon EC2, Amazon DynamoDB ๋ฑ AWS ์๋น์ค์ ์ฝ๊ฒ ํตํฉํ ์ ์์ต๋๋ค.
Boto3์๋ ๋๋ ท์ด ๊ตฌ๋ณ๋๋ ๋ ๊ฐ์ง ์์ค์ API๊ฐ ์์ต๋๋ค. Client(๋๋"๋ฎ์ ์์ค") API๋ ๊ธฐ๋ณธ HTTP API ์์ ์ ์ผ๋์ผ ๋งคํ์ ์ ๊ณตํฉ๋๋ค. Resource API๋ ๋ช ์์ ์ธ ๋คํธ์ํฌ ํธ์ถ์ ์จ๊ธฐ์ง๋ง ๋์ ์์ฑ์ ์ก์ธ์คํ๊ณ ์์ ์ ์ํํ๋๋ก ๋ฆฌ์์ค ๊ฐ์ฒด ๋ฐ ๋ฆฌ์์ค ๋ชจ์์ ์ ๊ณตํฉ๋๋ค. ์:
for i in ec2.instances.all():
if i.state['Name'] == 'stopped':
i.start()
์ต์ ์ ์ผ๊ด์ฑ ์๋ ์ธํฐํ์ด์ค
Boto3์ 'Client' ๋ฐ 'Resource' ์ธํฐํ์ด์ค์๋ AWS API๋ฅผ ์ค๋ช ํ๋ JSON ๋ชจ๋ธ์์ ๋์ ์ผ๋ก ์์ฑ๋ ํด๋์ค๊ฐ ์์ต๋๋ค. ์ด๋ฅผ ํตํด AWS์์๋ ๋ชจ๋ ์ง์ ์๋น์ค ์ ์ฒด์ ์ผ๊ด์ฑ์ด ๋๊ณ ๋งค์ฐ ๋น ๋ฅธ ์ ๋ฐ์ดํธ๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.
Python 2 ๋ฐ 3 ์ง์
Boto3๋ ์ฒ์๋ถํฐ Python ๋ฒ์ 2.6.5+, 2.7 ๋ฐ 3.3+๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ์ง์ํ๋๋ก ์์ฑ๋์์ต๋๋ค.
Waiters
Boto3์๋ AWS ๋ฆฌ์์ค์์ ์ฌ์ ์ ์ ์๋ ์ํ ๋ณํ๋ฅผ ์๋์ผ๋ก ํด๋งํ๋ 'Watiers'๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, Amazon EC2 ์ธ์คํด์ค๋ฅผ ์์ํ๊ณ Waiter๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์คํด์ค๊ฐ '์คํ' ์ํ๊ฐ ๋๊ธธ ๊ธฐ๋ค๋ฆฌ๊ฑฐ๋, ์๋ก์ด Amazon DynamoDB ํ ์ด๋ธ์ ์์ฑํ๊ณ ํ ์ด๋ธ์ด ์ฌ์ฉ ๊ฐ๋ฅํด ์ง ๋๊น์ง ๊ธฐ๋ค๋ฆด ์ ์์ต๋๋ค. Boto3๋ Client ๋ฐ Resource API์ฉ Waiters๋ฅผ ๋ชจ๋ ์ง์ํฉ๋๋ค.
์๋น์ค๋ณ ๋์ ์์ค ๊ธฐ๋ฅ
Boto3์๋ Amazon S3์ฉ ์๋ ๋ฉํฐ ํํธ ์ ์ก, Amazon DynamoDB์ฉ ๊ฐ์ํ๋ ์ฟผ๋ฆฌ ์กฐ๊ฑด ๋ฑ ์๋น์ค์ ํนํ๋ ๋ง์ ๊ธฐ๋ฅ์ด ํฌํจ๋์ด ์์ต๋๋ค.
๋ค๋ฅธ ๊ฐ๋ฐ์์ ์ฐ๊ฒฐํ๊ธฐ Python ์ปค๋ฎค๋ํฐ ํฌ๋ผ »
AWS์ ํจ๊ป Python์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด Python ๊ฐ๋ฐ์ ์ผํฐ์์ ์์ธํ ์์๋ณด๊ธฐ »
์ต์ SDK ์ธ๋ถ ์ ๋ณด ์์๋ณด๊ธฐ Change Log »
์์ค ์ฝ๋ ๋ถ์ GitHub ๋ฆฌํฌ์งํ ๋ฆฌ »
์ด๊ธฐ ๋ฒ์ ์ Boto(Python์ฉ AWS SDK ๋ฒ์ 2)๋ pip๋ฅผ ์ฌ์ฉํ์ฌ ์ค์นํ ์ ์์ต๋๋ค(pip install boto). ํ๋ก์ ํธ์ ์ค๋ช ์๋ GitHub ๋ฐ Read the Docs์์ ํ์ธํ ์ ์์ต๋๋ค.

