맥에 PCF Dev(Pivoal Cloud Fundry)를 설치해 보았습니다.

10017 단어 PCFcloudfoundryPaas

개요


Cloud Foundery는 오픈 소스 PaaS 플랫폼에서 로컬로 PaaS 환경을 구축할 수 있습니다.
이번에는 PCF Dev를 사용하여 맥OS에 PaaS 환경을 구축합니다.
기본적으로 이쪽Tutorial에 따라 집행됩니다.(일부 다름)

필요조건

  • VirtualBox 5.0 이상
  • 컨디션

  • macOS Sierra version 10.12.5
  • pcfdev-v0.26.0+PCF1.10.0
  • cf version 6.29.0+ff886fa93.2017-07-24
  • 설치


    PCF를 실행하는 cli를 설치합니다.
    아래에서 mac용 을 다운로드하고 GUI로 설치하십시오.
    https://cli.run.pivotal.io/stable?release=macosx64&source=github
  • (보충) 아래 설치 프로그램 첨부
  • 다음부터 환경에 설치된 기기
  • https://github.com/cloudfoundry/cli/releases/tag/v6.34.1
  • PCF Dev 설치


    (보충)설치 프로그램으로 설치한 경우 이쪽 절차가 필요 없습니다
    PCF Dev를 다운로드하십시오.
    다운로드 시 무료 회원 로그인이 필요합니다. 메일 주소로 로그인하세요.
    https://network.pivotal.io/products/pcfdev
    osx가 적힌 다운로드를 선택하십시오.

    다운로드 후 동결해제.
    $ unzip pcfdev-v0.26.0+PCF1.10.0-osx.zip
    
    PCF Dev에 plugen을 설치합니다.
    $ ./pcfdev-v0.26.0+PCF1.10.0-osx
    

    부팅


    PCF Dev를 시작합니다.
    Pivocal Network에 등록된 메일 주소와 비밀번호를 묻겠으니 입력하십시오.
    $ cf dev start
    Please sign in with your Pivotal Network account.
    Need an account? Join Pivotal Network: https://network.pivotal.io
    
    Email> [email protected]
    
    Password>
    Downloading VM...
    Progress: |====================>| 100%
    VM downloaded.
    Allocating 4096 MB out of 16384 MB total system memory (6869 MB free).
    Importing VM...
    Starting VM...
    Provisioning VM...
    Waiting for services to start...
    7 out of 56 running
    7 out of 56 running
    7 out of 56 running
    7 out of 56 running
    38 out of 56 running
    56 out of 56 running
     _______  _______  _______    ______   _______  __   __
    |       ||       ||       |  |      | |       ||  | |  |
    |    _  ||       ||    ___|  |  _    ||    ___||  |_|  |
    |   |_| ||       ||   |___   | | |   ||   |___ |       |
    |    ___||      _||    ___|  | |_|   ||    ___||       |
    |   |    |     |_ |   |      |       ||   |___  |     |
    |___|    |_______||___|      |______| |_______|  |___|
    is now running.
    To begin using PCF Dev, please run:
       cf login -a https://api.local.pcfdev.io --skip-ssl-validation
    Apps Manager URL: https://local.pcfdev.io
    Admin user => Email: admin / Password: admin
    Regular user => Email: user / Password: pass
    

    로그인


    PCF Dev에 로그인합니다.
    계정 정보는 실행 cf dev start 시 출력 결과와 같습니다.
    Apps Manager URL: https://local.pcfdev.io
    Admin user => Email: admin / Password: admin
    Regular user => Email: user / Password: pass
    
    로그인
    이번에는 user로 로그인합니다.(admin도 가능)
    $  cf login -a api.local.pcfdev.io --skip-ssl-validation
    API endpoint: api.local.pcfdev.io
    
    Email> user
    
    Password>
    Authenticating...
    OK
    
    Targeted org pcfdev-org
    
    Targeted space pcfdev-space
    
    
    
    API endpoint:   https://api.local.pcfdev.io (API version: 2.75.0)
    User:           user
    Org:            pcfdev-org
    Space:          pcfdev-space
    

    샘플 응용 프로그램 만들기


    디버깅을 위해 PHP의 샘플 프로그램을 제작합니다.
    $ mkdir sample-php
    $ vi index.php
    
    index.php
    <?php
    
    echo 'This is a sample.';
    

    프로그램 설계


    응용 프로그램에 대한 디버깅을 진행하다.
    $ cf push php-sample-app -p sample-php/
    Creating app php-sample-app in org pcfdev-org / space pcfdev-space as user...
    OK
    
    (**snip**)
    
    -------> Buildpack version 4.3.26
    Installing HTTPD
    HTTPD 2.4.25
    Downloaded [file:///tmp/buildpacks/4cc31f829ff946712e63e84276d50969/dependencies/https___buildpacks.cloudfoundry.org_dependencies_httpd_httpd-2.4.25-linux-x64.tgz] to [/tmp]
    Installing PHP
    PHP 5.5.38
    Downloaded [file:///tmp/buildpacks/4cc31f829ff946712e63e84276d50969/dependencies/https___buildpacks.cloudfoundry.org_dependencies_php_php-5.5.38-linux-x64-1485208781.tgz] to [/tmp]
    Finished: [2017-08-01 00:09:04.698339]
    
    (**snip**)
    
    requested state: started
    instances: 1/1
    usage: 256M x 1 instances
    urls: php-sample-app.local.pcfdev.io
    last uploaded: Tue Aug 1 03:15:35 UTC 2017
    stack: cflinuxfs2
    buildpack: php 4.3.26
    
         state     since                    cpu    memory         disk           details
    #0   running   2017-08-01 12:16:07 PM   0.0%   240K of 256M   448K of 512M
    
    도중에 HTTPD와 PHP가 설치되어 있음을 알 수 있습니다.
    브라우저에서 액세스http://php-sample-app.local.pcfdev.ioThis is a sample.가 나타나면 디버깅에 성공합니다.

    응용 프로그램 목록


    생성된 응용 프로그램 목록을 확인할 수 있습니다.
    $ cf apps
    Getting apps in org pcfdev-org / space pcfdev-space as user...
    OK
    
    name             requested state   instances   memory   disk   urls
    php-sample-app   started           1/1         256M     512M   php-sample-app.local.pcfdev.io
    
    $ cf app php-sample-app
    

    로그 출력


    로그를 실시간으로 확인할 때
    $ cf logs php-sample-app
    
    최근 로그를 확인할 때
    $ cf logs php-sample-app --recent
    Retrieving logs for app php-sample-app in org pcfdev-org / space pcfdev-space as user...
    
       2017-08-01T09:08:54.49+0900 [API/0] OUT Created app with guid 998003b3-3ba5-4a85-b36b-70e24fee0317
       2017-08-01T09:08:54.87+0900 [API/0] OUT Updated app with guid 998003b3-3ba5-4a85-b36b-70e24fee0317 ({"route"=>"00483624-4291-42fd-9252-d936b4ed16ca", :verb=>"add", :relation=>"routes", :related_guid=>"00483624-4291-42fd-9252-d936b4ed16ca"})
    

    DB에 연결


    PCF에서는 MySQL, Postgres, Redis, and MongoDB를 사용할 수 있다.
    $ cf marketplace
    Getting services from marketplace in org pcfdev-org / space pcfdev-space as user...
    OK
    
    service        plans             description
    local-volume   free-local-disk   Local service docs: https://github.com/cloudfoundry-incubator/local-volume-release/
    p-mysql        512mb, 1gb        MySQL databases on demand
    p-rabbitmq     standard          RabbitMQ is a robust and scalable high-performance multi-protocol messaging broker.
    p-redis        shared-vm         Redis service to provide a key-value store
    
    TIP:  Use 'cf marketplace -s SERVICE' to view descriptions of individual plans of a given service.
    
    mysql에서 사용할 수 있는plan을 조사합니다.
    $ cf marketplace -s p-mysql
    Getting service plan information for service p-mysql as user...
    OK
    
    service plan   description            free or paid
    512mb          PCF Dev MySQL Server   free
    1gb            PCF Dev MySQL Server   free
    
    512mb와 1gb 두 가지 방안이 있는 것 같습니다.
    이번에는 512mb의 계획을 사용해 Sample-php-db라는 서비스를 제작한다.
    $ cf create-service p-mysql 512mb sample-php-db
    
    제작된 서비스 확인.
    $ cf services
    Getting services in org pcfdev-org / space pcfdev-space as user...
    OK
    
    name            service   plan    bound apps   last operation
    sample-php-db   p-mysql   512mb                create succeeded
    
    이때 바운드 앱스는 공백으로 바뀌었다.
    sample-php-db를 php-sample-app에서 사용하기 위해bind를 진행합니다.
    $ cf bind-service php-sample-app sample-php-db
    Binding service sample-php-db to app php-sample-app in org pcfdev-org / space pcfdev-space as user...
    OK
    TIP: Use 'cf restage php-sample-app' to ensure your env variable changes take effect
    
    restart php-sample-app를 요청한다고 해서 프로그램을 다시 시작합니다.
    $ cf restart php-sample-app
    
    바운드 앱에 php-sample-app가 있는지 확인하세요.
    $ cf services
    Getting services in org pcfdev-org / space pcfdev-space as user...
    OK
    
    name            service   plan    bound apps   last operation
    sample-php-db   p-mysql   512mb   php-sample-app      create succeeded
    

    확대/축소


    실례를 하나에서 두 개로 늘리다.
    $ cf scale php-sample-app -i 2
    
    확인 증가
    $ cf app php-sample-app
    Showing health and status for app php-sample-app in org pcfdev-org / space pcfdev-space as user...
    
    name:              php-sample-app
    requested state:   started
    instances:         2/2
    usage:             256M x 2 instances
    routes:            php-sample-app.local.pcfdev.io
    last uploaded:     Tue 01 Aug 09:08:54 JST 2017
    stack:             cflinuxfs2
    buildpack:         php 4.3.26
    
         state     since                  cpu    memory          disk             details
    #0   running   2017-08-01T00:37:39Z   1.5%   25.3M of 256M   155.9M of 512M
    #1   running   2017-08-01T00:45:28Z   0.0%   25.7M of 256M   155.9M of 512M
    
    memorylimit을 각각 1G로 늘립니다.
    $ cf scale php-sample-app -i 2
    
    디스크 용량을 개별적으로 늘립니다.
    $ cf scale php-sample-app -i 2
    
    manifest.yml 방법을 사용하는 등, 나는 나중에 다시 보충하고 싶다.
    이상

    참고 자료

  • Tutorial
  • pcf 환경 구축
  • OSX에서 PaaS용 Cloud Fundry(PCF-DEV) 구축
  • Yahoo! JAPAN 서비스 개발을 10배 앞당기는 사내 PaaS 구축의 현재와 향후
  • 좋은 웹페이지 즐겨찾기