24. ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ฑ๊ณผ ๋ฐฐํฌ๋ฅผ ์๋ํํ๋ OpsWorks
24. ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ฑ๊ณผ ๋ฐฐํฌ๋ฅผ ์๋ํํ๋ OpsWorks ๊ด๋ จ
OpsWorks๋ ๋ชจ๋ ํํ์ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ฑ๊ณผ ๋ฐฐํฌ๋ฅผ ์๋ํํด์ฃผ๋ ์๋น์ค์ ๋๋ค. ์ค์ ๋ก ์๋น์ค๋ฅผ ์ ๊ณตํ๋ AWS ๋ฆฌ์์ค๊ฐ ์๋๋ผ์ ์ฌ์ฉ ์๊ธ์ด ์์ต๋๋ค.
OpsWorks๋ Elastic Beanstalk๋ณด๋ค ์ข๋ ์์ ๋๊ฐ ๋์ต๋๋ค. Elastic Beanstalk์ ๋ฏธ๋ฆฌ ์ ๊ณต๋๋ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ซํผ๋ง ์ฌ์ฉํ ์ ์์ง๋ง OpsWorks๋ Chef๋ฅผ ์ด์ฉํ์ฌ ์ด๋ค ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ ๊ตฌ์ฑ๊ณผ ๋ฐฐํฌ๋ฅผ ์์ ๋กญ๊ฒ ํ ์ ์์ต๋๋ค. CloudFormation์ผ๋ก ๋ชจ๋ ๋ถ๋ถ์ ๊ตฌํํ๊ธฐ๋ ๋ถ๋ด์ค๋ฝ๊ณ , Elastic Beanstalk๋ณด๋ค๋ ์ข๋ ์ธ์ธํ ์ค์ ์ ํ๊ณ ์ถ์ ์ฌ์ฉ์์๊ฒ ์ ํฉํฉ๋๋ค.
DevOps
DevOps(Dev + Ops)๋ Chef์ ๊ฐ๋ฐ์ฌ์ธ Opscode์์ ๋ง๋ ์ฉ์ด์ ๋๋ค. ๋ณดํต ๊ฐ๋ฐ(Development)๊ณผ ์ด์(Operation)์ ์กฐ์ง์ด ๋ถ๋ฆฌ๋์ด ์๊ณ , ์ ๋ฌด๋ ๋ฐ๋ก ์งํ๋ฉ๋๋ค. ์ด๋ ๊ฒ ๋๋ฉด ์ ๋ฌด ํจ์จ์ด ๋จ์ด์ง๊ณ , ์ปค๋ฎค๋์ผ์ด์ ๋น์ฉ์ด ๋ฐ์ํฉ๋๋ค. DevOps๋ ๊ฐ๋ฐ๊ณผ ์ด์์ ํ๋์ ํ๋ก์ธ์ค๋ก ํตํฉํ์ฌ ์๋ํ๋ ์์คํ ์ ๊ตฌ์ถํ๋ ๊ฒ์ ๋ปํฉ๋๋ค.
OpsWorks์์ ์ ๊ณตํ๋ Chef ๋ ์ํผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- Ruby on Rails
- PHP
- Node.js
- Java, Tomcat
- Nginx
- MySQL
- Memcached
- HAProxy: ์คํ์์ค TCP/HTTP ๋ก๋ ๋ฐธ๋ฐ์์ ๋๋ค.
- Ganglia: ํด๋ฌ์คํฐ ๋ชจ๋ํฐ๋ง ์์คํ ์ ๋๋ค.
๊ธฐ๋ณธ์ผ๋ก ์ ๊ณต๋๋ Chef ๋ ์ํผ ์ด์ธ์๋ ์ธํฐ๋ท์ ๊ณต๊ฐ๋ Chef ๋ ์ํผ๋ฅผ ์ด์ฉํ๋ฉด PostgreSQL, Varnish, CouchDB, Cassandra, MongoDB, Solr, Django์ ๊ฐ์ ๋ค์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ๊ฒ์ ์์ง, ๊ฐ๋ฐ ํ๋ซํผ ๋ฑ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
๋ค์์ OpsWorks ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋๋ค.
- ์คํ(Stack): ์คํ์ OpsWorks์์ ์ต์์ ๋จ์์ ๋๋ค. ์คํ ์์ ์ฌ๋ฌ ๊ฐ์ ๋ ์ด์ด๊ฐ ๋ค์ด๊ฐ๋๋ค. ๋ํ, MySQL ๋ฐ์ดํฐ๋ฒ ์ด์ค, ๋ก๋๋ฒจ๋ฐ์ ๋ฑ๋ ํฌํจ๋ฉ๋๋ค.
- ๋ ์ด์ด(Layer): EC2 ์ธ์คํด์ค ์์ฑ, Elastic IP ํ ๋น, ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑํ๋ ํ ํ๋ฆฟ์ ๋๋ค. Chef ๋ ์ํผ๋ฅผ ์ด์ฉํ์ฌ ์ค์น, ์ ๋ฐ์ดํธ, ๋ฐฐํฌ ์์ ์ ์ ์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ก๋ ๊ธฐ๋ฐ, ์๊ฐ ๊ธฐ๋ฐ Auto Scaling ์ค์ ๋ ํฌํจ๋ฉ๋๋ค.
- ์ธ์คํด์ค(Instance): ๋ ์ด์ด์ ํฌํจ๋ EC2 ์ธ์คํด์ค์ ๋๋ค. ๋ ์ด์ด์ ์ ์ํ Chef ๋ ์ํผ๋๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ค์น๋ฉ๋๋ค.
- App: ์ฌ์ฉ์๊ฐ ์์ฑํ ์์ค์ ๋ฐฐํฌ ๋จ์์ ๋๋ค. S3 ๋ฒํท, HTTP ๋ฐ Subversion, Git ์ ์ฅ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
- ์๊ฐ ๊ธฐ๋ฐ(Time-based): EC2 ์ธ์คํด์ค๊ฐ ์์ฑ, ์์, ์ ์ง๋๋ ๋ ์ง์ ์๊ฐ์ ์ ์ํ ์ ์์ต๋๋ค.
- ๋ก๋ ๊ธฐ๋ฐ(Load-based): CPU ์ฌ์ฉ๋ฅ , ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ๋ฑ์ ๋ฐ๋ผ EC2 ์ธ์คํด์ค๋ฅผ ์์ฑํ๊ฑฐ๋ ์ญ์ ํฉ๋๋ค.
- Chef ์ฟก๋ถ(Cookbook): ๋ ์ํผ, ์์ฑ, ํ ํ๋ฆฟ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฑ์ ๋ฌถ์์ ๋๋ค. ์ฟก๋ถ์ ์ ํ๋ฆฌ์ผ์ด์ ๋จ์๋ก ๊ตฌ์ฑํฉ๋๋ค. ์ฟก๋ถ ์ ์ฅ์๋ก S3 ๋ฒํท, HTTP, Subversion, Git์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- Chef ๋ ์ํผ(Recipe): ์ ํ๋ฆฌ์ผ์ด์ ์ค์น ๋ฐ ์ ๋ฐ์ดํธ, ์์ค ๋ฐฐํฌ ๋ฐฉ๋ฒ์ด ์ ์๋ ํ์ผ์ ๋๋ค.
- ์ด์์ฒด์ : Amazon Linux, Ubuntu 12.04 LTS, ์ฌ์ฉ์๊ฐ ๋ง๋ AMI๋ฅผ ์ง์ํฉ๋๋ค. ๋จ Windows๋ ์์ง ์ง์ํ์ง ์์ต๋๋ค.