μ›Ή μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ°œλ°œν•˜λ‹€λ³΄λ©΄ λ°μ΄ν„°λ² μ΄μŠ€ 뿐만 μ•„λ‹ˆλΌ Redis/Memcached λ“±μ˜ Key-value store, μ™ΈλΆ€ API λ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•œ APIKEY λ“±μ˜ λ³΄μ•ˆ μ„€μ •(credentials)κ³Ό 배포λ₯Ό μœ„ν•œ 호슀트 λ„€μž„λ“±μ˜ 섀정을 μ €μž₯ν•˜κ³  μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ 섀정을 μ €μž₯ν•˜λŠ” 방법은 μ½”λ“œμ— ν•˜λ“œμ½”λ”©ν•˜λŠ” 방법뢀터, xmlμ΄λ‚˜ json, yaml νŒŒμΌμ— μ €μž₯ν•˜λŠ” 방법, WAS μ—μ„œ μ„€μ •ν•˜λŠ” 방법 등이 μžˆμŠ΅λ‹ˆλ‹€.

ν™˜κ²½ λ³€μˆ˜λ‘œ κ΄€λ¦¬ν•˜λŠ” μ„€μ •

ν΄λΌμš°λ“œ λ„€μ΄ν‹°λΈŒ μ•± 개발 λ°©λ²•λ‘ μœΌλ‘œ 유λͺ…ν•œ 12-Factor (3.Config) μ—μ„œλŠ” μ΄λŸ¬ν•œ 섀정을 ν™˜κ²½ λ³€μˆ˜λ‘œ μ €μž₯ν•  것을 κΆŒκ³ ν•©λ‹ˆλ‹€. Bluemix Cloud Foundry μ•±κ³Ό μ„œλΉ„μŠ€μ—μ„œλŠ” μ„œλΉ„μŠ€λ₯Ό 앱에 λ°”μΈλ“œν• λ•Œ λ°μ΄ν„°λ² μ΄μŠ€λ‚˜ API 접속정보λ₯Ό VCAP_SERVICES ν™˜κ²½ λ³€μˆ˜λ‘œ 앱에 μ „λ‹¬ν•˜κΈ° λ•Œλ¬Έμ— μ΄λŸ¬ν•œ μš”κ΅¬ 사항을 λ§Œμ‘±ν•©λ‹ˆλ‹€. ν•˜μ§€λ§Œ Bluemix μ—μ„œ μ œκ³΅ν•˜λŠ” μ„œλΉ„μŠ€κ°€ μ•„λ‹Œ, λ‹€λ₯Έ IaaS 에 μ„€μΉ˜ν•˜κ±°λ‚˜ μ˜¨ν”„λ ˆλ―ΈμŠ€μ—μ„œ λ™μž‘ν•˜λŠ” λ°μ΄ν„°λ² μ΄μŠ€ λ“± μ„œλΉ„μŠ€μ— λŒ€ν•œ μ •λ³΄λŠ” μ–΄λ–»κ²Œ κ΄€λ¦¬ν• κΉŒμš”?

μ‚¬μš©μž μ •μ˜ ν™˜κ²½ λ³€μˆ˜ μ‚¬μš©

Bluemix Cloud Foundry μ•±μ˜ λŸ°νƒ€μž„ ν•­λͺ©μ—μ„œ ν™˜κ²½ λ³€μˆ˜ νƒ­μ—λŠ” λ°”μΈλ”©λœ Bluemix μ„œλΉ„μŠ€μ˜ VCAP_SERVICES ν™˜κ²½ λ³€μˆ˜ 말고도 μ‚¬μš©μž μ •μ˜ ν™˜κ²½ λ³€μˆ˜λ₯Ό μ„€μ • κ°€λŠ₯ν•©λ‹ˆλ‹€.

user_defined_variables.png

여기에 ν™˜κ²½ λ³€μˆ˜λ‘œ 섀정을 μ €μž₯ν•˜κ³  μ•±μ—μ„œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. κ°„λ‹¨ν•˜κ²Œ μ„€μ • κ°€λŠ₯ν•˜μ§€λ§Œ, 앱을 μ§€μš°κ³  λ‹€μ‹œ μƒμ„±ν•˜κ±°λ‚˜, μ—¬λŸ¬ μ•±μ—μ„œ 같은 λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ‚¬μš©ν•˜λŠ” λ“±μ˜ μ‚¬μš©μ€ μ–΄λ ΅μŠ΅λ‹ˆλ‹€.

μ‚¬μš©μž 제곡 μ„œλΉ„μŠ€ (User-Provided Service)

Cloud Foundry 의 μ‚¬μš©μž 제곡 μ„œλΉ„μŠ€ (User-Provided Service) λ₯Ό μ‚¬μš©ν•˜λ©΄ 보닀 νŽΈλ¦¬ν•˜κ²Œ μ„€μ • 관리가 κ°€λŠ₯ν•©λ‹ˆλ‹€. cf create-user-provided-service λ˜λŠ” cf cups λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•˜λ©΄ 마치 μΉ΄νƒˆλ‘œκ·Έμ—μ„œ μ„œλΉ„μŠ€λ₯Ό μƒμ„±ν•œ 것 처럼 섀정정보가 ν¬ν•¨λœ μ„œλΉ„μŠ€λ₯Ό 생성할 수 μžˆμŠ΅λ‹ˆλ‹€.

$ cf cups mssql_onprem -p '{"host": "10.0.0.1", "user": "sa", "password": "Passw0rd", "database": "default"}'
Creating user provided service mssql_onprem in org JK's organization / space AcmeAir as jgkong@kr.ibm.com...
OK

μœ„μ™€ 같이 μ„œλΉ„μŠ€λ₯Ό μƒμ„±ν•˜λ©΄ μ„œλΉ„μŠ€ λŒ€μ‹œλ³΄λ“œμ— user-provided μ„œλΉ„μŠ€κ°€ μƒμ„±λ©λ‹ˆλ‹€.

user_provided_service_dashboard.png

μƒμ„±λœ μ„œλΉ„μŠ€λ₯Ό 앱에 μ—°κ²°ν•˜μ—¬ λ°”μΈλ”©ν•˜κ³ , λ‹€μ‹œ ν™˜κ²½ λ³€μˆ˜ λ₯Ό 보면 λ‹€μŒκ³Ό 같이 VCAP_SERVICES ν™˜κ²½ λ³€μˆ˜μ— 접속정보가 μΆ”κ°€λœ 것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

user_provided_service_runtime.png

μ»€λ§¨λ“œλΌμΈμ— 접속정보λ₯Ό 남기지 μ•ŠκΈ° μœ„ν•΄μ„œ cf cups mssql_onprem -p "host, user, password, database" 의 λͺ…λ Ήμ–΄λ‘œ μ„œλΉ„μŠ€λ₯Ό λ§Œλ“€ μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. ν™˜κ²½ λ³€μˆ˜λ₯Ό μ—…λ°μ΄νŠΈ cf uups λ“± λͺ…령어와 λ‹€λ₯Έ μ‹€ν–‰ μ˜΅μ…˜μ€ μ•„λž˜ λ¬Έμ„œλ₯Ό μ°Έκ³ ν•˜μ‹œλ©΄ λ©λ‹ˆλ‹€.

κ΄€λ ¨ 링크

보닀 μžμ„Έν•œ λ‚΄μš©μ€ Bluemix λ¬Έμ„œμ™€ Cloud Foundry λ¬Έμ„œμ—μ„œ ν™•μΈν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€.