Skip to main content

24D. OpsWorks PHP App ์ƒ์„ฑํ•˜๊ธฐ

About 1 minAWScrashcoursepyrasisawsamazon-web-services

24D. OpsWorks PHP App ์ƒ์„ฑํ•˜๊ธฐ ๊ด€๋ จ

๋ชฉ์ฐจ

์•„๋งˆ์กด ์›น ์„œ๋น„์Šค๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ธฐ์ˆ 

24์žฅ - 4. OpsWorks PHP App ์ƒ์„ฑํ•˜๊ธฐ

์•„๋งˆ์กด ์›น ์„œ๋น„์Šค๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ธฐ์ˆ 

๊ฐ„๋‹จํ•œ PHP ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ App์„ ์ƒ์„ฑํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋‚ด์šฉ์„ index.php๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

index.php
<html>
  <head>
    <title>Hello OpsWorks</title>
  </head>
  <body>
  <?php echo 'Hello OpsWorks'; ?> 
  </body>
</html>

.index.php ํŒŒ์ผ์„ app.zip์œผ๋กœ ์••์ถ•ํ•œ ๋’ค S3 ๋ฒ„ํ‚ท์— ์˜ฌ๋ฆฝ๋‹ˆ๋‹ค. S3 ๋ฒ„ํ‚ท์„ ์ƒ์„ฑํ•˜๊ณ  ํŒŒ์ผ์„ ์˜ฌ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•์€ '11.1 S3 ๋ฒ„ํ‚ท ์ƒ์„ฑํ•˜๊ธฐ', '11.2 S3 ๋ฒ„ํ‚ท์— ํŒŒ์ผ ์˜ฌ๋ฆฌ๊ธฐ/๋ฐ›๊ธฐ'๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

S3 ๋ฒ„ํ‚ท์— PHP ์†Œ์Šค ์ฝ”๋“œ ์—…๋กœ๋“œ
S3 ๋ฒ„ํ‚ท์— PHP ์†Œ์Šค ์ฝ”๋“œ ์—…๋กœ๋“œ

OpsWorks ์ธ์Šคํ„ด์Šค ๋ชฉ๋ก์—์„œ ์œ„์ชฝ Navigation์„ ํด๋ฆญํ•˜๋ฉด ํŒ์—… ๋ฉ”๋‰ด๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค.

<FontIcon icon="iconfont icon-select"/>๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
[Apps]๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
OpsWorks App ๋ชฉ๋ก์—์„œ <FontIcon icon="iconfont icon-select"/>์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
OpsWorks App ๋ชฉ๋ก์—์„œ [Add an app]์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

OpsWorks PHP App์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  • Name: App ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. examplephp๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  • Type: App ์ข…๋ฅ˜์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • Document root: ์ž‘์„ฑํ•œ ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์žˆ์„ ๋•Œ ์ตœ์ƒ์œ„ ๋ฌธ์„œ์˜ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • Data source type: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ ์˜ต์…˜์ž…๋‹ˆ๋‹ค. RDS๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, OpsWorks๋กœ ๊ตฌ์„ฑํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • Repository type: ์†Œ์Šค ์ €์žฅ์†Œ ์ข…๋ฅ˜์ž…๋‹ˆ๋‹ค. Git, Subversion, Http Archive, S3 Archive๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. S3 Archive๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
    • Repository URL: S3 ๋ฒ„ํ‚ท์— ์˜ฌ๋ฆฐ app.zip ํŒŒ์ผ์˜ URL์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
    • Access key ID: S3 ๋ฒ„ํ‚ท์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ์•ก์„ธ์Šค ํ‚ค๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
    • Secret access key: ์•ก์„ธ์Šค ํ‚ค์˜ ์‹œํฌ๋ฆฟ ํ‚ค๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์•ก์„ธ์Šค ํ‚ค์™€ ์‹œํฌ๋ฆฟ ํ‚ค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ '9์žฅ API์™€ ํˆด ์‚ฌ์šฉ์„ ์œ„ํ•œ ์•ก์„ธ์Šค ํ‚ค ์ƒ์„ฑํ•˜๊ธฐ'๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.
    • Domain name: ๋„๋ฉ”์ธ์„ ์„ค์ • ์˜ต์…˜์ž…๋‹ˆ๋‹ค. ๋„๋ฉ”์ธ์„ ๊ตฌ์ž…ํ•˜์˜€๋‹ค๋ฉด ๋„๋ฉ”์ธ์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • Enable SSL: SSL ์‚ฌ์šฉ ์˜ต์…˜์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์„ค์ •์ด ์™„๋ฃŒ๋˜์—ˆ์œผ๋ฉด <FontIcon icon="iconfont icon-select"/> ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
์„ค์ •์ด ์™„๋ฃŒ๋˜์—ˆ์œผ๋ฉด [Add App] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
OpsWorks PHP App์ด ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
OpsWorks PHP App์ด ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Node.js App ์ž‘์„ฑํ•˜๊ธฐ

์•„๋ž˜ ๋‚ด์šฉ์„ server.js๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ ์ด๋ฆ„์„ app.js๋กœ ํ•ด์„œ OpsWorks์— ๋ฐฐํฌํ•˜๋ฉด ๋™์ž‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

.server.js

var express = require('express')
  , http = require('http')
  , app = express();

app.get(['/', '/index.html'], function (req, res) {
    res.send('Hello OpsWorks');
});

http.createServer(app).listen(80);

์•„๋ž˜ ๋‚ด์šฉ์„ package.json์œผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

.package.json

{
  "name": "hello",
  "description": "Hello OpsWorks",
  "version": "0.0.1",
  "dependencies": {
    "express": "4.4.x"
  }
}

๋‘ ํŒŒ์ผ์„ Git ์ €์žฅ์†Œ์— ์˜ฌ๋ฆฌ๊ฑฐ๋‚˜ app.zip์œผ๋กœ ์ €์žฅํ•˜์—ฌ S3 ๋ฒ„ํ‚ท์— ์˜ฌ๋ฆฝ๋‹ˆ๋‹ค.


์ด์ฐฌํฌ (MarkiiimarK)
Never Stop Learning.