๐Ÿ“‚ AWS

[AWS] AWS Python SDK Boto3 ์„ค์น˜ ๋ฐ ์‚ฌ์šฉ๋ฒ•

dhyuck 2022. 5. 24. 23:43
๋ฐ˜์‘ํ˜•

Boto3๋ž€?

Boto3๋Š” Python์šฉ AWS SDK๋กœ Botocore(Python SDK์™€ CLI ์‚ฌ์ด์˜ ๊ณต์œ ๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ), Boto3(Python SDK ๊ตฌํ˜„ ํŒจํ‚ค์ง€) ๋‘๊ฐ€์ง€ ์ฃผ์š” ํŒจํ‚ค์ง€๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. (AWS CLI๋Š” Botocore๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.)

AWS SDK๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด AWS ์„œ๋น„์Šค๋“ค์— ๋Œ€ํ•œ ๊ฐ์ฒด์ง€ํ–ฅ(object-oriented) API ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ €์ˆ˜์ค€์˜ ์ ‘๊ทผ(low-level access)์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

Boto3 SDK Features

  • client : AWS ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์ €์ˆ˜์ค€์˜ ์ธํ„ฐํŽ˜์ด์Šค(a low-level interface)๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์„œ๋น„์Šค API์™€ 1:1์— ๊ฐ€๊น๊ฒŒ ๋งคํ•‘
  • resource : AWS ์„œ๋น„์Šค์— ๋Œ€ํ•œ ๊ฐ์ฒด ์ง€ํ–ฅ ์ธํ„ฐํŽ˜์ด์Šค(an object-oriented interface)๋ฅผ ๋‚˜ํƒ€๋‚ด๊ณ  ๋†’์€ ์ˆ˜์ค€์˜ ์ถ”์ƒํ™”(a higher-level abstraction)๋ฅผ ์ œ๊ณต
  • session : Credentials, AWS Region, Profile๊ณผ ๊ด€๋ จ๋œ ์ •๋ณด๋“ค์„ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌ
  • paginators : 1๋ฒˆ์— ์ „์ฒด ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†์–ด ํ›„์† ์š”์ฒญ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ „์ฒด ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•œ ๋ฐ˜๋ณต์ ์ธ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ์ถ”์ƒํ™”๋ฅผ ์ œ๊ณต

Boto3 ์„ค์น˜

  • AWS ์ž๊ฒฉ์ฆ๋ช… ์„ค์น˜
    ์ฐธ๊ณ  : AWS CLI ์„ค์ •ํ•˜๊ธฐ

  • Boto3 ์„ค์น˜

    sudo pip3 install boto3
  • ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ(๊ณ„์ •์— ์žˆ๋Š” S3 Bucket๋“ค์˜ ์ด๋ฆ„์„ ์ถœ๋ ฅํ•˜๋Š” ์ฝ”๋“œ)

    import boto3 ses = boto3.Session(profile_name = "poc")
    s3 = ses.client("s3")
    s3_buckets = s3.list_buckets() 
    for bucket in s3_buckets['Buckets']: 
        print(f"bucket name : {bucket['Name']}")
  • ์ฐธ๊ณ 
    Boto3 documentation - Boto3 Docs 1.23.1 documentation

๋ฐ˜์‘ํ˜•