Show
Fabio Cavassiniunread, May 18, 2018, 3:27:33 AM5/18/18 to Google Cloud SQL discuss Hi, I've found an error in my MySQL ( MySQL 2nd Gen 5.7 ondb-n1-standard-1 ) error log and a pattern, this "Aborted connection" error always appears before this insert: "INSERT INTO mysql.heartbeat(id, master_time)..." A 2018-05-17T18:43:29.415379Z 638401 Query INSERT INTO mysql.heartbeat(id, master_time) E 2018-05-17T18:43:29.191513Z 638442 [Note] Aborted connection 638442 to db: 'xxxxxxxxx' user: 'root' host: 'cloudsqlproxy~74.125.182.17' (Got an error reading communication packets) A 2018-05-17T18:43:19.358269Z 638401 Query INSERT INTO mysql.heartbeat(id, master_time) E 2018-05-17T18:43:19.308447Z 638440 [Note] Aborted connection 638440 to db: 'xxxxxxxxx' user: 'root' host: 'cloudsqlproxy~173.194.90.33' (Got an error reading communication packets) My database has high availability enabled, and for what I had seen, that insert corresponds to Percora Toolkit / Monitor MySQL replication delay (https://www.percona.com/doc/percona-toolkit/LATEST/pt-heartbeat.html) I think the connection that executes that insert is not properly being managed. Thanks Fabio Fady (Google Cloud Platform)unread, May 19, 2018, 3:36:43 AM5/19/18 to Google Cloud SQL discuss Hello Fabio, The above message is triggered when an existing connection is terminated improperly, which may look erroneous but is actually perfectly normal. Aborted connections happen because of unclean closure of connection or networking problem between the server and the client, but not because of the server. Fabio Cavassiniunread, May 22, 2018, 5:07:04 AM5/22/18 to Google Cloud SQL discuss Thanks Fady, we checked and we had some functions that were improperly destroying the connection, thank you!!! GSP423개요Google API 탐색기는 다양한 Google API를 양방향으로 탐색하는 데 도움이 되는 도구입니다. API 탐색기로 할 수 있는 일은 다음과 같습니다.
Cloud SQL은 클라우드에서 관계형 PostgreSQL과 MySQL 데이터베이스를 손쉽게 설정, 유지 및 관리할 수 있는 완전 관리형 데이터베이스 서비스입니다. Cloud SQL은 고성능, 확장성, 편의성을 제공합니다. Google Cloud Platform에서 호스팅되는 Cloud SQL은 어디서나 실행되는 애플리케이션용 데이터베이스 인프라를 제공합니다. 이 실습에서는 Cloud SQL 인스턴스를 빌드하고 인스턴스에 MySQL 데이터베이스를 연결해 봅니다. 샘플 CSV 파일을 만들고 Cloud Storage에 업로드한 후에는 테이블을 만들고 파일의 콘텐츠를 MySQL 데이터베이스로 가져오게 됩니다. 마지막으로, 데이터베이스 및 연결된 데이터를 삭제해 봅니다. Cloud SQL Admin API에서 API 탐색기 도구를 사용해 다양한 메서드를 호출해 보며 이러한 작업을 완료할 것입니다. 목표이 실습에서는 API 탐색기 도구를 사용하여 다음을 수행합니다.
기본 요건이 실습은 기초 레벨 실습입니다. API의 기본 기능 및 아키텍처를 잘 알고 있어야 합니다. Google Cloud Shell 및 명령줄 인터페이스 도구를 사용해 본 경험이 있는 것이 좋습니다. API 탐색기 도구를 잘 알고 있는 것도 도움이 됩니다. 이 실습을 진행하기 전에 적어도 다음과 같은 실습을 완료하시기 바랍니다.
Cloud SQL에 대해 잘 모르는 경우 MySQL용 Cloud SQL: Qwik Start 및 BigQuery 및 Cloud SQL용 SQL 소개 실습을 살펴본다면 이 실습의 콘텐츠에 대한 방향을 잡아줄 유용한 정보를 얻을 수 있습니다. 준비가 됐으면 아래로 스크롤하여 아래 단계에 따라 실습 환경을 설정합니다. 설정 및 요구사항Qwiklabs 설정실습 시작 버튼을 클릭하기 전에다음 안내를 확인하세요. 실습에는 시간 제한이 있으며 일시중지할 수 없습니다. 실습 시작을 클릭하면 타이머가 시작됩니다. 이 타이머에는 Google Cloud 리소스를 사용할 수 있는 시간이 얼마나 남았는지 표시됩니다. Qwiklabs 실습을 통해 시뮬레이션이나 데모 환경이 아닌 실제 클라우드 환경에서 직접 실습 활동을 진행할 수 있습니다. 실습 시간 동안 Google Cloud에 로그인하고 액세스하는 데 사용할 수 있는 새로운 임시 사용자 인증 정보가 제공됩니다. 필요한 사항이 실습을 완료하려면 다음을 준비해야 합니다.
참고: 이미 개인용 Google Cloud 계정이나 프로젝트가 있어도 이 실습에서는 사용하지 마세요. 참고: Chrome OS 기기를 사용하는 경우 시크릿 창을 열어 이 실습을 실행하세요. Google Cloud Platform Console실습을 시작하고 Google Cloud 콘솔에 로그인하는 방법
잠시 후 Cloud 콘솔이 이 탭에서 열립니다. 참고: 왼쪽 상단에 있는 탐색 메뉴를 클릭하면 Google Cloud 제품 및 서비스 목록이 있는 메뉴를 볼 수 있습니다.instances.insert를 사용하여 Cloud SQL 인스턴스 빌드하기이제 API 탐색기에서 찾아볼 수 있는 메서드 중 하나로 Cloud SQL 인스턴스를 빌드할 것입니다. Cloud SQL API 탐색기 도구에 액세스하려면 탐색 메뉴를 열고 API 및 서비스 > 라이브러리를 선택합니다. 검색창에 Cloud SQL을 입력하고 결과 목록에서 Cloud SQL Admin API를 선택합니다. API가 사용 설정되어 있는지 확인하고, 사용 설정되지 않은 경우 사용 설정을 클릭합니다. 이제 API 사용 설정을 확인했으므로 이 링크를 엽니다. 그러면 Cloud SQL API용 Rest API 참조 페이지가 있는 탭이 새로 열립니다. 왼쪽의 API 및 참조 섹션에서 API 및 참조 > REST Reference v1beta4 API > 인스턴스 > 삽입으로 이동하여 sql.instances.insert 메서드를 선택하거나 이 링크를 사용하여 SQL 인스턴스 리소스를 만듭니다. 이제 sql.instances.insert 메서드를 사용하기 위한 양식을 작성해 보겠습니다. 요청 본문에는 MySql 인스턴스를 만드는 데 사용하려는 리소스 속성이 포함됩니다. project: = Qwiklabs GCP 프로젝트 ID 그런 다음 요청 본문 입력란의 중괄호 안에 있는 파란색 더하기 기호 아이콘을 클릭합니다. 속성을 선택하라는 메시지가 나타나면 "name"을 선택합니다. 그 옆에 이름을 my-instance로 지정합니다.
그러면 다음 레벨이 생성됩니다. 괄호 안을 클릭하고 파란색 더하기 기호 아이콘을 클릭한 후 "settings"를 선택합니다. 'settings' 안에서 중괄호 안을 클릭하고 파란색 더하기 기호 아이콘을 클릭한 후 'tier'를 선택한 다음, 그 옆에 'db-n1-standard-1'을 입력합니다.
다음과 유사한 메서드가 표시됩니다. 사용자 인증 정보 섹션 아래에서 Google OAuth 2.0 체크박스가 선택되어 있는지 확인합니다. 참고: 사용자 인증 정보 FAQ를 보려면 사용자 인증 정보 제목 옆의 물음표 아이콘을 클릭합니다.모든 입력란의 내용 맨 끝에 공백이 없는지 확인합니다. 이제 아래로 스크롤하여 실행 버튼을 클릭합니다. 계정을 선택하라는 메시지가 표시되면 Qwiklabs Google 계정을 클릭합니다. 다음 화면에서 허용을 클릭하여 API 탐색기에 액세스 권한을 부여합니다. 양식에 입력한 내용을 기반으로 빌드된 코드로 프로젝트에 전송된 요청을 확인할 수 있습니다. 다음과 유사한 응답이 표시됩니다.
Google Cloud Platform 프로젝트를 위한 MySQL 인스턴스를 성공적으로 만들었습니다. 이제 GCP Console에서 확인해 보세요. Cloud SQL 인스턴스 보기이 단계를 수행하기 위해서는 GCP Console로 돌아갑니다. 왼쪽 메뉴에서 Storage 헤더 아래의 SQL을 선택하면 MySQL 인스턴스가 만들어지는 것을 볼 수 있는 인스턴스 페이지로 이동합니다. 인스턴스가 만들어지는 데 몇 분 정도 걸릴 수 있습니다. 변경사항을 확인하려면 때때로 페이지를 새로 고쳐야 할 수 있습니다. 인스턴스가 만들어지고 다음 단계를 진행할 준비가 되면 API 탐색기 페이지로 돌아갑니다. 완료된 작업 테스트하기진행 상황 확인하기를 클릭하여 실행한 작업을 확인합니다. 작업을 완료하면 평가 점수가 부여됩니다. API 탐색기로 Cloud SQL 인스턴스 빌드하기databases.insert로 데이터베이스 만들기Cloud SQL 인스턴스를 만들었으므로 이제 왼쪽의 API 및 참조 섹션에서 API 및 참조 > REST Reference v1beta4 API > 데이터베이스 > 삽입으로 이동하여 sql.databases.insert 메서드를 선택하거나 이 링크를 사용하여 데이터베이스를 만듭니다. 이제 sql.databases.insert 메서드를 사용하기 위한 양식을 작성해 보겠습니다. 요청 본문에는 데이터베이스를 만드는 데 사용하려는 리소스 속성이 포함됩니다. project: = Qwiklabs GCP 프로젝트 ID instance: = my-instance. 그런 다음 요청 본문에서 다음을 수행합니다. 요청 본문 = 괄호 안을 클릭하여 다음과 같은 속성을 선택합니다.
다음과 유사한 메서드가 표시됩니다. 사용자 인증 정보 섹션 아래에서 Google OAuth 2.0 체크박스가 선택되어 있는지 확인합니다. 참고: 사용자 인증 정보 FAQ를 보려면 사용자 인증 정보 제목 옆의 물음표 아이콘을 클릭합니다.모든 입력란의 내용 맨 끝에 공백이 없는지 확인합니다. 이제 아래로 스크롤하여 실행 버튼을 클릭합니다. 양식에 입력한 내용을 기반으로 빌드된 코드로 프로젝트에 전송된 요청을 확인할 수 있습니다. 다음과 유사한 응답이 표시됩니다.
Cloud SQL 인스턴스 안에 데이터베이스를 성공적으로 만들었습니다. 이제 데이터베이스에 데이터를 추가할 준비가 되었습니다. 추가하기 전에 GCP Console에서 데이터베이스를 확인해 보세요. 새 데이터베이스 보기이 단계를 수행하기 위해 GCP Console로 돌아갑니다. 탐색 메뉴에서 Storage 헤더 아래의 SQL을 선택하면 인스턴스 페이지로 이동합니다. my-instance를 클릭하고 databases 탭을 선택합니다. 그러면 mysql-db가 추가된 데이터베이스 목록이 표시됩니다. 위 스크린샷에 나오는 데이터베이스의 순서는 Console에 표시되는 것과 다를 수 있습니다. 완료된 작업 테스트하기진행 상황 확인하기를 클릭하여 실행한 작업을 확인합니다. 작업을 완료하면 평가 점수가 부여됩니다. Cloud SQL 인스턴스에서 데이터베이스 만들기MySQL 데이터베이스에 테이블을 만들고 Cloud Storage 버킷에 CSV 파일 업로드하기이제 MySQL 데이터베이스에 테이블을 만들고 '쉼표로 구분된 값'(CSV) 형식으로 파일을 만들어 Cloud Storage에 업로드할 것입니다. GCP Console에서 새 Cloud Shell 세션을 엽니다. 다음 명령어를 실행하여 MySQL 인스턴스에 연결합니다.
인스턴스에 연결하는 데 1~2분 정도 걸릴 수 있습니다. 비밀번호를 설정하지 않았으므로 메시지에 따라 비밀번호를 입력합니다. 이제 인스턴스에 로그인되었을 것입니다.
다음 명령어를 실행하여
이제 데이터를 특정 위치로 가져올 수 있도록 다음 명령어를 실행하여
다음과 유사한 결과가 표시됩니다.
MySQL 데이터베이스에 빈 테이블을 만들었습니다. 이 Cloud Shell 세션에서 나가지 마세요. 상단 리본의 + 탭을 클릭하여 Cloud Shell에서 새 탭을 엽니다. 이제 CSV 파일을 만들고 Cloud Storage 버킷에 업로드합니다. 다음 명령어를 실행하여
다음 명령어를 실행하여
다음 코드를 복사하여 파일에 붙여넣습니다.
CTRL+X → Y → ENTER를 눌러 파일을 저장합니다. 이제 Cloud Storage에 업로드할 간단한 CSV 파일이 만들어졌습니다. 다음 명령어를 실행하여 새 Cloud Storage 버킷을 만들고,
완료된 작업 테스트하기진행 상황 확인하기를 클릭하여 실행한 작업을 확인합니다. 작업을 완료하면 평가 점수가 부여됩니다. Cloud Storage 버킷 만들기다음 명령어를 실행하여 CSV 파일을 Cloud Storage 버킷에 업로드하고
완료된 작업 테스트하기진행 상황 확인하기를 클릭하여 실행한 작업을 확인합니다. 작업을 완료하면 평가 점수가 부여됩니다. Cloud Storage 버킷에 CSV 파일 업로드하기이 파일을 MySQL 데이터베이스에 업로드하려면 Cloud SQL 서비스 계정을 사용하여 특정 권한을 업데이트합니다. 탐색 메뉴에서 SQL을 선택하고 my-instance를 클릭합니다. 개요 페이지에서 아래로 스크롤하여 '서비스 계정' 카드를 찾고 서비스 계정 이름을 복사합니다. 이제 탐색 메뉴를 열고 스토리지 > 브라우저를 선택합니다. 버킷의 맨 오른쪽에 있는 점 3개로 된 메뉴를 클릭하고 버킷 권한 수정을 클릭합니다. 멤버 입력란에서 + 멤버 추가를 클릭합니다. 앞서 복사한 Cloud SQL 서비스 계정 이름을 새 멤버에 붙여넣습니다. 역할 드롭다운을 클릭하고 스토리지 > 스토리지 관리자를 선택합니다. 다음과 유사한 권한 사이드바가 표시됩니다. 저장을 클릭합니다. 이제 Cloud Storage 버킷이 Cloud SQL 인스턴스의 API 요청을 수락할 수 있습니다. 이제 CSV 파일을 Cloud SQL 데이터베이스에 복사합니다. 완료된 작업 테스트하기진행 상황 확인하기를 클릭하여 실행한 작업을 확인합니다. 작업을 완료하면 평가 점수가 부여됩니다. Cloud SQL 서비스 계정에 Storage 관리자 역할 추가하기instances.import를 사용하여 데이터베이스에 CSV 파일 추가하기왼쪽의 API 및 참조 섹션에서 API 및 참조 > REST Reference v1beta4 API > 인스턴스 > 가져오기로 이동하여 sql.instances.import 메서드를 선택하거나 이 링크를 사용하여 데이터를 데이터베이스에 가져옵니다. 이제 sql.instances.import 메서드를 사용하기 위한 양식을 작성해 보겠습니다. 요청 본문에는 데이터를 가져오는 데 사용하려는 리소스 속성이 포함됩니다. project: = Qwiklabs GCP 프로젝트 ID instance: = my-instance 요청 본문 = 괄호 안을 클릭하여 다음과 같은 속성을 선택합니다.
이제 다음과 유사한 메서드가 표시됩니다. 사용자 인증 정보 섹션 아래에서 Google OAuth 2.0 체크박스가 선택되어 있는지 확인합니다. 참고: 사용자 인증 정보 FAQ를 보려면 사용자 인증 정보 제목 옆의 물음표 아이콘을 클릭합니다.모든 입력란의 내용 맨 끝에 공백이 없는지 확인합니다. 이제 아래로 스크롤하여 실행 버튼을 클릭합니다. 양식에 입력한 내용을 기반으로 빌드된 코드로 프로젝트에 전송된 요청을 확인할 수 있습니다. 다음과 유사한 응답이 표시됩니다.
API 탐색기를 사용하여 MySQL 데이터베이스 테이블에 CSV 파일을 추가했습니다. 이제 이 테이블을 검사할 차례입니다. 업데이트한 데이터베이스 검사하기GCP Console에서 열어 두었던 MySQL Cloud Shell 탭으로 돌아갑니다. 이제 다음 명령어를 실행해 테이블의 내용을 확인합니다.
다음과 유사한 결과가 표시됩니다.
탐색기 도구에서 하나의 API 호출로 Cloud Storage에 위치한 CSV 파일을 복사하고 MySQL 데이터베이스의 테이블과 병합할 수 있었습니다. 이는 GCP Console에서 여러 단계를 거쳐야 하는 것과 대조적으로 API 메서드 호출의 성능과 효율성을 잘 보여줍니다. 데이터베이스 삭제하기이제 직원 정보를 호스트하는 MySQL 데이터베이스를 삭제해 보겠습니다. 왼쪽의 API 및 참조 섹션에서 API 및 참조 > REST Reference v1beta4 API > 데이터베이스 > 삭제로 이동하여 sql.databases.delete 메서드를 선택하거나 이 링크를 사용하여 데이터베이스를 삭제합니다. 이제 sql.databases.delete 메서드를 사용하기 위한 양식을 작성해 보겠습니다. project: = Qwiklabs GCP 프로젝트 ID instance: = my-instance database: = mysql-db 다음과 유사한 메서드가 표시됩니다. 사용자 인증 정보 섹션 아래에서 Google OAuth 2.0 체크박스가 선택되어 있는지 확인합니다. 참고: 사용자 인증 정보 FAQ를 보려면 사용자 인증 정보 제목 옆의 물음표 아이콘을 클릭합니다.모든 입력란의 내용 맨 끝에 공백이 없는지 확인합니다. 이제 아래로 스크롤하여 실행 버튼을 클릭합니다. 양식에 입력한 내용을 기반으로 빌드된 코드로 프로젝트에 전송된 요청을 확인할 수 있습니다. 다음과 유사한 응답이 표시됩니다.
Cloud SQL 인스턴스 안에서 데이터베이스를 성공적으로 삭제했습니다. GCP Console로 돌아가 다음 단계를 진행합니다. 업데이트된 Cloud SQL 인스턴스 보기GCP Console의 탐색 메뉴에서 Storage 헤더 아래의 SQL을 선택하면 인스턴스 페이지로 이동합니다. my-instance를 클릭하고 databases 탭을 클릭합니다. 이로써 실습이 완료되었습니다. 실습을 여기에서 종료하거나 시간이 남으면 API 탐색기의 다른 Cloud SQL Admin API 메서드를 살펴보세요. 배운 내용 테스트하기아래에는 이 실습에서 배운 내용을 복습하기 위한 객관식 테스트가 나와 있습니다. 최선을 다해 풀어보세요. 축하합니다이 실습에서는 API 탐색기를 사용하여 Cloud SQL Admin API 메서드를 실습했습니다. Cloud SQL 인스턴스를 빌드한 후 MySQL 데이터베이스를 구성하고 연결했으며, 그런 다음 간단한 CSV 파일을 만들어 Cloud Storage에 업로드하고 MySQL 데이터베이스에 푸시했습니다. 마지막으로, Cloud SQL 인스턴스에서 데이터베이스를 삭제하는 방법을 배웠습니다. 이제 더 많은 API 탐색하기 실습을 수행할 준비가 되었습니다. 퀘스트 완료이 사용자 주도형 실습은 Qwiklabs 퀘스트 API 탐색하기의 일부입니다. 퀘스트는 여러 실습을 하나의 교육 과정으로 구성한 것입니다. 이 퀘스트를 완료하면 위의 배지를 얻고 수료를 인증할 수 있습니다. 배지를 공개하고 온라인 이력서 또는 소셜 미디어 계정에 연결할 수 있습니다. 이 실습을 완료했다면 이 퀘스트에 등록하여 즉시 수료 크레딧을 받으세요. 다른 Qwiklabs 퀘스트도 확인해 보세요. 다음 단계/자세히 알아보기API 탐색기와 관련된 더 많은 연습을 할 수 있는 다음 실습을 확인하세요.
Google Cloud 교육 및 인증Google Cloud 기술을 최대한 활용하는 데 도움이 됩니다. Google 강의에는 빠른 습득과 지속적인 학습을 지원하는 기술적인 지식과 권장사항이 포함되어 있습니다. 기초에서 고급까지 수준별 학습을 제공하며 바쁜 일정에 알맞은 주문형, 실시간, 가상 옵션이 포함되어 있습니다. 인증은 Google Cloud 기술에 대한 역량과 전문성을 검증하고 입증하는 데 도움이 됩니다. 설명서 최종 업데이트: 2021년 3월 8일실습 최종 테스트: 2021년 1월 8일Copyright 2020 Google LLC All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다. |