AWS RDS로 데이터 관리

소개



  • AWS에서 관계형 데이터베이스를 처리하는 방법은 다음과 같습니다.
  • AWS EC2를 구축하고 DB를 태운다
  • AWS RDS 사용


  • AWS RDS 무료 프레임


  • 무료 테두리는 다음 내용

  • 750 시간/월 db.t2.micro 데이터베이스 사용 (적용 가능한 DB 엔진)
  • 20GB 일반 (SSD) 데이터베이스 스토리지
  • 20GB 데이터베이스 백업 및 DB 스냅 샷 용 스토리지

  • 간단 작성 - MySQL -


  • MySQL DB 인스턴스를 만들고 데이터베이스에 연결









  • EC2에서의 작업(2020.05.02 추가)



    mysql-client 설치


    $ sudo apt install mysql-client-core-5.7
    

    EC2 -> RDS에 연결


    $ mysql -h RDSのエンドポイント -u RDSで設定したユーザ -p RDSで設定したパスワード
    

    mysql 측에서의 작업(2020.05.02 추가)



    사용자 데이터베이스 작성


    mysql> CREATE USER 'mysql'@'%';
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> SET PASSWORD FOR 'mysql'@'%'='MyPassw0rd';
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> CREATE DATABASE awsfree;
    Query OK, 1 row affected (0.00 sec)
    
    mysql> GRANT ALL ON awsfree.* TO 'mysql'@'%';
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> CREATE TABLE staff (
        id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
        staff_name VARCHAR(255) NOT NULL
    ) ENGINE=InnoDB DEFAULT charset = utf8;
    Query OK, 0 rows affected (0.02 sec)
    
    mysql> INSERT INTO staff (staff_name) VALUES ('尼存 太郎');
    Query OK, 1 row affected (0.00 sec)
    
    mysql> INSERT INTO staff (staff_name) VALUES ('尼存 花子');
    Query OK, 1 row affected (0.00 sec)
    
    mysql> SELECT * FROM staff;
    +----+---------------+
    | id | staff_name    |
    +----+---------------+
    |  1 | 尼存 太郎     |
    |  2 | 尼存 花子     |
    +----+---------------+
    2 rows in set (0.00 sec)
    

    동작 확인(2020.05.02 추가)



    pymysql 설치


    $ pip install pymysql
    

    python -> mysql 연결 테스트



    rds_config.py
    rds_host = 'RDSのエンドポイント'
    db_user = 'mysql'
    db_password = 'MyPassw0rd'
    db_name = 'awsfree'
    

    rds_test.py
    import pymysql
    import rds_config as RDS
    
    con = pymysql.connect(
            host=RDS.rds_host,
            user=RDS.db_user,
            password=RDS.db_password,
            db=RDS.db_name,
            cursorclass=pymysql.cursors.DictCursor
    )
    
    try:
        with con.cursor() as cur:
            sql = 'SELECT * FROM staff'
            cur.execute(sql)
            result = cur.fetchall()
            print(result)
    except:
        print('Error !!!!')
    

    staff 추가
    sql = 'INSERT INTO staff (staff_name) VALUES (%s)'
    cur.execute(sql, ('尼存 次郎'))
    
    con.commit()
    

    연결 테스트
    $ python rds_test.py
    

    실행 결과
    [{'id': 1, 'staff_name': '尼存 太郎'}, {'id': 2, 'staff_name': '尼存 花子'}]
    

    결론


  • AWS RDS를 사용하면 버튼, 포치포치로 환경 구축 할 수 있어 편리.
  • EC2->RDS에 대한 연결 테스트를 추가했습니다. (2020.05.02)
  • 좋은 웹페이지 즐겨찾기