AWS ํต์ฌ ๊ธฐ์ , ๊ธฐ๋ณธ๊ธฐ๋ถํฐ ํํํ๊ฒ ์์๋ณด์ธ์!
๊ฐ์ ์๊ฐ ๐
์ฐ์ ํด๋ผ์ฐ๋ฉ์ ๋ฐฐ์์ผ ํ๋ ์ด์ ๋ ๋ฌด์์ผ๊น์? ์ฌ๋ฌ๋ถ๋ค์ด ๋ฐ์ดํฐ ์์ง๋์ด ํน์ ํด๋ผ์ฐ๋ ์์ง๋์ด๋ก ํ์ฌ์์ ์ผํ๊ณ ์๊ฑฐ๋ ์ผํ๊ณ ์ถ๋ค๊ณ ๊ฐ์ ํด๋ณผ๊ป์. ํด๋ผ์ฐ๋ฉ์ ์ฌ์ฉํ๊ฒ ๋๋ฉด ๊ธฐ์
์์๋ ๋ฌผ๋ฆฌ์ ์ธ ์๋ฒ ์ฅ์น๊ฐ ์ ํ ํ์ํ์ง ์๊ณ ๋ฐ๋ผ์ ์๋ฒ์ ์ ์ง๋ณด์, ๊ด๋ฆฌ์ ํ์ํ ๋น์ฉ์ ๋ฌด์ง๋ง์งํ๊ฒ ์ ๊ฐํ ์ ์์ต๋๋ค. ๋ฟ๋ง ์๋๋ผ ์๋์ผ๋ก ์๋ฒ์ ์ค์ผ์ผ์ ๋๋ ธ๋ค ์ค์๋ค ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฌ๊ธฐ์๋ ์ฐ๋ฆฌ๋ ๋น์ฉ ์ ์ฝ์ ์ด์ ์ ๋๋ฆด ์ ์์ต๋๋ค. AWS ์๋น์ค์๋ ์๋ง์ ๋ฆฌ์์ค๋ค์ด ์กด์ฌํ๋ฉฐ ๊ฐ๊ฐ์ ๋ฆฌ์์ค๋ค์ ํ๋๋ก ํฉ์ณ์ ์ฐ๋ฆฌ๋ ๊ฑฐ๋ํ ์ธํ๋ผ๋ฅผ ๊ตฌ์ถํ ์ ์์ต๋๋ค. ํ๋ํ๋ ํฉ์ด์ ธ ์๋ ํผ์ฆ์ ๋ง์ถฐ๋๊ฐ๋ค๋ ๋น์ ๊ฐ ์ ์ ํ๊ฒ ์ต๋๋ค.
AWS์์ ์ ๊ณต๋๋ ์๋ง์, ๊ทธ๋ฌ๋ ๊ผญ ํ์ํ ์๋น์ค๋ค์ ๋ฅ์๋ฅ๋ํ๊ฒ ์ฌ์ฉํ๊ธฐ ์์ ๋ฐ๋์ ์์งํด์ผ ํ๋ ๊ธฐ๋ณธ์ ์ธ ์ด๋ก ๋ถ๋ถ๊ณผ ์ฒ์๋ถํฐ ๋๊น์ง ๊ฐ์ฌ์ ํจ๊ป ๋ฐ๋ผํ๋ ์ค์ต๊น์ง ์๊ฐ์๋ค์๊ฒ ๋ปฅ ๋ซ๋ฆฌ๋ ๊ธธ์ก์ด๊ฐ ๋์ด ๋๋ฆฌ๊ฒ ์ต๋๋ค. ๋ณธ ๊ฐ์๋ฅผ ๋ชจ๋ ์๊ฐํ์๋ฉด AWS์ ๋ํ ๊ธฐ๋ณธ๊ธฐ๋ ์์ผ์
จ๋ค๊ณ ์๋ถํ์ค ์ ์๊ฒ ๋ง๋ค์ด ๋๋ฆฌ๊ฒ ์ต๋๋ค.
๊ฐ์ ๋ด์ฉ ๐
AWS(Amazon Web Service) ์
๋ฌธ์๋ฅผ ์ํ ๊ฐ์์์๋ ๋ค์๊ณผ ๊ฐ์ ์๋น์ค๋ฅผ ๋ฐฐ์ฐ์ค ์ ์์ต๋๋ค.
1. IAM : AWS๋ฅผ ์ฌ์ฉํ๋๋ฐ ์์ด ํ์ํ ์ ์ /๊ทธ๋ฃน์ ์์ฑ ๋ฐ ๋ค์ํ ๊ด๋ฆฌ ๋ฐฉ๋ฒ๋ค์ ๋ฐฐ์ธ ์ ์์ต๋๋ค.
2. EC2 : ์๊ฒฉ์ผ๋ก ์ธ์คํด์ค๋ฅผ ์์ฑํ์ฌ nginx๋ฅผ ์ฌ์ฉํ ๊ฐ๋จํ ์น์ฌ์ดํธ ์์ฑ์ ํ ์ ์์ผ๋ฉฐ ๋ค์ํ ์ธ์คํด์ค์ ์ ํ ๋ฐ ์์ฑ ๋ฐฉ๋ฒ์ ๋ฐฐ์ธ ์ ์์ต๋๋ค.
3. RDS : AWS์์๋ MySQL, PostgresDB๋ฑ ๋ค์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋น์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ป๊ฒ AWS์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ ์ ์์์ง๋ฅผ ๋ฐฐ์ฐ๊ณ , ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ด์ํ๋๋ฐ ์์ด ์ค์ํ ๊ฐ๋
(๋ฐฑ์
, ๋ณด์ ๋ฑ)๋ค์ ์์๋ด
๋๋ค.
4. S3 : AWS์์ ๊ฐ์ฅ ์ค๋๋ ์๋น์ค ์ค ํ๋์ด๋ฉฐ ์ฃผ๋ก ํ์ผ(์ค๋ธ์ ํธ)๋ค์ ์
๋ก๋ํ๊ณ ๋ค์ด๋ก๋ํ๋ ์ฉ๋๋ก ์ฌ์ฉ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ S3์์๋ ๋ง์ ์คํ ๋ฆฌ์ง ์ ํ์ด ์กด์ฌํ๋ฉฐ ๊ทธ๋ค์ ์ฐจ์ด๋ฅผ ์ดํดํ๊ณ ์์ด์ผ ํ์ํ ๋ ์ ์ฌ์ ์์ ์ํ๋ ์๋น์ค๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๋น์ฉ์ ์ธ ์ธก๋ฉด, ์ฑ๋ฅ๋ฉด์์๋ ์ด๋์ ๋ณผ ์ ์์ต๋๋ค. S3๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฉํ๋ฉฐ ๋ค์ํ ์ ๊ทผ ๋ฐฉ๋ฒ์ ๋ํด์ ๋ฐฐ์ฐ์ค ์ ์์ต๋๋ค.
5. CloudWatch : ํด๋ผ์ฐ๋ ์๋น์ค๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ค๋ฉด ๊ผญ ์ ํด๋ณผ ์ ์๋ ๊ธฐ๋ณธ์ ์ธ, ๊ทธ๋ฌ๋ ๋งค์ฐ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ๋ค์ ์ ๊ณตํฉ๋๋ค. ์ค์๊ฐ ์์คํ
Logging์๋น์ค ๋ฐ ์๋ ์ค์ ๊ธฐ๋ฅ์ ํตํ์ฌ ๊ฐ๋ฐ์๋ค์๊ฒ ํ์ํ ์ ๋ณด๋ฅผ ์ ๋ฌํด์ค๋๋ค. ์ด๋ฅผ ํตํ์ฌ ์์ฌ์ด ๋๋ฒ๊น
์ ๊ฐ๋ฅ์ผ ํด์ค๋๋ค. ๋ค์ํ Metrics๋ฅผ ํตํด ๋ ํจ์จ์ ์ธ AWS ๊ด๋ฆฌ๋ฅผ ๊ฐ๋ฅ์ผ ํด์ค๋๋ค.
6. Lambda : AWS๋ด์ ์กด์ฌํ๋ ์๋ง์ ์ด๋ฒคํธ๋ค์ด ๋ฐ๋๋ ์ ๊ตฌํ๋ Lambdaํจ์๊ฐ ์คํ๋์ด ์ ์ฒ๋ฆฌ ์ญํ ์ ๊ฐ๋ฅ์ผ ํด์ค ๋ฟ๋ง ์๋๋ผ ๋๋ค๋ฅธ AWS ๋ฆฌ์์ค๋ค์ ๋ถ๋ฌ์ค๋๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ํนํ Lambda๋ Serverless ์ํคํ
์ณ๋ฅผ ๋์์ธํ๋๋ฐ ๋งค์ฐ ์ค์ถ์ ์ธ ์ญํ ์ ๋ด๋นํฉ๋๋ค.
7. CloudFront : Contents Delivery Network(CDN)์ ๊ธฐ๋ฐ์ ๋๊ณ ์์ผ๋ฉฐ ์ ์ธ๊ณ์ ํฉ์ด์ ธ์๋ ์ ์ ๋ค์๊ฒ ์ต์์ ์๋น์ค๋ฅผ ์ ๊ณตํ๋๋ฐ ํ์๋์ด์ง๋ ๋ฆฌ์์ค์
๋๋ค. ์ฒ์ ๊ตฌํํ๊ธฐ์ ์๊ตฌ๋์ด์ง๋ ์ค์ ์ฌํญ์ ๋ค์ ๋ณต์กํ๋ ์ดํ์๋ ๋งค์ฐ ํธ๋ฆฌํ ๊ธฐ๋ฅ๋ค์ด ์ ๊ณต๋ฉ๋๋ค. ์ฝ๊ฐ์ ๋คํธ์ํฌ ์ง์์ ๊ฐ์ง๊ณ ๊ณ์๋ค๋ฉด CloudFront๋ฅผ ํจ์ฌ ์ดํดํ๋๋ฐ ์์ํฉ๋๋ค.
8. DynamoDB : AWS์์ ์ ๊ณตํ๋ NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์
๋๋ค. Batch data์ Stream data๋ฅผ loadํ๋๋ฐ ์ ํฉํ ์๋น์ค์ด๋ฉฐ NoSQL๋ง์ด ์ง๋๊ณ ์๋ ๊ฐ๋ ฅํ ์ฅ์ ๋ค์ด ์ด์ฐ๋ฌ์ ธ ์๋ ๋งค์ฐ ํจ์ฉ๊ฐ์น๊ฐ ํฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์
๋๋ค. ๋ณธ ๊ฐ์์์๋ ๊ธฐ์กด ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๋ค ์ฐจ์ด๊ฐ ์์ผ๋ฉฐ DynamoDB๋ง์ด ๊ฐ์ง๊ณ ์๋ ์ฅ์ ๋ค์ ๋ํด์ ํ์ตํฉ๋๋ค.
9. API Gateway : API Gateway๋ฅผ ์ฌ์ฉํ์ฌ ๋๋ง์ API๋ฅผ ๋ง๋ค๊ณ RestAPI์์ ์ ๊ณต๋์ด์ง๋ ๋ค์ํ ๋ฉ์๋๋ค์ ํธ์ถํ๊ณ ํ
์คํธํ๋ฉฐ AWS์์ ์ ๊ณต๋์ด์ง๋ ๋ค์ํ ๋ฆฌ์์ค๋ค(์์ : Lambda Function)๊ณผ ๋ณํฉํ์ฌ ๋์ฑ ์ ๊ตํ ํ์ดํ๋ผ์ธ์ ๋ง๋ค๊ณ ์ ์งํ ์ ์์ต๋๋ค. ์ค์ ์น์์ ์ฌ์ฉ๋์ด์ง๋ API์ญ์ API Gateway๋ฅผ ํตํ์ฌ ๊ตฌํ ๊ฐ๋ฅํฉ๋๋ค.
10. CI/CD : ์ํํธ์จ์ด ๋ฐ ์ดํ๋ฆฌ์ผ์ด์
๋ฐฐํฌ๋ ํ๋ฒ์ผ๋ก ๋๋์ง ์์ต๋๋ค. ์ง์์ ์ธ ์ ์ง๋ณด์ ๋ฐ ๊ด๋ฆฌ๊ฐ ํ์ํฉ๋๋ค. ์ด๋ฅผ ๋งค์ฐ ์ฉ์ดํ๊ฒ ํด์ฃผ๋ AWS ๋ฆฌ์์ค์ค Code Commit, Code Deploy, Code Pipeline์ ๋ฐฐ์์ผ๋ก์จ ์ ๋ฐ์ ์ธ ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฐ ๋ฐฐํฌ๊ณผ์ ์ ์ดํดํ์ค ์ ์์ผ๋ฉฐ AWS๋ฅผ ํตํ CI/CDํ์ดํ๋ผ์ธ ๊ตฌ์ถ์ ์ฒดํํ์ค ์ ์์ต๋๋ค. ๋๋ง์ ์ฝ๋๋ฅผ repository์ ์
๋ก๋ํ์ฌ branch๋ฅผ ํตํ ๊ฐํธํ ์ฝ๋ ์ ์ง๊ฐ ๊ฐ๋ฅํฉ๋๋ค. AWS์์ ์ ๊ณตํ๋ ๋ค์ํ ๋ฐฐํฌ ๋ฐฉ๋ฒ์ ํ์ตํฉ๋๋ค. ๋ํ์ ์ผ๋ก Rolling ๋ฐฐํฌ๋ฐฉ์๊ณผ Blue/Green ๋ฐฐํฌ๋ฐฉ์์ด ์์ต๋๋ค.
๊ฐ์ฌ๊ฐ ์ถ์ฒํ๋ ๋์
์
๋ฌด์ ๋ฐ๋ก ์ฐ๋ AWS ์
๋ฌธ - ๊น์ฑ๋ฏผ ์ (๋งํฌ)
ํต์ฌ ๋ฆฌ์์ค๋ฅผ ํตํด ์ฝ๊ฒ ์
๋ฌธํ๋ AWS ๊ฐ์ด๋
๋ฏธ๋ฆฌ ๋ฐฐ์ฐ๋ฉด ๋์์ด ๋๋ ๊ฐ์ โจ
Simon Kim ์ง์๊ณต์ ์๋์, Python ๊ฐ์