Ruby์šฉ AWS SDK

AWS SDK for Ruby๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ณ  ๋ฐฐํฌํ•˜์„ธ์š”. SDK๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ด€์šฉ์ ์œผ๋กœ ๊ตฌ์„ฑ๋œ Ruby API๋ฅผ ํ†ตํ•ด AWS ์„œ๋น„์Šค๋ฅผ ์‰ฝ๊ฒŒ ์ง์ ‘์ ์œผ๋กœ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

Ruby ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ผ๊ด€๋˜๊ณ  ์ต์ˆ™ํ•œ AWS SDK for Ruby์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ธํŠธ๋ฅผ ์ œ๊ณตํ•˜์—ฌ AWS ์„œ๋น„์Šค ์‚ฌ์šฉ์„ ๊ฐ„์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  AWS SDK๋Š” ์ž๊ฒฉ ์ฆ๋ช… ๊ด€๋ฆฌ, ์žฌ์‹œ๋„, ๋ฐ์ดํ„ฐ ์ˆœ์œ„ ๊ฒฐ์ • ๋ฐ ์ง๋ ฌํ™”์™€ ๊ฐ™์€ API ์ˆ˜๋ช… ์ฃผ๊ธฐ ๊ณ ๋ ค ์‚ฌํ•ญ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

SDK๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Amazon S3, Amazon EC2, DynamoDB ๋“ฑ์„ ๋น„๋กฏํ•œ AWS ์„œ๋น„์Šค๋ฅผ ์œ„ํ•œ Ruby ํด๋ž˜์Šค๊ฐ€ ์ œ๊ณต๋˜๋ฏ€๋กœ ๋ณต์žกํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค. SDK๋Š” RubyGems๋ฅผ ํ†ตํ•ด ์˜๋ฏธ์ƒ ๋ฒ„์ „์ด ์ง€์ •๋œ ๊ฐœ๋ณ„ ์„œ๋น„์Šค Gems๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ๊ธฐ๋Šฅ

์ต์ˆ™ํ•œ Ruby ๊ฒฝํ—˜

Ruby ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ผ๊ด€๋˜๊ณ  ์ต์ˆ™ํ•œ AWS SDK for Ruby์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ธํŠธ๋ฅผ ์ œ๊ณตํ•˜์—ฌ AWS ์„œ๋น„์Šค ์‚ฌ์šฉ์„ ๊ฐ„์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  AWS SDK๋Š” ์ž๊ฒฉ ์ฆ๋ช… ๊ด€๋ฆฌ, ์žฌ์‹œ๋„, ๋ฐ์ดํ„ฐ ์ˆœ์œ„ ๊ฒฐ์ • ๋ฐ ์ง๋ ฌํ™”์™€ ๊ฐ™์€ API ์ˆ˜๋ช… ์ฃผ๊ธฐ ๊ณ ๋ ค ์‚ฌํ•ญ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“ˆ์„ฑ

AWS SDK for Ruby๋Š” ๊ฐ ์„œ๋น„์Šค๋งˆ๋‹ค ๋ณ„๋„์˜ Gems๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ชจ๋“ˆ์‹ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ๋งŒ ์ปดํŒŒ์ผํ•˜์—ฌ ์ปดํŒŒ์ผ ์‹œ๊ฐ„๊ณผ ๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ๊ธฐ๋ฅผ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ’๋ถ€ํ•œ ๊ธฐ๋Šฅ

AWS SDK for Ruby๋Š” ์‘๋‹ต ํŽ˜์ด์ง€ ๋งค๊น€, ์‚ฌ์ „ ์ •์˜๋œ ์ƒํƒœ ๋ณ€๊ฒฝ์„ ์œ„ํ•ด ๋ฆฌ์†Œ์Šค๋ฅผ ํด๋งํ•˜๋Š” ์›จ์ดํ„ฐ, EC2 ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํด๋ผ์ด์–ธํŠธ, ์–‘๋ฐฉํ–ฅ ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆฌ๋ฐ ์„œ๋น„์Šค ๋“ฑ๊ณผ ๊ฐ™์€ ํ’๋ถ€ํ•œ ํด๋ผ์ด์–ธํŠธ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๋ฆฌ์†Œ์Šค

์ง€์›๋˜๋Š” Gems

๋ชจ๋“  AWS SDK for Ruby Gems๋Š” RubyGems์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๋Š” AWS ์„œ๋น„์Šค์šฉ์œผ๋กœ๋งŒ Gems๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ „์ฒด Gems ๋ชฉ๋ก์€ GitHub์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ง€์›๋˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ Gems๋„ ๊ณ ๋ คํ•ด ๋ณด์„ธ์š”.

  • aws-sdk-rails: SQS Active Job, SES Action Mailers ๋“ฑ์˜ Ruby on Rails ํ†ตํ•ฉ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • aws-record: Amazon DynamoDB์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ๋งคํ•‘ ์ถ”์ƒํ™”๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • aws-sessionstore-dynamodb: DynamoDB๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ž™ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • aws-crt: AWS Common Runtime(CRT) ๋ฐ”์ธ๋”ฉ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • hearth: Smith๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ผ๋ฐ˜ ์ฝ”๋“œ ์ƒ์„ฑ Ruby SDK์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Smithy Ruby

Rails ์›น ์‚ฌ์ดํŠธ์™€ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•œ ์ผ๋ฐ˜์ ์ธ ์ฝ”๋“œ ์ƒ์„ฑ SDK์— ๊ด€์‹ฌ์ด ์žˆ์œผ๋‚˜์š”?

RubyKaigi 2024 ํ”„๋ ˆ์  ํ…Œ์ด์…˜์—์„œ Smithy ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์—ฌ Ruby SDK๋ฅผ ์ƒ์„ฑํ•˜๋Š” Smithy์˜ ๊ตฌํ˜„ ํ˜•ํƒœ์ธ Smithy Ruby๋ฅผ ์‚ดํŽด๋ณด์„ธ์š”. Smithy๋Š” ์„œ๋น„์Šค์™€ SDK๋ฅผ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•œ ์–ธ์–ด๋กœ, ํ”„๋กœํ† ์ฝœ์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค.