์ฌ์ฉ ๋ฐฉ๋ฒ
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๋ฅผ ์ ์ํ๊ธฐ ์ํ ์ธ์ด๋ก, ํ๋กํ ์ฝ์ ๊ตฌ์ ๋ฐ์ง ์์ต๋๋ค.