Intro
์๋ ํ์ธ์. ์ด๋ฒ ์๊ฐ์๋ AWS API Gateway ์ ๋ํด ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ์๊ทผ๋ API Gateway ๋ฅผ ์ฒ์ ์ ํด๋ด ๊ฐ๋ ์ ํ๋ฒ ๋ ๊ณต๋ถํ๊ณ ๊ฐ์ผ ์ข์ ๊ฒ ๊ฐ์ ์ ๋ฆฌํด๋ด ๋๋ค.
API Gateway๋
AWS API Gateway๋ AWS์ ๊ด๋ฆฌํ ์๋น์ค ์ค ํ๋์ ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์๊ฐ ๊ฐ๋จํ๊ฒ API (Application Programming Interface)๋ฅผ ์์ฑ, ๊ด๋ฆฌํ ์ ์๊ฒ ํด์ฃผ๋ ๋๊ตฌ๋ผ๊ณ ์๊ฐํ๋ฉด ๋ฉ๋๋ค.
API Gateway ๊ธฐ๋ฅ
ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๋ฐฑ์๋ ์๋น์ค ๊ฐ์ ํต์ ์ ๊ด๋ฆฌํ๊ณ , HTTP ๋๋ RESTful API๋ฅผ ์ง์ํฉ๋๋ค. ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌ, ์์ฒญ ๋ฐ ์๋ต ๋ณํ, ์ ํจ์ฑ ๊ฒ์ฌ ๋ฑ์ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
API Gateway ์ฌ์ฉ ์ด์
1. ๋จ์ํ๋ API ๊ด๋ฆฌ : API๋ฅผ ์ฝ๊ฒ ์์ฑํ๊ณ ๊ด๋ฆฌํ ์ ์์ด์ ๊ฐ๋ฐ์๋ API์ ๋ฒ์ ๊ด๋ฆฌ, ์ก์ธ์ค ์ ์ด, ๋ชจ๋ํฐ๋ง ๋ฑ์ ๊ฐํธํ๊ฒ ์ํํ ์ ์์ต๋๋ค.
2. ๋ณด์ ๋ฐ ์ธ์ฆ : ์ธ์ฆ ๋ฐ ๊ถํ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํ์ฌ API ์๋ํฌ์ธํธ์ ์ ๊ทผํ ์ ์๋ ํด๋ผ์ด์ธํธ๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
3. ํ์ฅ์ฑ๊ณผ ๊ณ ๊ฐ์ฉ์ฑ : ํธ๋ํฝ์ ๋ฐ๋ผ ์๋์ผ๋ก ํ์ฅํ ์ ์์ผ๋ฉฐ, ์ฌ๋ฌ ๋ฆฌ์ ์ ๋ถ์ฐํ์ฌ ๊ณ ๊ฐ์ฉ์ฑ์ ์ ๊ณตํฉ๋๋ค.
4. ์์ฒญ ๋ฐ ์๋ต ๋ณํ : ์์ฒญ๊ณผ ์๋ต์ ๋ณํํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ ํด๋ผ์ด์ธํธ์ ๋ฐฑ์๋ ๊ฐ์ ๋ฐ์ดํฐ ํ์ ๋ฐ ํ๋กํ ์ฝ ๋ณํ์ด ๊ฐ๋ฅํฉ๋๋ค. ํ ์๋ก, ํด๋ผ์ด์ธํธ๊ฐ jsonํ์์ผ๋ก ์์ฒญํ๊ณ , ๋ฐฑ์๋๊ฐ xml ํ์์ผ๋ก ์๋ตํ๋ ๊ฒฝ์ฐ์๋ ์ฝ๊ฒ ๋ณํํ ์ ์์ต๋๋ค.
5. ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ํตํฉ : AWS Lambda์ ๊ฐ๋ ฅํ ํตํฉ์ ์ ๊ณตํ์ฌ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๊ฒ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
6. ๋ชจ๋ํฐ๋ง๊ณผ ๋ก๊น : API์ ์ฑ๋ฅ, ์ฌ์ฉ๋, ์๋ฌ ๋ฑ์ ๋ํ ๋ชจ๋ํฐ๋ง์ ์ ๊ณตํฉ๋๋ค.
์๋ํฌ์ธํธ๋?
API ์๋ํฌ์ธํธ๋ API(Application Programming Interface)๋ฅผ ํตํด ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๋ฒ๋ ์น ์๋น์ค์ ํต์ ํ ์ ์๋ URL(Uniform Resource Locator)์ ๋๋ค. ์๋ํฌ์ธํธ๋ ์๋น์ค์ ํน์ ๊ธฐ๋ฅ ๋๋ ๋ฆฌ์์ค์ ๋ํ ์ ๊ทผ ์ง์ ์ ๋ํ๋ ๋๋ค.
API ์๋ํฌ์ธํธ๋ ์ผ๋ฐ์ ์ผ๋ก HTTP ๋๋ HTTPS ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋ฉฐ, ํด๋ผ์ด์ธํธ๋ ์๋ํฌ์ธํธ๋ก HTTP ์์ฒญ์ ๋ณด๋ด๊ณ , ์๋ฒ๋ ํด๋น ์์ฒญ์ ๋ํ ์๋ต์ ๋ฐํํฉ๋๋ค. ์๋ํฌ์ธํธ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ฆฌ์์ค์ ๊ฒฝ๋ก์ ํจ๊ป ํน์ ๋๋ฉ์ธ ๋๋ ์๋ธ๋๋ฉ์ธ๊ณผ ์ฐ๊ฒฐ๋ฉ๋๋ค.
https://api.example.com/users
์์ ์๋ํฌ์ธํธ๋ /users๋ผ๋ ๊ฒฝ๋ก์ ์ฌ์ฉ์ ๊ด๋ จ ๋ฆฌ์์ค์ ์ ๊ทผํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ํด๋ผ์ด์ธํธ๋ ์ด ์๋ํฌ์ธํธ๋ก HTTP GET ์์ฒญ์ ๋ณด๋ด๋ฉด, ํด๋น API์์๋ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ๋ฐํํ๋ ์๋ต์ ์ ๊ณตํ ์ ์์ต๋๋ค. API ์๋ํฌ์ธํธ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ํ ๊ธฐ๋ฅ ๋ฐ ๋ฆฌ์์ค์ ๋ํ ์ ๊ทผ์ ๋ํ๋ด๋ ์ค์ํ ์์์ ๋๋ค. ์๋ํฌ์ธํธ๋ API ๋ฌธ์ ๋๋ ์คํ์ ์ ์๋์ด ์์ผ๋ฉฐ, ํด๋ผ์ด์ธํธ ๊ฐ๋ฐ์๋ ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก API์ ์ํธ์์ฉํ๊ณ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๊ณ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
AWS Lambda, AWS API Gateway ๊ฐ์ด ์ฌ์ฉํ๋ฉด ์ข์ ์ด์
AWS Lambda๋ ์ด๋ฒคํธ ๊ธฐ๋ฐ์ ์๋ฒ๋ฆฌ์ค ์ปดํจํ ์๋น์ค๋ก, ์ฝ๋๋ฅผ ์คํํ๊ณ ์ค์ผ์ผ๋ง ๋ฐ ์ธํ๋ผ ๊ด๋ฆฌ๋ฅผ ์๋์ผ๋ก ์ฒ๋ฆฌํฉ๋๋ค. Lambda ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น์ฆ๋์ค ๋ก์ง์ ๊ตฌํํ๊ณ , ํ์ํ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ ์ ์์ต๋๋ค. Lambda ํจ์๋ ๋ค์ํ ์ด๋ฒคํธ ์์ค(S3, DynamoDB, SNS ๋ฑ)์์ ํธ๋ฆฌ๊ฑฐ๋ ์ ์์ต๋๋ค.
AWS API Gateway๋ฅผ Lambda ํจ์์ ํจ๊ป ์ฌ์ฉํ๋ฉด, API Gateway๋ฅผ ํตํด ํด๋ผ์ด์ธํธ ์์ฒญ์ ๋ฐ๊ณ , Lambda ํจ์๋ฅผ ํธ์ถํ์ฌ ์์ฒญ์ ๋ํ ์๋ต์ ์์ฑํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์๋ฒ๋ฆฌ์ค ์ํคํ ์ฒ๋ฅผ ๊ตฌํํ๊ณ , ํ์์ ๋ฐ๋ผ ๋ฐฑ์๋ ์๋น์ค์์ ํตํฉ๋ ๊ฐํธํ๊ฒ ์ํํ ์ ์์ต๋๋ค.
'Devops > AWS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[AWS] IAM ๋ฐ AWS CLI ๋? (0) | 2023.05.18 |
---|---|
[AWS] Certified Solutions Architect Associate (0) | 2023.05.17 |
[AWS] DynamoDB๋? (0) | 2023.04.03 |
[AWS] ElasticBeanstalk ๋น์คํก ์ญ์ ์ค๋ฅ ํด๊ฒฐ ๋ฐฉ๋ฒ Stack deletion failed: The following resource(s) failed to delete: [AWSEBSecurityGroup] (0) | 2023.03.08 |
[AWS] AWS IP ๋์ญ ํ์ธํ๋ ๋ฐฉ๋ฒ (0) | 2023.02.02 |