Python์šฉ AWS SDK์ธ Boto3๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ AWS๋ฅผ ๋น ๋ฅด๊ฒŒ ์‹œ์ž‘ํ•˜์‹ญ์‹œ์˜ค. Boto3๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Python ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋˜๋Š” ์Šคํฌ๋ฆฝํŠธ๋ฅผ Amazon S3, Amazon EC2, Amazon DynamoDB ๋“ฑ AWS ์„œ๋น„์Šค์™€ ์‰ฝ๊ฒŒ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


Resource API

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์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.