google+ Restful 사용자 인증 Guideline

  • 작업 조건
    • Google Develoment Console
    • Javascript
    • Test Code를 실행 가능한 Server
    • google Account
  • 작업 내용
    • Javascript로 google+ 인증 Test
  • 작업 과정
    •  1. google cloud console에 로그인한 후 니다.(https://cloud.google.com/cloud-console/) 내 콘솔 보기를 실행합니다.

      2. 프로젝트 선택 창을 콘솔에서 선택한 후 +버튼을 눌려 새 프로젝트를 생성합니다.

      google_cloud_console_05.png3. 대시보드의 검색창에서 google+ API를 검색합니다google_cloud_console_06
      4. API 사용 설정을 합니다.google_cloud_console_07
      5.사용자 인증 정보 탭을 클릭합니다.(Google에 사용되는 api를 사용하기 위해서는 OAUTH 2.0 인증이 필요합니다.)google_cloud_console_08
      6. 사용자 인증 정보를 OAUTH 클라이언트 ID로 만듭니다.

      7. 웹 어플리케이션, 승인된 자바스크립트 원본에는 Server의 최상위 도메인을 입력합니다. ex) http://localhostgoogle_cloud_console_11
      8. 생성하게 되면 아래와 같은 CLIENT_ID 값과 CLIENT_SECRET의 값이 나옵니다.google_cloud_console_139. git 명령어를 통해서 혹은 github 저장소를 통해서 gplus quick start를 다운로드 합니다.

      10. server에 file을 이동시킵니다.google_cloud_console_14

      11.  index.html 에 있는 YOUR_Client ID에 OAUTH 클라이언트의 ID 값을 대치시킵니다.

      • $(document).ready(function() { $(‘#disconnect’).click(helper.disconnect); $(‘#loaderror’).hide(); if ($(‘meta’)[0].content == ‘205652212320-u3ob8n62fci4qeu14jgutmugi5okdad5.apps.googleusercontent.com’) { alert(‘This sample requires your OAuth credentials (client ID) ‘ + ‘from the Google APIs console:\n’ + ‘ https://code.google.com/apis/console/#:access\n\n’ + ‘Find and replace YOUR_CLIENT_ID with your client ID.’ ); } });

      12. 작동 확인
      google_cloud_console_15

    • 선택 사항
    • 작업 과정 중 참고사항
    • 작업 중 발생한 문제 해결
  • 작업과 관련된 주제
  • 참고 문헌
Advertisements

AWS CommandLine Interface 설치

Microsoft Windows에 AWS Command Line Interface 설치

독립 실행형 설치 관리자 또는 Python용 패키지 관리자인 pip를 사용하여 Windows에 AWS CLI를 설치할 수 있습니다. pip가 이미 있는 경우 기본 설치 주제의 지침을 따릅니다.

MSI 설치 관리자

AWS CLI는 Microsoft Windows XP 이상에서 지원됩니다. Windows 사용자의 경우 MSI 설치 패키지는 다른 사전 요구 사항을 설치하지 않고 AWS CLI를 설치할 수 있는 친숙하고 편리한 방법을 제공합니다.

업데이트가 릴리스되면 설치 프로세스를 반복하여 최신 버전의 AWS CLI를 가져와야 합니다. 자주 업데이트하려는 경우 간편한 업데이트를 위해 pip 사용을 고려해 보십시오.

MSI 설치 관리자를 사용하여 AWS CLI를 설치하려면

  1. 적절한 MSI 설치 관리자를 다운로드합니다.

    참고

    AWS CLI용 MSI 설치 관리자는 Windows Server 2008(버전 6.0.6002)에서 작동하지 않습니다. 이 버전의 Windows에는 pip를 사용하여 설치하십시오.

  2. 다운로드한 MSI 설치 관리자를 실행합니다.
  3. 다음에 나타나는 지침을 따릅니다.

CLI는 기본적으로 C:\Program Files\Amazon\AWSCLI(64비트) 또는 C:\Program Files (x86)\Amazon\AWSCLI(32비트)에 설치됩니다. 설치를 확인하려면 명령 프롬프트에서 aws --version 명령을 사용합니다. 명령 프롬프트가 설치된 위치를 잘 모르는 경우 [시작] 메뉴를 열고 “cmd”를 검색합니다.

> aws --version aws-cli/1.11.84 Python/3.6.2 Windows/7 botocore/1.5.47

명령을 입력할 때 프롬프트 기호(위의 ‘>’)를 포함시키지 마십시오. 이 기호는 입력하는 명령을 CLI에서 반환되는 출력과 구별하기 위해 프로그램 목록에 포함되어 있습니다. 이 설명서의 나머지 부분에서는 명령이 Windows에 특정한 경우를 제외하고 일반 프롬프트 기호인 ‘$’를 사용합니다.

Windows에서 실행 파일을 찾을 수 없는 경우 명령 프롬프트를 다시 열거나 설치 디렉터리를 PATH 환경 변수에 수동으로 추가해야 할 수 있습니다.

MSI 설치 업데이트

AWS CLI는 정기적으로 업데이트됩니다. 최신 버전이 언제 릴리스되었는지를 알아보려면 GitHub의 릴리스 페이지를 확인하십시오. 최신 버전으로 업데이트하려면 위의 설명에 따라 MSI 설치 관리자를 다시 다운로드하여 실행합니다.

제거

AWS CLI를 제거하려면 제어판을 열고 [Programs and Features]를 선택합니다. [AWS Command Line Interface]라는 항목을 선택하고 [Uninstall]을 클릭하여 제거 프로그램을 실행합니다. 메시지가 나타나면 AWS CLI를 제거할지 확인합니다.

명령줄에서 다음 명령을 사용하여 [Programs and Features] 메뉴를 시작할 수도 있습니다.

> appwiz.cpl

Windows에서 Python, pip 및 AWS CLI 설치

Python Software Foundation은 pip가 포함된 Windows용 설치 관리자를 제공합니다.

Python 3.6 및 pip를 설치하려면(Windows)

  1. Python.org의 다운로드 페이지에서 Python 3.6 Windows x86-64 실행 파일 설치 관리자를 다운로드합니다.
  2. 설치 관리자를 실행합니다.
  3. [Add Python 3.6 to PATH]를 선택합니다.
  4. Install Now를 선택합니다.

설치 관리자가 사용자 폴더에 Python을 설치하고, 사용자 경로에 Python 실행 파일 디렉토리를 추가합니다.

pip를 사용하여 AWS CLI를 설치하려면(Windows)

  1. [시작] 메뉴에서 Windows 명령 처리기를 엽니다.
  2. 다음 명령을 사용하여 Python과 pip가 모두 올바르게 설치되었는지 확인합니다.
    C:\Windows\System32> python --version Python 3.6.2 C:\Windows\System32> pip --version pip 9.0.1 from c:\users\myname\appdata\local\programs\python\python36\lib\site-packages (python 3.6)
  3. pip를 사용하여 AWS CLI를 설치합니다.
    C:\Windows\System32> pip install awscli
  4. AWS CLI가 올바르게 설치되었는지 확인합니다.
    C:\Windows\System32> aws --version aws-cli/1.11.84 Python/3.6.2 Windows/7 botocore/1.5.47

최신 버전으로 업그레이드하려면 설치 명령을 다시 실행합니다.

C:\Windows\System32> pip install --user --upgrade awscli

명령줄 경로에 AWS CLI 실행 파일 추가

pip를 사용하여 설치한 후 aws 실행 파일을 OS의 PATH 환경 변수에 추가합니다. MSI 설치에서는 이 작업이 자동으로 수행되지만, aws 명령이 작동하지 않는 경우 이 항목을 수동으로 설정해야 할 수 있습니다.

  • Python 3.6 및 pip – %USERPROFILE%\AppData\Local\Programs\Python\Python36\Scripts
  • MSI 설치 관리자(64비트) – C:\Program Files\Amazon\AWSCLI
  • MSI 설치 관리자(32비트) – C:\Program Files (x86)\Amazon\AWSCLI

PATH 변수를 수정하려면(Windows)

  1. Windows 키를 누르고 environment variables를 입력합니다.
  2. [Edit environment variables for your account]를 선택합니다.
  3. [PATH]를 선택한 후 [Edit]를 선택합니다.
  4. 세미콜론으로 구분하여 경로를 [Variable value] 필드에 추가합니다. 예: C:\existing\path;C:\new\path
  5. [OK]를 두 번 선택하여 새로운 설정을 적용합니다.
  6. 실행 중인 명령 프롬프트를 모두 닫았다가 다시 엽니다.

Amazone EC2 Software update

인스턴스 소프트웨어 업데이트

소프트웨어를 최신 상태로 유지하는 것이 중요합니다. Linux 배포의 다양한 패키지가 버그 수정, 기능 추가 및 보안 취약점 해결을 위해 자주 업데이트됩니다. 처음으로 Amazon Linux 인스턴스를 시작하여 연결하면 보안을 위해 소프트웨어 패키지를 업데이트하라는 메시지가 표시될 수 있습니다. 이 섹션에서는 전체 시스템 또는 단일 패키지를 업데이트하는 방법을 보여 줍니다.

중요

이 절차는 Amazon Linux에서 사용하기 위한 것입니다. 기타 배포에 대한 자세한 내용은 해당 설명서를 참조하십시오.

       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-ami/2013.03-release-notes/
There are 12 security update(s) out of 25 total update(s) available
Run "sudo yum update" to apply all updates.
[ec2-user ~]$

Amazon Linux 인스턴스의 모든 패키지를 업데이트하려면 다음을 수행합니다.

  1. (선택 사항) shell 창에서 screen 세션을 시작합니다. 경우에 따라 네트워크 장애로 인해 인스턴스에 대한 SSH 연결이 끊어질 수 있습니다. 오래 걸리는 소프트웨어 업데이트 중에 연결이 끊어진 경우 인스턴스가 복구 가능한 혼동 상태로 유지될 수 있습니다. 연결이 끊어진 경우에도 screen 세션을 통해 업데이트가 계속 실행되며, 이후에 아무런 문제 없이 세션에 다시 연결할 수 있습니다.
    1. screen 명령을 실행하여 세션을 시작합니다.
      [ec2-user ~]$ screen
    2. 세션의 연결이 끊어진 경우 인스턴스에 다시 로그인하고 사용 가능한 화면을 나열합니다.
      [ec2-user ~]$ screen -ls
      There is a screen on:
      	17793.pts-0.ip-12-34-56-78 (Detached) 1 Socket in /var/run/screen/S-ec2-user.
    3. 이전 명령에서 확인한 프로세스 ID와 screen -r 명령을 사용하여 화면에 다시 연결합니다.
      [ec2-user ~]$ screen -r 17793
    4. screen 사용을 마쳤으면 exit 명령을 사용하여 세션을 닫습니다.
      [ec2-user ~]$ exit
      [screen is terminating]
  2. yum update 명령을 실행합니다. --security 플래그를 추가하여 보안 업데이트만 적용할 수도 있습니다.
    [ec2-user ~]$ sudo yum update
    Loaded plugins: priorities, security, update-motd, upgrade-helper
    amzn-main                                                | 2.1 kB     00:00
    amzn-updates                                             | 2.3 kB     00:00
    Setting up Update Process
    Resolving Dependencies
    --> Running transaction check
    ---> Package aws-apitools-ec2.noarch 0:1.6.8.1-1.0.amzn1 will be updated
    ---> Package aws-apitools-ec2.noarch 0:1.6.10.0-1.0.amzn1 will be an update
    ---> Package gnupg2.x86_64 0:2.0.18-1.16.amzn1 will be updated
    ---> Package gnupg2.x86_64 0:2.0.19-8.21.amzn1 will be an update
    ---> Package libgcrypt.i686 0:1.4.5-9.10.amzn1 will be updated
    ---> Package libgcrypt.x86_64 0:1.4.5-9.10.amzn1 will be updated
    ---> Package libgcrypt.i686 0:1.4.5-9.12.amzn1 will be an update
    ---> Package libgcrypt.x86_64 0:1.4.5-9.12.amzn1 will be an update
    ---> Package openssl.x86_64 1:1.0.1e-4.53.amzn1 will be updated
    ---> Package openssl.x86_64 1:1.0.1e-4.54.amzn1 will be an update
    ---> Package python-boto.noarch 0:2.9.9-1.0.amzn1 will be updated
    ---> Package python-boto.noarch 0:2.13.3-1.0.amzn1 will be an update
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    ================================================================================
     Package              Arch       Version                 Repository        Size
    ================================================================================
    Updating:
     aws-apitools-ec2     noarch     1.6.10.0-1.0.amzn1      amzn-updates      14 M
     gnupg2               x86_64     2.0.19-8.21.amzn1       amzn-updates     2.4 M
     libgcrypt            i686       1.4.5-9.12.amzn1        amzn-updates     248 k
     libgcrypt            x86_64     1.4.5-9.12.amzn1        amzn-updates     262 k
     openssl              x86_64     1:1.0.1e-4.54.amzn1     amzn-updates     1.7 M
     python-boto          noarch     2.13.3-1.0.amzn1        amzn-updates     1.6 M
    
    Transaction Summary
    ================================================================================
    Upgrade       6 Package(s)
    
    Total download size: 20 M
    Is this ok [y/N]:
  3. 나열된 패키지를 검토하고 y를 입력한 후 Enter 키를 눌러 업데이트를 수락합니다. 시스템의 모든 패키지를 업데이트하는 데 몇 분이 걸릴 수 있습니다. yum 출력은 실행 중인 업데이트의 상태를 보여 줍니다.
    Downloading Packages:
    (1/6): aws-apitools-ec2-1.6.10.0-1.0.amzn1.noarch.rpm    |  14 MB     00:00
    (2/6): gnupg2-2.0.19-8.21.amzn1.x86_64.rpm               | 2.4 MB     00:00
    (3/6): libgcrypt-1.4.5-9.12.amzn1.i686.rpm               | 248 kB     00:00
    (4/6): libgcrypt-1.4.5-9.12.amzn1.x86_64.rpm             | 262 kB     00:00
    (5/6): openssl-1.0.1e-4.54.amzn1.x86_64.rpm              | 1.7 MB     00:00
    (6/6): python-boto-2.13.3-1.0.amzn1.noarch.rpm           | 1.6 MB     00:00
    --------------------------------------------------------------------------------
    Total                                            28 MB/s |  20 MB     00:00
    Running rpm_check_debug
    Running Transaction Test
    Transaction Test Succeeded
    Running Transaction
      Updating   : libgcrypt-1.4.5-9.12.amzn1.x86_64                           1/12
      Updating   : gnupg2-2.0.19-8.21.amzn1.x86_64                             2/12
      Updating   : aws-apitools-ec2-1.6.10.0-1.0.amzn1.noarch                  3/12
      Updating   : 1:openssl-1.0.1e-4.54.amzn1.x86_64                          4/12
      ...
    
    Complete!
  4. (선택 사항) 인스턴스를 재부팅하여 업데이트에서 최신 패키지 및 라이브러리를 사용 중인지를 확인합니다. 커널 업데이트를 로드하려면 재부팅해야 합니다. glibc 라이브러리를 업데이트한 이후에도 항상 재부팅해야 합니다. 서비스를 제어하는 패키지를 업데이트할 경우 서비스를 다시 시작하여 업데이트를 선택하면 되지만, 시스템을 재부팅하면 이전의 모든 패키지 및 라이브러리 업데이트가 완료됩니다.

Amazon Linux 인스턴스의 단일 패키지를 업데이트하려면 다음을 수행합니다.

이 절차를 사용하여 전체 시스템이 아닌 단일 패키지와 해당 종속 패키지를 업데이트할 수 있습니다.

  1. 업데이트할 패키지의 이름과 함께 yum update 명령을 실행합니다.
    [ec2-user ~]$ sudo yum update openssl
    Loaded plugins: priorities, security, update-motd, upgrade-helper
    amzn-main                                                | 2.1 kB     00:00
    amzn-updates                                             | 2.3 kB     00:00
    Setting up Update Process
    Resolving Dependencies
    --> Running transaction check
    ---> Package openssl.x86_64 1:1.0.1e-4.53.amzn1 will be updated
    ---> Package openssl.x86_64 1:1.0.1e-4.54.amzn1 will be an update
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    ================================================================================
     Package       Arch         Version                    Repository          Size
    ================================================================================
    Updating:
     openssl       x86_64       1:1.0.1e-4.54.amzn1        amzn-updates       1.7 M
    
    Transaction Summary
    ================================================================================
    Upgrade       1 Package(s)
    
    Total download size: 1.7 M
    Is this ok [y/N]:
  2. 나열된 패키지 정보를 검토하고 y를 입력한 후 Enter 키를 눌러 업데이트를 수락합니다. 해결되어야 하는 패키지 종속성이 있는 경우 둘 이상의 패키지가 나열될 수 있습니다. yum 출력은 실행 중인 업데이트의 상태를 보여 줍니다.
    Downloading Packages:
    openssl-1.0.1e-4.54.amzn1.x86_64.rpm                     | 1.7 MB     00:00
    Running rpm_check_debug
    Running Transaction Test
    Transaction Test Succeeded
    Running Transaction
      Updating   : 1:openssl-1.0.1e-4.54.amzn1.x86_64                           1/2
      Cleanup    : 1:openssl-1.0.1e-4.53.amzn1.x86_64                           2/2
      Verifying  : 1:openssl-1.0.1e-4.54.amzn1.x86_64                           1/2
      Verifying  : 1:openssl-1.0.1e-4.53.amzn1.x86_64                           2/2
    
    Updated:
      openssl.x86_64 1:1.0.1e-4.54.amzn1
    
    Complete!
  3. (선택 사항) 인스턴스를 재부팅하여 업데이트에서 최신 패키지 및 라이브러리를 사용 중인지를 확인합니다. 커널 업데이트를 로드하려면 재부팅해야 합니다. glibc 라이브러리를 업데이트한 이후에도 항상 재부팅해야 합니다. 서비스를 제어하는 패키지를 업데이트할 경우 서비스를 다시 시작하여 업데이트를 선택하면 되지만, 시스템을 재부팅하면 이전의 모든 패키지 및 라이브러리 업데이트가 완료됩니다.

Amazon EC2 Linux LAMP 웹 서버 설치

자습서: Amazon LinuxLAMP 웹 서버 설치

다음 절차를 통해 Amazon Linux 인스턴스에 PHP 및 MySQL을 지원하는 Apache 웹 서버를 설치할 수 있습니다. 이 웹 서버를 LAMP 웹 서버 또는 LAMP 스택이라고도 합니다. 이 서버를 사용해서 고정 웹사이트를 호스팅하거나 데이터베이스에서 정보를 읽고 쓰는 동적 PHP 애플리케이션을 배포할 수 있습니다.

중요

LAMP 웹 서버를 Ubuntu 또는 Red Hat Enterprise Linux 인스턴스에서 설치하려는 경우는 본 자습서를 이용할 수 없습니다. 이 절차는 Amazon Linux에서 사용하기 위한 것입니다. 기타 배포에 대한 자세한 내용은 해당 배포의 특정 문서를 참조하십시오. Ubuntu의 LAMP 웹 서버에 대한 자세한 내용은 Ubuntu 커뮤니티 문서 ApacheMySQLPHP 항목을 참조하십시오.

사전 조건

본 자습서는 사용자가 인터넷에서 접근할 수 있는 퍼블릭 DNS 이름을 가진 새 인스턴스를 이미 실행한 것으로 가정하고 있습니다. 자세한 내용은 1단계: 인스턴스 시작 단원을 참조하십시오. SSH(포트 22), HTTP(포트 80), HTTPS(포트 443) 연결을 허용할 수 있도록 보안 그룹을 구성해야 합니다. 이 사전 요구 사항에 대한 자세한 내용은 Amazon EC2로 설정 단원을 참조하십시오.

Amazon Linux에서 LAMP 웹 서버 설치 및 시작

  1. 인스턴스에 연결합니다.
  2. 모든 소프트웨어 패키지가 최신 상태로 업데이트되어 있는지 확인하기 위해, 인스턴스에서 퀵 소프트웨어 업데이트를 실행합니다. 이 업데이트 과정은 몇 분 정도 시간이 소요될 수 있지만, 최신 보안 업데이트와 버그 수정을 위해 수행할 필요가 있습니다.-y 옵션을 사용하면 확인 여부를 묻지 않고 업데이트를 설치합니다. 설치 전에 업데이트 정보를 확인하려면 이 옵션을 생략합니다.
    Copy
    [ec2-user ~]$ sudo yum update -y
  3. 이제 인스턴스가 최신 상태이므로 Apache 웹 서버, MySQL, PHP 소프트웨어 패키지를 설치할 수 있습니다.

    참고

    일부 애플리케이션은 다음 권장 소프트웨어 환경과 호환되지 않을 수 있습니다. 이러한 패키지를 설치하기 전에 LAMP 애플리케이션이 패키지와 호환되는지 확인하십시오. 문제가 있는 경우, 다른 환경을 설치해야 할 수 있습니다. 자세한 내용은 서버에서 실행할 애플리케이션 소프트웨어가 설치된 PHP 버전 또는 다른 소프트웨어와 호환되지 않습니다 단원을 참조하십시오.

    yum install 명령을 사용하여 여러 소프트웨어 패키지와 모든 관련 종속 프로그램을 동시에 설치합니다.

    Copy
    [ec2-user ~]$ sudo yum install -y httpd24 php70 mysql56-server php70-mysqlnd
  4. Apache 웹 서버를 시작합니다.
    Copy
    [ec2-user ~]$ sudo service httpd start
    Starting httpd:                                            [  OK  ]
  5. [chkconfig] 명령을 사용해서 Apache 웹 서버가 매번 시스템이 부팅할 때마다 시작되도록 합니다.
    Copy
    [ec2-user ~]$ sudo chkconfig httpd on

    [chkconfig] 명령을 성공적으로 사용해 서비스를 활성화했을 경우에는 아무런 확인 메시지를 표시하지 않습니다.

    다음 명령을 실행해서 [httpd]가 실행되고 있는지 확인할 수 있습니다:

    Copy
    [ec2-user ~]$ chkconfig --list httpd
    httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

    여기서 [httpd]는 2, 3, 4, 5의 실행 레벨(사용자가 보기 원하는 부분)에서 on 상태입니다.

  6. 인스턴스에 대해 인바운드 HTTP(포트 80) 연결을 허용하는 보안 규칙이 없는 경우 추가합니다. 기본적으로 초기화 중에 인스턴스에 대해 launch-wizard-N 보안 그룹이 설정됩니다. 이 그룹에는 SSH 연결을 허용하는 규칙이 한 개 들어 있습니다.
    1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.
    2. [Instance]를 선택하고 해당 인스턴스를 선택합니다.
    3. [Security groups]에서 [view inbound rules]를 선택합니다.
    4. 기본 보안 그룹에는 다음과 같은 규칙 목록이 있습니다.
      Copy
      Security Groups associated with i-1234567890abcdef0
      Ports     Protocol     Source     launch-wizard-N 22 tcp 0.0.0.0/0 ✔

      보안 그룹에 규칙 추가의 절차를 사용하여 다음 값으로 새로운 인바운드 보안 규칙을 추가합니다.

      • Type: HTTP
      • Protocol: TCP
      • [Port Range]: 80
      • Source: 사용자 지정
  7. 웹 서버를 테스트합니다. 웹 브라우저에서 인스턴스의 퍼블릭 DNS 주소 또는 퍼블릭 IP 주소를 입력합니다. 그러면 Apache 테스트 페이지가 표시됩니다. Amazon EC2 콘솔을 사용하여 인스턴스의 퍼블릭 DNS를 가져올 수 있습니다([Public DNS] 열 확인. 이 열이 숨겨진 경우 [Show/Hide] 아이콘(기어 모양 아이콘)을 선택하고 [Public DNS]를 선택).Apache 테스트 페이지를 볼 수 없는 경우, 사용 중인 보안 그룹에 HTTP(포트 80) 트래픽을 허용하는 규칙이 있는지 확인하십시오. HTTP 규칙을 보안 그룹에 추가하는 것에 대한 자세한 내용은 다음(보안 그룹에 규칙 추가)을 참조하십시오.

    중요

    Amazon Linux을 사용하지 않는 경우, 이러한 연결을 허용하도록 인스턴스의 방화벽을 구성할 필요가 있습니다. 방화벽 구성 방법에 대한 자세한 내용은 사용자의 특정 배포에 대한 문서를 참조하십시오.

    LAMP1.png

    참고

    테스트 페이지는 /var/www/html에 아무 콘텐츠가 없는 경우에만 표시됩니다. 문서 루트에 콘텐츠를 추가하면 이 콘텐츠는 테스트 페이지 대신 인스턴스의 퍼블릭 DNS 주소에 나타납니다.

Apache httpd는 ‘Acache document root’라는 디렉터리에 보관된 파일을 처리합니다. Amazon Linux Apache 문서 루트는 /var/www/html이며, 기본적으로 루트에서 소유합니다.

Copy
[ec2-user ~]$ ls -l /var/www
total 16
drwxr-xr-x 2 root root 4096 Jul 12 01:00 cgi-bin
drwxr-xr-x 3 root root 4096 Aug  7 00:02 error
drwxr-xr-x 2 root root 4096 Jan  6  2012 html
drwxr-xr-x 3 root root 4096 Aug  7 00:02 icons
drwxr-xr-x 2 root root 4096 Aug  7 21:17 noindex

ec2-user 계정이 이 디렉터리의 파일을 다룰 수 있도록 하려면, 디렉터리의 소유권과 권한을 변경해야 합니다. 이 작업을 수행하는 방법에는 여러 가지가 있습니다. 본 자습서에서는 ec2-user 사용자를 apache 그룹에 추가하여 apache 그룹에 /var/www 디렉터리의 소유권을 부여하고 쓰기 권한을 할당합니다.

파일 권한 설정

  1. 사용자(이 경우는 ec2-user)를 apache 그룹에 추가합니다.
    Copy
    [ec2-user ~]$ sudo usermod -a -G apache ec2-user

    중요

    로그아웃한 후 다시 로그인하여 새 그룹을 선택해야 합니다. [exit] 명령을 사용하거나 터미널 창을 닫을 수 있습니다.

  2. 로그아웃을 하고 다시 로그인한 다음, apache 그룹에 대한 멤버십을 확인하십시오.
    1. 로그아웃을 합니다.
      Copy
      [ec2-user ~]$ exit
    2. apache 그룹의 멤버십을 확인하려면 인스턴스에 다시 연결한 후 다음 명령을 실행합니다.
      Copy
      [ec2-user ~]$ groups
      ec2-user wheel apache
  3. /var/www 및 그 콘텐츠의 그룹 소유권을 apache 그룹으로 변경합니다.
    Copy
    [ec2-user ~]$ sudo chown -R ec2-user:apache /var/www
  4. 그룹 쓰기 권한을 추가하여 나중에 하위 디렉터리에 대한 그룹 ID를 설정하려면 /var/www와 그 하위 디렉터리의 디렉터리 권한을 변경합니다.
    Copy
    [ec2-user ~]$ sudo chmod 2775 /var/www [ec2-user ~]$ find /var/www -type d -exec sudo chmod 2775 {} \;
  5. 그룹 쓰기 권한을 추가하려면 /var/www 및 그 하위 디렉터리의 파일 권한을 반복하여 변경합니다.
    Copy
    [ec2-user ~]$ find /var/www -type f -exec sudo chmod 0664 {} \;

이제 ec2-user 사용자 및 apache 그룹의 이후 멤버는 Apache 문서 루트에서 파일을 추가, 삭제, 수정할 수 있습니다. 이제, 정적 웹사이트 또는 PHP 애플리케이션 등 콘텐츠를 추가할 수 있습니다.

(선택 사항) 웹 서버 보안

HTTP 프로토콜을 실행하는 웹 서버는 송신하거나 수신하는 데이터에 대해 아무런 전송 보안 기능도 제공하지 않습니다. 웹 브라우저를 사용하여 HTTP 서버에 연결할 때 방문하는 URL, 수신하는 웹 페이지의 내용, 제출하는 HTML 양식의 내용(암호 포함)이 모두 네트워크 경로를 따라 어디서든 엿보려는 사람들에게 보입니다. 웹 서버를 안전하게 보호하기 위한 최선의 방법은 SSL/TLS 암호화로 데이터를 보호하는 HTTPS(HTTP Secure) 지원 기능을 설치하는 것입니다.

서버에서 HTTPS를 사용하는 자세한 방법은 자습서: SSL/TLS를 사용하여 Amazon Linux에서 Apache 웹 서버 구성을 참조하십시오.

LAMP 웹 서버 테스트

서버가 설치되고 실행되고 있으며 파일 권한이 올바르게 설정된 경우라면, 사용자의 ec2-user 계정을 통해 인터넷에서 사용 가능한 /var/www/html 디렉터리에서 PHP 파일을 생성할 수 있어야 합니다.

  1. Apache 문서 루트에서 PHP 파일을 생성합니다.
    Copy
    [ec2-user ~]$ echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php

    이 명령을 실행하는 동안 “Permission denied” 오류가 발생하면, 로그아웃하고 다시 로그인한 다음, 파일 권한 설정에서 구성한 적절한 그룹 권한을 선택합니다.

  2. 웹 브라우저에서는 방금 생성한 파일의 URL을 입력합니다. 이 URL은 인스턴스의 퍼블릭 DNS 주소에 슬래시(/)와 파일 이름이 추가된 형태입니다. 예:
    http://my.public.dns.amazonaws.com/phpinfo.php

    PHP 정보 페이지가 표시되어야 합니다:

    LAMP2.png

    참고

    이 페이지가 보이지 않을 경우 이전 단계에서 /var/www/html/phpinfo.php 파일이 제대로 생성되었는지 확인하십시오. 또한 다음 명령을 사용하여 필요한 패키지가 모두 설치되었는지 확인할 수 있습니다. 두 번째 열의 패키지 버전은 이 예제 출력과 일치하지 않아도 됩니다.

    Copy
    [ec2-user ~]$ sudo yum list installed httpd24 php70 mysql56-server php70-mysqlnd
    Loaded plugins: priorities, update-motd, upgrade-helper
    Installed Packages
    httpd24.x86_64                          2.4.25-1.68.amzn1                    @amzn-updates
    mysql56-server.x86_64                   5.6.35-1.23.amzn1                    @amzn-updates
    php70.x86_64                            7.0.14-1.20.amzn1                    @amzn-updates
    php70-mysqlnd.x86_64                    7.0.14-1.20.amzn1                    @amzn-updates

    출력에서 필요한 패키지가 하나라도 나열되지 않으면, sudo yum install package 명령을 사용해서 패키지를 설치합니다.

  3. phpinfo.php 파일을 삭제합니다. 이 파일은 유용한 정보를 포함하고 있지만 보안상 이유로 인터넷에 공개되어서는 안 됩니다.
    Copy
    [ec2-user ~]$ rm /var/www/html/phpinfo.php

MySQL 서버 보안 유지

MySQL 서버의 기본 설치는 테스트 및 개발 기능에 유용한 여러 기능을 포함하고 있지만, 이 기능들은 프로덕션 서버에서는 비활성화되거나 제거되어야 합니다. [mysql_secure_installation] 명령을 통해 루트 암호를 설정하고 설치 패키지에서 보안성이 낮은 기능을 제거하는 과정을 수행할 수 있습니다. MySQL 서버를 사용할 계획이 없더라도 이 절차를 수행하는 것이 좋습니다.

  1. MySQL 서버를 시작합니다.
    Copy
    [ec2-user ~]$ sudo service mysqld start
    Initializing MySQL database:  
    ...
    
    PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
    ...
    
    Starting mysqld:                                           [  OK  ]
  2. mysql_secure_installation을 실행합니다.
    Copy
    [ec2-user ~]$ sudo mysql_secure_installation
    1. 암호를 입력하라는 메시지가 표시되면 루트 계정의 암호를 입력합니다.
      1. 현재 루트 암호를 입력합니다. 기본적으로 root 계정에는 암호가 없습니다. Enter를 누릅니다.
      2. 암호를 설정하려면 Y를 누른 후 안전한 암호를 두 번 입력합니다. 안전한 암호 생성에 대한 자세한 내용은 http://www.pctools.com/guides/password/ 단원을 참조하십시오. 이 암호를 안전한 장소에 보관하시기 바랍니다.

        참고

        MySQL에 대한 루트 암호를 설정하는 것은 데이터베이스를 보호하는 가장 기초적인 방법일 뿐입니다. 데이터베이스 기반 애플리케이션을 빌드하거나 설치할 때, 일반적으로 그 애플리케이션의 데이터베이스 서비스 사용자를 만들고 데이터베이스 관리 이외의 어떤 목적으로도 루트 계정을 사용하지 못하게 합니다.

    2. Y를 입력하여 익명 사용자 계정을 제거합니다.
    3. Y를 입력하여 원격 루트 로그인을 비활성화합니다.
    4. Y를 입력하여 테스트 데이터베이스를 제거합니다.
    5. Y를 입력하여 권한 테이블을 다시 로드하고 변경 내용을 저장합니다.
  3. (선택 사항) 지금 바로 사용할 계획이 아니라면 MySQL 서버를 중지합니다. 필요할 때 다시 시작할 수 있습니다.
    Copy
    [ec2-user ~]$ sudo service mysqld stop
    Stopping mysqld:                                           [  OK  ]
  4. (선택 사항) 부팅 시 MySQL 서버가 시작되도록 하려면 다음 명령을 입력합니다.
    Copy
    [ec2-user ~]$ sudo chkconfig mysqld on

이제 LAMP 웹 서버가 완전히 동작하는 상태가 됩니다. /var/www/html의 Apache document root에 콘텐츠를 추가하면 인스턴스에 대한 퍼블릭 DNS 주소에서 그 콘텐츠를 볼 수 있습니다.

(선택 사항) phpMyAdmin 설치

phpMyAdmin은 EC2 인스턴스의 MySQL 데이터베이스를 보고 편집하는 데 사용할 수 있는 웹 기반 데이터베이스 관리 도구입니다. Amazon Linux 인스턴스에서 phpMyAdmin을 설치 및 구성하려면 다음 단계를 따르십시오.

중요

Apache에서 SSL/TLS를 활성화하지 않은 경우 phpMyAdmin을 사용하여 LAMP 서버에 액세스하지 않는 것이 좋습니다. 이 상태에서 액세스하면 데이터베이스 관리자 암호와 기타 데이터가 인터넷을 통해 안전하지 못한 상태로 전송됩니다. 개발자의 보안 권장 사항을 보려면 phpMyAdmin 설치 보안을 참조하십시오. EC2 인스턴스에 안전한 웹 서버를 구성하는 방법은 자습서: SSL/TLS를 사용하도록 Amazon Linux에서 Apache 웹 서버 구성을 참조하십시오.

참고

Amazon Linux 패키지 관리 시스템은 현재 PHP 7 환경에서 phpMyAdmin의 자동 설치를 지원하지 않습니다. 이 자습서에서는 phpMyAdmin을 직접 설치하는 방법을 설명합니다.

  1. SSH를 사용하여 EC2 인스턴스에 로그인합니다.
  2. 필요한 종속 항목을 설치합니다.
    Copy
    [ec2-user ~]$ sudo yum install php70-mbstring.x86_64 php70-zip.x86_64 -y
  3. Apache를 다시 시작합니다.
    Copy
    [ec2-user ~]$ sudo service httpd restart
    Stopping httpd:                                            [  OK  ]
    Starting httpd:                                            [  OK  ]
  4. Apache 문서 루트(/var/www/html)로 이동합니다.
    Copy
    [ec2-user ~]$ cd /var/www/html [ec2-user html]$ 
  5. https://www.phpmyadmin.net/downloads에서 phpMyAdmin 최신 릴리스의 소스 패키지를 선택합니다. 인스턴스로 파일을 직접 다운로드하려면 다음 예제와 같이 링크를 복사한 후 wget 명령에 붙여 넣습니다.
    Copy
    [ec2-user html]$ wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz
  6. 패키지를 확장하고 결과 디렉터리의 이름을 관리하기 쉬운 이름으로 변경합니다.
    Copy
    [ec2-user html]$ tar -xvzf phpMyAdmin-latest-all-languages.tar.gz [ec2-user html]$ mv phpMyAdmin-4.7.5-all-languages phpMyAdmin
  7. (선택 사항) MySQL 서버가 실행 중이지 않으면 지금 시작합니다.
    Copy
    [ec2-user ~]$ sudo service mysqld start
    Starting mysqld:                                           [  OK  ]
  8. 웹 브라우저에서 phpMyAdmin 설치의 URL을 입력합니다. 아래의 예와 같이 이 URL은 인스턴스의 퍼블릭 DNS 주소(또는 퍼블릭 IP 주소)에 슬래시(/)와 설치 디렉터리의 이름이 추가된 형태입니다. 예:
    http://my.public.dns.amazonaws.com/phpMyAdmin

    사용자는 phpMyAdmin 로그인 페이지를 볼 수 있어야 합니다:

    LAMP3
  9. 앞서 만든 root 사용자 이름 및 MySQL 루트 암호로 phpMyAdmin 설치에 로그인합니다.작동하려면 먼저 설치를 구성해야 합니다. phpMyAdmin을 구성하려면 구성 파일을 직접 만들거나설정 콘솔을 사용하거나, 두 방법을 조합하여 사용합니다.

    phpMyAdmin에 대한 자세한 내용은 phpMyAdmin 사용 설명서를 참조하십시오.

문제 해결

이 섹션에서는 새 LAMP 서버를 설정하는 동안 발생할 수 있는 일반적인 문제 해결을 위한 제안을 제공합니다.

웹 브라우저를 사용하여 내 서버에 연결할 수 없습니다.

다음을 확인하여 Apache 웹 서버가 실행 중이고 엑세스 가능한지 확인합니다.

  • 웹 서버가 실행되고 있습니까?다음 명령을 실행해서 [httpd]가 실행되고 있는지 확인할 수 있습니다:
    Copy
    [ec2-user ~]$ chkconfig --list httpd
    httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

    여기서 [httpd]는 2, 3, 4, 5의 실행 레벨(사용자가 보기 원하는 부분)에서 on 상태입니다.

    httpd 프로세스가 실행되지 않는 경우 Amazon Linux에서 LAMP 웹 서버 설치 및 시작에 설명된 단계를 반복합니다.

  • 방화벽이 올바르게 구성되었습니까?Apache 테스트 페이지를 볼 수 없는 경우, 사용 중인 보안 그룹에 HTTP(포트 80) 트래픽을 허용하는 규칙이 있는지 확인하십시오. HTTP 규칙을 보안 그룹에 추가하는 것에 대한 자세한 내용은 다음(보안 그룹에 규칙 추가)을 참조하십시오.

서버에서 실행할 애플리케이션 소프트웨어가 설치된 PHP 버전 또는 다른 소프트웨어와 호환되지 않습니다

이 자습서는 최신 버전의 Apache HTTP Server, PHP, MySQL 설치를 권장합니다. 추가 LAMP 애플리케이션을 설치하기 전에 요구 사항을 점검하여 설치된 환경과 호환되는지 확인합니다. 최신 버전의 PHP가 지원되지 않는 경우, 지원되는 이전 구성으로 다운그레이드할 수 있습니다(안전성 보장). 또한 동시에 두 가지 이상의 PHP 버전을 설치하여 최소 노력으로 특정 호환성 문제를 해결할 수 있습니다. 설치되어 있는 여러 개의 PHP 버전 간에 기본 설정을 구성하는 방법에 대한 정보는 Amazon Linux AMI 2016.09 Release Notes를 참조하십시오.

다운그레이드 방법

테스트를 통과한 이 자습서의 이전 버전에서는 다음 코어 LAMP 패키지를 호출했습니다.

  • httpd24
  • php56
  • mysql55-server
  • php56-mysqlnd

이 자습서의 시작 부분에서 권장한 대로 최신 패키지를 이미 설치한 경우, 먼저 이러한 패키지 및 기타 종속 프로그램을 다음과 같이 제거해야 합니다.

Copy
[ec2-user ~]$ sudo yum remove -y httpd24 php70 mysql56-server php70-mysqlnd perl-DBD-MySQL56

그 다음 대체 환경을 설치합니다.

Copy
[ec2-user ~]$ sudo yum install -y  httpd24 php56 mysql55-server php56-mysqlnd

권장 환경으로 나중에 업그레이드하려는 경우, 먼저 사용자 지정된 패키지 및 종속 파일을 제거해야 합니다.

Copy
[ec2-user ~]$ sudo yum remove -y  httpd24 php56 mysql55-server php56-mysqlnd perl-DBD-MySQL55

이제 위에서 설명한 대로 최신 패키지를 설치할 수 있습니다.

출처 : http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/install-LAMP.html

Windows Xshell에서 Amazon EC2 Linux 인스턴스 연결

다음은 아마존 웹 서비스(AWS)의 리눅스 인스턴스에 XSHELL로 접속하기 위한 방법입니다.

1. 아마존 리눅스 인스턴스 생성 마지막 단계에서 개인 키 및 공용 키 쌍을 생성한 후 PC에 다운로드합니다.

xshell1

2. Xshell을 실행한 후 위 1의 개인 키 파일을 가져오기를 통해 등록합니다.

xshell2.png

AWS의 키는 기본 값으로 암호가 없습니다. 등록 정보를 누른 후 사용자의 암호를 설정하실 것을 권합니다.

3. Xshell에서 해당 AWS EC2 인스턴스를 위한 세션 파일을 생성합니다.

xshell3.png

호스트의 IP 주소는 해당 AWS 인스턴스의 정보를 확인합니다.

xshell4

xshell5

  • 사용자 이름은 EC2 인스턴스를 생성할 때 선택한 AMI에 기본 접속 정보에 대한 안내가 있습니다. root나 ec2-user를 주로 사용합니다. Amazon 리눅스를 선택하였으므로 ec2-user를 지정하였습니다.
  • 암호는 위 2.에서 정한 암호를 입력합니다.
  • 확인을 눌러 저장합니다.
4. 세션 대화 상자에서 위 3의 세션을 실행합니다.xshell6

Windows 에서 Amazon EC2 Linux 인스턴스 연결을 위한 PuTTY 사용방법

AWS 콘솔을 통하여 EC2 인스턴스를 생성하게 되면 SSH 접속을 위한 Key pair 를 사용하게 됩니다. Namsan.pem 과 같이 pem 형식의 파일을 다운로드 받을 수 있습니다.

 

Mac 사용자의 경우 pem 파일을 이용해 Linux 인스턴스에 접속이 가능하지만 Windows 사용자의 경우에는 PuTTy 에서 PEM 파일을 지원하지 않기 때문에 별도의 PPK 파일을 생성하여야만 Linux 인스턴스에 접속이 가능합니다.

 

필요한 프로그램을 다운로드 하기 위해 puTTY 다운로드 페이지로 이동합니다. https://www.chiark.greenend.org.uk/~sgtatham/putty/ 해당페이지에서 puttygen.exe 파일과 putty.exe 파일을 다운로드 합니다.

 

1. puttygen 을 통한 PPK 파일 생성

다운로드한 puyttygen 을 실행한 화면 입니다.

putty1

Conversions – import key 메뉴를 선택합니다.

putty2.png

EC2 인스턴스 생성시 다운로드한 PEM 파일을 선택 합니다. 아래와 같이 Key 파일이 import 됩니다.

putty3.png

Type 을 SSH-2 RSA 로 선택한 후 Save private key 버튼을 클릭합니다.

putty4.png

파일생성시 암호문을 설정하지 않았다는 경고창이 팝업되지만 “예” 를 선택하고 넘어가면 됩니다.

putty5

탐색기에서 생성할 키파일을 입력하고 “저장” 합니다.

putty6

putty 접속시 사용할 PPK 파일 생성이 완료 되었습니다. Linux 인스턴스에 접속해보겠습니다.

2. putty 를 통한 인스턴스 접속

PPK 생성이 완료되면 이제 putty 를 통해 인스턴스 접속이 가능합니다.

putty7

https://www.naver.comHost Name 에 username@public_Ip 형식으로 이름을 입력합니다. 이때 인스턴스 생성시 설정한 AMI 별로 아래와 같은 사용자 이름이 설정됩니다.

 

  • Amazon Linux AMI의 경우 사용자 이름은 ec2-user
  • RHEL AMI의 경우 사용자 이름은 ec2-user 또는 root
  • Ubuntu AMI의 경우 사용자 이름은 ubuntu 또는 root
  • Centos AMI의 경우 사용자 이름은 centos
  • Fedora AMI의 경우 사용자 이름은 ec2-user
  • SUSE의 경우 사용자 이름은 ec2-user 또는 root

예를들어 Amazone Linux 인스턴스에 public IP 가 52.123.123.123 이 할당되었다면 ec2-user@52.123.123.123 Ubuntu 인스턴스에 public IP 가 52.123.123.123 이 할당되었다면 ubuntu@52.123.123.123 로 접속하면 됩니다.

Host Name 을 입력 했으면 좌측 메뉴의 Connection – SSH – Auth 메뉴로 이동합니다.

putty8.png

우측 Browse 버튼을 선택하여 puttygen 으로 생성한 생성한 PPK 파일을 선택합니다.

putty9.png

“Open” 버튼을 클릭하면
처음 연결한 경우 Putty 에서 연결하려는 호스트를 신뢰할 수 있는지 확인하는 알림 대화상자가 표시됩니다.

“Yes” 를 선택하면  콘솔창이 열리고 인스턴스에 연결 됩니다.

 

참고