aws를 시작할 시간이 얼마 남지 않았겠죠 #3 ~ RDS와의 연결~

14195 단어 PHPLaravelAWS

입문

  • 이제 시작할게요~ 일단 접촉을 해봤어요~
  • 이제 aws를 시작할 때가 되지 않았나 #2 ~ CodeStar 코드를 Deploy로 수정~
  • 지난 CodeStar의 IDE 환경(Cloud9)부터 코드 편집 Deploy까지 모두 잘 진행되었습니다.
    이번에 드디어 실패한 DB 접속을 시도합니다.

    RDS 만들기


    RDS 콘솔 화면의 데이터베이스 만들기 에서 만듭니다.

    이번에 Maria DB를 해봤어요.

    물론 무료 상자에 데이터베이스 실례 이름, 주 사용자 이름, 주 비밀번호를 입력하십시오.
    해설에는 @ 돌아가실 수도 있다고 쓰여 있지만 비밀번호가 확인란의 Varidation에서 튀어나왔기 때문에 @ 불가능합니다

    기본 설정

    연결이 Default VPC로 설정되었습니다.

    에서 다른 천장 유형을 선택합니다.

    RDS와의 연결 설정


    이렇게 하면 CodeStar가 Default VPC에서 만든 php-laravel 실례와 RDB의 실례는 소통할 수 없습니다.
    Default VPC에 MariaDB 포트의 연결 설정이 없기 때문입니다.내가 설정할게.
    필요한 정보는
    - 소스 서버에 연결된 인스턴스의 전용 IP
    - 대상 서버에서 사용하는 포트 번호
    먼저 CodeStar에서 만든 php-laravel 인스턴스의 전용 IP를 확인합니다.
    EC2 대시보드로 이동하여 인스턴스를 봅니다.
    이렇게 되면 코드스타의 프로젝트명 - 웹앱의 실례가 있기 때문에 그 개인 IP를 복사해서 노드패드 등에 베껴야 한다.

    포트 번호가 MariaDB 표준에서 변경되지 않았기 때문에 3306이다.(RDS 제작 시 교체 시 해당 값)
    RDS가 설치된 VPC에서 액세스하십시오.
    아마존 RDS 대시보드로 이동하여 데이터베이스 메뉴에서 DB 식별자 링크를 클릭합니다.


    여기에서 VPC-보안 그룹 링크를 클릭합니다.

    EC2 대시보드의 네트워크 및 보안 > 보안 그룹을 필터링한 상태에서 마이그레이션합니다.
    화면 하단의 인바운드를 클릭하여 방금 전의 전용 IP 및 포트 번호를 지정합니다.

    RDS와의 연결 확인


    TeraTerm을 사용하여 CodeStar 프로젝트에 연결된 인스턴스입니다.
    초기 상태에서도 mysql 모듈이 없기 때문에 설치합니다.
    ※ PHP 실행 서버에 넣고 싶지 않습니다!안전 의식이 높은 사람은 다른 운용용 EC2를 가동하여 조작하십시오.
    이 때 위의 RDS와의 연결에서 지정한 입국 외에 EC2를 사용하는 전용 IP도 정의됩니다.
    명령이 없는지 확인(웃음)-h에서 지정한 호스트 이름은 RDS 대시보드의 데이터베이스 식별자를 선택한 후 화면에 나타나는 끝점의 호스트 이름입니다.
    [ec2-user@ip-172-31-29-127 phplaravel]$ mysql -u admin -p -h laravel-db.culgyynq9ap1.us-east-2.rds.amazonaws.com
    -bash: mysql: command not found
    
    [ec2-user@ip-172-31-29-127 phplaravel]$ sudo yum install -y mysql
    Loaded plugins: priorities, update-motd, upgrade-helper
    amzn-main                                                | 2.1 kB     00:00
    amzn-updates                                             | 2.5 kB     00:00
    Resolving Dependencies
    --> Running transaction check
    ---> Package mysql.noarch 0:5.5-1.6.amzn1 will be installed
    --> Processing Dependency: mysql55 >= 5.5 for package: mysql-5.5-1.6.amzn1.noarch
    --> Running transaction check
    ---> Package mysql55.x86_64 0:5.5.62-1.23.amzn1 will be installed
    --> Processing Dependency: real-mysql55-libs(x86-64) = 5.5.62-1.23.amzn1 for package: mysql55-5.5.62-1.23.amzn1.x86_64
    --> Processing Dependency: mysql-config for package: mysql55-5.5.62-1.23.amzn1.x86_64
    --> Running transaction check
    ---> Package mysql-config.x86_64 0:5.5.62-1.23.amzn1 will be installed
    ---> Package mysql55-libs.x86_64 0:5.5.62-1.23.amzn1 will be installed
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    ================================================================================
     Package           Arch        Version                  Repository         Size
    ================================================================================
    Installing:
     mysql             noarch      5.5-1.6.amzn1            amzn-main         2.7 k
    Installing for dependencies:
     mysql-config      x86_64      5.5.62-1.23.amzn1        amzn-updates       49 k
     mysql55           x86_64      5.5.62-1.23.amzn1        amzn-updates      7.5 M
     mysql55-libs      x86_64      5.5.62-1.23.amzn1        amzn-updates      816 k
    
    Transaction Summary
    ================================================================================
    Install  1 Package (+3 Dependent packages)
    
    Total download size: 8.3 M
    Installed size: 31 M
    Downloading packages:
    (1/4): mysql-5.5-1.6.amzn1.noarch.rpm                      | 2.7 kB   00:00
    (2/4): mysql-config-5.5.62-1.23.amzn1.x86_64.rpm           |  49 kB   00:00
    (3/4): mysql55-libs-5.5.62-1.23.amzn1.x86_64.rpm           | 816 kB   00:00
    (4/4): mysql55-5.5.62-1.23.amzn1.x86_64.rpm                | 7.5 MB   00:00
    --------------------------------------------------------------------------------
    Total                                              9.9 MB/s | 8.3 MB  00:00
    Running transaction check
    Running transaction test
    Transaction test succeeded
    Running transaction
      Installing : mysql55-libs-5.5.62-1.23.amzn1.x86_64                        1/4
      Installing : mysql-config-5.5.62-1.23.amzn1.x86_64                        2/4
      Installing : mysql55-5.5.62-1.23.amzn1.x86_64                             3/4
      Installing : mysql-5.5-1.6.amzn1.noarch                                   4/4
      Verifying  : mysql-5.5-1.6.amzn1.noarch                                   1/4
      Verifying  : mysql-config-5.5.62-1.23.amzn1.x86_64                        2/4
      Verifying  : mysql55-libs-5.5.62-1.23.amzn1.x86_64                        3/4
      Verifying  : mysql55-5.5.62-1.23.amzn1.x86_64                             4/4
    
    Installed:
      mysql.noarch 0:5.5-1.6.amzn1
    
    Dependency Installed:
      mysql-config.x86_64 0:5.5.62-1.23.amzn1   mysql55.x86_64 0:5.5.62-1.23.amzn1
      mysql55-libs.x86_64 0:5.5.62-1.23.amzn1
    
    Complete!
    [ec2-user@ip-172-31-29-127 phplaravel]$ 
    
    다시 정신 차려. 다시.이번에는 연결이 됐습니다.
    [ec2-user@ip-172-31-29-127 phplaravel]$ mysql -u admin -p -h laravel-db.culgyynq9ap1.us-east-2.rds.amazonaws.com
    Enter password:
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 234
    Server version: 5.5.5-10.2.21-MariaDB-log Source distribution
    
    Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql>
    
    이제 CodeStar 인스턴스에서 RDS로 연결할 수 있습니다.

    RDS에서 데이터베이스 만들기


    여기는 MariaDB의 명령이니 메모입니다.
    mysql> CREATE DATABASE laravel DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
    Query OK, 1 row affected (0.00 sec)
    
    mysql> SHOW DATABASES;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | innodb             |
    | laravel            |
    | mysql              |
    | performance_schema |
    +--------------------+
    5 rows in set (0.00 sec)
    
    mysql> \q
    Bye
    
    현재laravel을 위해 데이터베이스 가와를 만들었습니다.
    사실 우리는 주 사용자가 아니라 Laravel 데이터베이스 연결 사용자를 만들어야 한다
    거기 통과했어.

    드디어 php artisan migrate


    여기까지 왔습니다. 드디어 laravelmigrate 데이터베이스에서
    기본 연결 설정은 로컬 호스트이기 때문에 우선.env를 다시 쓰다.
    [ec2-user@ip-172-31-29-127 ~]$ cd /var/www/phplaravel/
    [ec2-user@ip-172-31-29-127 phplaravel]$ cat .env
    APP_ENV=local
    APP_KEY=base64:CHANGEMECHANGEMECHANGEMECHANGEMECHANGEMECHA=
    APP_DEBUG=false
    APP_LOG_LEVEL=error
    APP_URL=http://localhost
    
    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=homestead
    DB_USERNAME=homestead
    DB_PASSWORD=secret
    
    BROADCAST_DRIVER=log
    CACHE_DRIVER=file
    SESSION_DRIVER=file
    QUEUE_DRIVER=sync
    
    REDIS_HOST=127.0.0.1
    REDIS_PASSWORD=null
    REDIS_PORT=6379
    
    MAIL_DRIVER=smtp
    MAIL_HOST=mailtrap.io
    MAIL_PORT=2525
    MAIL_USERNAME=null
    MAIL_PASSWORD=null
    MAIL_ENCRYPTION=null
    
    PUSHER_APP_ID=
    PUSHER_KEY=
    PUSHER_SECRET=
    [ec2-user@ip-172-31-29-127 phplaravel]$
    
    나는 이것을 고쳐 쓸 것이다.구체적으로 다음과 같다.
    Env
    Value
    DB_CONNECTION
    mysql
    DB_HOST
    laravel-db.culgyynq9ap1.us-east-2.rds.amazonaws.com
    DB_PORT
    3306
    DB_DATABASE
    laravel
    DB_USERNAME
    admin
    DB_PASSWORD
    ***********
    [ec2-user@ip-172-31-29-127 phplaravel]$ vi .env
    [ec2-user@ip-172-31-29-127 phplaravel]$ cat .env
    APP_ENV=local
    APP_KEY=base64:CHANGEMECHANGEMECHANGEMECHANGEMECHANGEMECHA=
    APP_DEBUG=false
    APP_LOG_LEVEL=error
    APP_URL=http://localhost
    
    DB_CONNECTION=mysql
    DB_HOST=laravel-db.culgyynq9ap1.us-east-2.rds.amazonaws.com
    DB_PORT=3306
    DB_DATABASE=laravel
    DB_USERNAME=admin
    DB_PASSWORD=***********
    
    BROADCAST_DRIVER=log
    CACHE_DRIVER=file
    SESSION_DRIVER=file
    QUEUE_DRIVER=sync
    
    REDIS_HOST=127.0.0.1
    REDIS_PASSWORD=null
    REDIS_PORT=6379
    
    MAIL_DRIVER=smtp
    MAIL_HOST=mailtrap.io
    MAIL_PORT=2525
    MAIL_USERNAME=null
    MAIL_PASSWORD=null
    MAIL_ENCRYPTION=null
    
    PUSHER_APP_ID=
    PUSHER_KEY=
    PUSHER_SECRET=
    [ec2-user@ip-172-31-29-127 phplaravel]$
    
    그러면 기다렸던 artisan migrate.
    [ec2-user@ip-172-31-29-127 phplaravel]$ php artisan migrate
    Migration table created successfully.
    Migrated: 2014_10_12_000000_create_users_table
    Migrated: 2014_10_12_100000_create_password_resets_table
    [ec2-user@ip-172-31-29-127 phplaravel]$
    
    예.이렇게 하면 Web+DB의 환경이 모두 갖추어진다!

    좋은 웹페이지 즐겨찾기