애플리케이션 구성과 배포를 자동화하는 OpsWorks

이재홍 http://www.pyrasis.com 2014.03.24 ~ 2014.06.30

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 버킷에 파일 올리기/받기’를 참조하기 바랍니다.


그림 24-16 S3 버킷에 PHP 소스 코드 업로드

OpsWorks 인스턴스 목록에서 위쪽 Navigation을 클릭하면 팝업 메뉴가 나옵니다. Apps를 클릭합니다.


그림 24-17 OpsWorks 인스턴스 목록

OpsWorks App 목록에서 Add an app을 클릭합니다.


그림 24-18 OpsWorks App 목록

OpsWorks PHP App을 생성합니다(그림 24-19).

  • 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 사용 옵션입니다. 기본값 그대로 사용합니다.

설정이 완료되었으면 Add App 버튼을 클릭합니다.


그림 24-19 OpsWorks App 생성

OpsWorks PHP App이 생성되었습니다.


그림 24-20 OpsWorks 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 버킷에 올립니다.


저작권 안내

이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.
  • 블로그, 게시판 등에 퍼가는 것을 금지합니다.
  • 비공개 포스트에 퍼가는 것을 금지합니다.
  • 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
  • 링크 및 SNS 공유는 허용합니다.