반응형

Tasks

Check that there is a Cloud SQL instance
Check that there is a user database on the Cloud SQL instance
Check that the blog instance is authorized to access Cloud SQL
Check that wp-config.php points to the Cloud SQL instance
Check that the blog still responds to requests

 

1. Create Cloud SQL

 

2. MySql dump 를 export 한다.


참고 )
https://cloud.google.com/solutions/migrating-mysql-to-cloudsql-concept
https://cloud.google.com/sql/docs/mysql/import-export/creating-sqldump-csv#std

 

- 실행 명령어

mysqldump --databases [DATABASE_NAME] -h [INSTANCE_IP] -u [USERNAME] -p \
--hex-blob --skip-triggers --single-transaction --set-gtid-purged=OFF \
--ignore-table [VIEW_NAME1] [...] --default-character-set=utf8mb4 > [SQL_FILE].sql

 

- 조건 

The existing database for the blog is provided by MySQL running on the same server. 
The existing MySQL database is called wordpress and the user called blogadmin with password Password1*, which provides full access to that database.

 

- 실행

위 조건에 맞춰서 다음과 같이 실행을 한다. password 는 위 조건에서 처럼 Password1* 를 넣어주면 된다.

 

3. Cloud Bucket 생성 및 dump 를 gcs 로 복사한다.

 

export PROJECT_ID=$(gcloud info --format='value(config.project)')
gsutil mb gs://$PROJECT_ID
gsutil cp wordpress.sql gs://$PROJECT_ID

 

4. SQL 로 import 한다.

 

참고)

https://cloud.google.com/sql/docs/mysql/import-export/importing

 

명령어를 사용해도 되고 아래와 같이 화면에서 간단히 import 하면 더 편하다.

5. User 추가

 

SQL > Users 탭에서 Create user account 를 클릭한다.

blogadmin 계정을 만들어 준다.

다 된줄 알았는데 아래와 같이 에러가 나온다. ㅡㅡ;

SQL>Connections 탭을 가보면 아래 화면과 같이 Network 설정을 할 수 있다.

Network 설정을 해줘야 하는데 위와같은 range 를 만족해야 한다.

아래 사이트를 가면 쉽게 CIDR range 를 구할 수 있다.

https://www.ipaddressguide.com/cidr

 

CIDR to IPv4 Address Range Utility Tool | IPAddressGuide

Free IP address tool to translate IPv4 address range into CIDR (Classless Inter-Domain Routing) format and vice-versa.

www.ipaddressguide.com

6. wp-config.php 파일을 Cloud SQL Instance 를 사용하도록 수정해준다.

 

wp-config.php 파일에 아래 localhost 를 수정해 하고 주석을 해제 한다. (위치는 /var/www/html/wordpress)

** MySQL hostname

*/ define('DB_HOST', 'localhost');

 

 

7. 이제 재기동 한다. 

sudo service apache2 restart

 

728x90
반응형
반응형

Tasks

Check that there is a tagged image in gcr.io for echo-app:v2
Echo-app:v2 is running on the Kubernetes cluster
The Kubernetes cluster deployment reports 2 replicas.
The application must respond to web requests with V2.0.0

 

1. 파일 압축 풀기 및 Docker Build

 

- 압축 풀기

tar -xvzf resources-ehco-web-v2.tar.gz

- PROJECT_ID 환경변수 등록

export PROJECT_ID=$(gcloud info --format='value(config.project)')

- Image 를 Google Container Registry 에 push

 

2. Version 수정

- echo-web-deployment.yml 파일 수정

아래에 있는 1.0 을  v2 로 변경한다.

- Image push

docker push gcr.io/${PROJECT_ID}/echo-web:v2

그리고 나서 화면에서 Action 에 있는 Rolling update 를 클릭한다.

Rolling Update 에서 image 는 조금전에 push 한 v2 이미지를 사용한다. 그리고 Update 클릭

 

- Scale 변경

Action  메뉴에서 Scale 을 클릭한후 Replicas 값을 2 로 입력한다.

완료가 되면 위에 보이는 Replicas 정보가 아래와 같이 변경된다.

 

Deployment Details 화면에 있는 yaml 탭에 가서 파일 내용을 살펴보면 spec.replicas 가 2 로 변경 되어 있는것을 볼 수 있다.

 

728x90
반응형
반응형

Tasks

An application image with a v1 tag has been pushed to the gcr.io repository
A new Kubernetes cluster exists (zone: us-central1-a)
Check that an application has been deployed to the cluster
Test that a service exists that responds to requests like Echo-app

 

1. 클러스터 생성


gcloud beta container --project "qwiklabs-gcp-00-337f72711928" clusters create "echo-cluster" --zone "us-central1-a" --no-enable-basic-auth --cluster-version "1.14.10-gke.17" --machine-type "n1-standard-2" --image-type "COS" --disk-type "pd-standard" --disk-size "100" --metadata disable-legacy-endpoints=true --scopes "
https://www.googleapis.com/auth/devstorage.read_only","https://www.googleapis.com/auth/logging.write","https://www.googleapis.com/auth/monitoring","https://www.googleapis.com/auth/servicecontrol","https://www.googleapis.com/auth/service.management.readonly","https://www.googleapis.com/auth/trace.append" --num-nodes "3" --enable-stackdriver-kubernetes --enable-ip-alias --network "projects/qwiklabs-gcp-00-337f72711928/global/networks/default" --subnetwork "projects/qwiklabs-gcp-00-337f72711928/regions/us-central1/subnetworks/default" --default-max-pods-per-node "110" --addons HorizontalPodAutoscaling,HttpLoadBalancing --enable-autoupgrade --enable-autorepair

 

클러스터 생성은 Cloud Console 에서 직접 하면 된다.

name 은 "echo-cluster" , machine-type 은 "n1-standard-2" 로 만들어 준다.

 

2. tar file 을 Google Cloud Storage 에서 복사한 후 압축을 푼다.

 

- Google Cloud Strage 에서 복사

gsutil cp gs://qwiklabs-gcp-00-337f72711928/echo-web.tar.gz .

- 압축 풀기
tar -xvfz echo-web.tar

 

 

3. Docker Build 및 Image Push

- Docker Build

- Image 확인

echo-app 이 생성된 것을 확인할 수 있다.

 

- GCR(Google Cloud Registry) 에 push 하기 위해서 Tag 를 변경해준다. 

export PROJECT_ID=$(gcloud info --format='value(config.project)')

docker tag echo-app:v1 gcr.io/${PROJECT_ID}/echo-app:v1

- Image 를 Cloud Registry 에 push

중간에 나는 project id 를 그대로 써줬는데 위에서 export 를 했기 때문에 ${PROEJCT_ID} 로 써줘도 된다.

 

4. GKE 에 Deploy 하기

Cloud Console  의 Container Registry 를 확인해 보면 위와 같이 push한 이미지를 확인 할 수 있다.

오른쪽에 ... 메뉴를 눌러보면 Deploy to GKE 버튼을 볼수 있다. 그걸 클릭한다. 

 

Image 는 "Exsiting conatiner images" 를 선택하고 좀전에 생성한 이미지를 선택해준다.

 

Application name 은 "echo-web" 이라고 해준다.

라벨에도 key에 app, value 에 echo-web 이라고 넣어준다.

Cluster 는 위에서 생성한 "echo-cluster" 를 선택한다.

그리고 "Deploy" 클릭.

 

5. 외부에서 접속 할수 있도록 expose 하기

 

Cloud Console 에서 Kubernetes Engine > Workloads 메뉴로 가면 echo-web 의 detail 정보로 들어가면 위와 같이 화면이 나온다.

화면 상단에 있는 Expose 버튼을 누른다.

 

port 를 80 으로 넣어주고 Target port 를 8080 으로 넣고 Expose 버튼을 누른다.

 

Expose 가 완료되면 위와같이 External endpoint 가 나타난다.

 

주소로 접속을 하게 되면 위와 같이 결과를 볼 수 잇다.

Cloud console 메뉴를 이용해서 만들었는데 직접 kubectl 명령어를 활용해서 만들어 보는것도 좋은 공부가 될것 같다.

 

 

 

 

728x90
반응형
반응형

 

올해 다시 시작된 한빛 미디어의 "나는 리뷰어다" 에서 처음 받은 책은 바로 카프카 관련 책이다.

한번쯤 어떻게 사용하는 것인지 공부 해봐야지 라고만 생각을 하고 있었는데 이렇게 책을 읽어볼 기회가 생겼다.

 

메세지 큐를 사용하는 어플리케이션을 만들기 위해서 잠깐 찾아서 써본 이후로 한번도 손대지 않았는데 그게 벌써 2년이나 지났다. ^^;

 

지금 이 글을 쓰는 시점에서 이 책을 다 읽어보지는 못했다. (실습을 해봐야 하기에...)

카프카의 배경부터 시작부터 설치까지 과정이 워밍업이라고 한다면 그 이후부터는 실제 사례들 중심으로 구성 방법에 대해서 설명을 해주고 있다.

특히 카프카가 어떤 기능이 있고 어떤 용도로 쓰일수 있는지에 대해서 링크드인 사례를 보여준 부분은 재미있었다.

 

그리고 이 책의 장점이라고 할수 있는 부분은 바로 다음과 같은 내용들이다.

 

왼쪽 사진은 실제 카프카로 구현하는 방법에 대해서 설명을 해주고 있는 부분이다. 어떻게 구현 될수 있고 구현을 하기 위해서는 어떤 점을 생각해야 하는지 알려준다. 그리고 후반부에는 소스레벨, 실제 실행 로그들도 보여준다.

 

오른쪽 사진을 보면 네모 박스에 "스트림 처리란?" 이라고 써있고 해당 주제에 대한 설명을 해주고 있다. 이 부분은 책 중간중간에 계속 나온다. 카프카를 사용하기 위해서 필요한 기본 지식이면서 꼭 카프카를 쓰지 않더라도 알아야할 지식들이다. 이런 내용들이 내게는 꼭 필요했고 책을 이해하는데 많은 도움이 되었다.

 

책을 다 읽으려면 좀더 시간이 걸릴것 같긴 하지만 잘 배워서 직접 활용해 보면 좋을 것 같다는 생각을 많이 했다.

 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

728x90
반응형
반응형

아래와 같이 쿼리를 실행하면 현재 설정되어있는 max_connection 수를 알수 있다.

 

select * from pg_settings where name = 'max_connections';

 

/etc/postgresql/{버전}/postgresql.conf

 

위 파일을 vi 로 열어서 max_connection 값을 설정해주고 재시작 하면 설정이 적용된다.

 

재시작 (권한이 없으면 앞에 sudo 붙이고)

/etc/init.d/postgresql restart

 

728x90
반응형
반응형

Cluster
- Node 의 집합이다.
- 가장 큰 시스템 단위, 하나 이상의 노드로 구성된다.
- 서로 다른 클러스터는 데이터 교환, 접근 불가능하다.

Node
Elasticsearch 를 구성하는 하나의 단위 프로세스

- Master-eligible Node
  node.master: true 
  cluster 를 컨트롤 한다.

 

- Data Node
  node.date: true
  data 관련된 일들을 수행한다 : search, CRUD


- Ingest Node
  node.ingest: true 
  문서 indexing 전에 ingest pipeline 을 적용한다


- Machine learning Node

Index
- 비슷한 특성을 가진 문서의 모음

Type
- 하나의 Index 에서 하나 이상의 Type 을 정의할 수 있다. 
- Index 를 논리적으로 분류/구분한 것이다.

Document
- Index 화 할수 있는 기본 정보 단위이다.
- Json 형식을 이루어진다.

Shard & Replica
- Elasticsearch 는 Index 를 Shard 라는 조각으로 분할하는 기능을 제공한다.
- 콘텐츠 볼륨의 수평 분할/확장이 가능해진다.
- 병렬화 함으로써 성능/처리량을 늘리수 있다.
- Elasticsearch에서는 색인의 샤드에 대해 하나 이상의 복사본을 생성할 수 있는데, 이를 리플리카 샤드(replica shard), 줄여서 리플리카라고 한다. 

    - 각 색인은 여러 개의 샤드로 분할할 수 있다.
    - 하나의 색인은 복제하지 않거나(리플리카 없음) 1회 이상 복제할 수 있다.
    - 복제되면 각 색인은 기본 샤드(복제 원본 샤드)와 리플리카 샤드(기본 샤드의 복사본)를 갖는다.
    - 샤드 및 리플리카의 수는 색인별로, 색인 생성 시점에 정의할 수 있습니다.
    - 색인이 생성된 다음 언제라도 탄력적으로 리플리카의 수를 변경할 수 있으나, 샤드 수는 사후 변경이 불가능하다.

기본적으로 Elasticsearch의 각 색인은 기본 샤드 5개, 리플리카 1개를 갖는다. 따라서 클러스터에 최소한 2개의 노드가 있다면 색인은 기본 샤드 5개, 리플리카 샤드 5개(완전한 리플리카 1개)를 가지므로 색인당 총 10개의 샤드가 존재하게 된다.

 

RDBMS  Elasticsearch 
shema  mapping 
database  index 
table  type 
row  document 
column  field 

 

참고 url 

http://blog.naver.com/PostView.nhn?blogId=takane7&logNo=221438265860&parentCategoryNo=&categoryNo=6&viewDate=&isShowPopularPosts=true&from=search 

https://www.elastic.co/guide/kr/elasticsearch/reference/current/gs-basic-concepts.html 

728x90
반응형

'Development > Elasticsearch' 카테고리의 다른 글

Window 에서 Elasticsearch 설치  (0) 2016.08.08
반응형

원래 테크닉은 안사는데 지후 선물로 주면 좋아할것 같아서 구매를 했다.

조립은 지후가 끝까지 직접 했는데 중간중간 움직이는 부품들이 보이니 더 재밌어 하는것 같았다.

 

상자는 간지가 난다.

그리고 차 색깔도 지후가 좋아하는 주황색이다. ^^

 

이렇게 조립을 하다 보면 구동부분들이 직접 움직여서 재미를 더 느끼는것 같았다.

실제 자동차들이 어떻게 움직이는지도 알수 있어서 흥미를 끌기에는 충분했다.

조립하는것을 보고 있는 나도 테크닉의 매력에 빠지게 되었다. (요즘 레고 산지 오래됐는데..)

 

조립이 완료되면 정말 깔끔한 모습이다.

운전석 문이 안열리는게 좀 아쉽긴 하지만 지후는 그래도 정말 만족해 했다.

내 레고 주종은 모듈러 건물인데...

이제 테크닉도 눈여겨 봐야 될것 같다. ^^

확실히 건물과는 다르게 또다른 재미가 있다.

728x90
반응형

'Enjoy Life > Lego' 카테고리의 다른 글

[10251] 브릭뱅크  (0) 2021.01.31
[21313] 병속의 배  (0) 2021.01.06
[10218] 레고 펫샵  (0) 2019.01.19
[31068] 레고 크리에어터 모던 홈  (0) 2019.01.13
[10242] 레고 크리에이터 미니쿠퍼  (0) 2018.12.16
반응형

GCP VM Instance 화면에서 ssh 버튼을 통하지 않고 Cloud Shell 에서 직접 SSH 를 접근 할 경우 쓰는 방법이다.

 

gcloud compute ssh --project [PROJECT_ID] --zone [ZONE] [INSTANCE_NAME]

 

cloud Shell 에 접근한후 다음과 같이 하면 된다.

 

먼저 instance list 를 조회한다.

 

gcloud compute instances list
NAME                          ZONE           MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP    STATUS
myinstance       us-central1-a  n1-standard-1                          10.128.0.2   146.148.43.62  RUNNING

 

그리고 위에 명령어처럼 아래와 같이 접근을 하면 된다.

gcloud compute ssh --zone us-central1-a myinstance

 

간단하네~

 

참고 사이트

https://cloud.google.com/compute/docs/instances/connecting-to-instance

728x90
반응형
반응형

마이크로 소프트의 A/S 정책이 정말 보증기간 내에서는 잘 대응을 해주는데 그 이후에는 아무런 조치를 받을 수 없다는게 정말 안타깝다. 

회사에서 sculpt ergonomic mouse 를 사용중인데 언제부터인지 좌클릭이 이상하게 동작하기 시작했다. 

한 1년전에도 이와 동일한 현상 때문에 지원을 받은 적이 있었는데 그때에는 보증기간이 지나지 않아서 아무런 조건 없이 새 제품으로 교환을 받았다. 교환 받을 경우 보증기간은 더 연장되는게 아니라 최초 보증기간을 따라가기 때문에 이번에는 아무런 조치를 받을 수 없었다. 

새로 살까 하던 찰나에 나와 비슷한 문제로 고생한 분이 직접 분해해서 수리한 글을 보게 되었다.

그래서 나도 따라서 고쳐보기로 했다.

 

 

우선 먼저 드라이버로 저렇게 틈을 들어서 살짝 들어올리면 오른쪽 처럼 겉 커버가 들리게 된다.

그때에 조금 힘을 줘서 들어 올리면 겉 커버를 분리 할 수 있다.

 

분리하면 왼쪽과 같이 생겼고 이제 오른쪽 사진과 같이 생긴 별 모양의 나사를 빼야 한다. 총 5군데에 나사가 있다.

 

나사를 분리 한 뒤에 가운데 휠도 분리를 해봤는데..

음. 이건 나중에 생각해 보니 굳이 분리할 필요는 없었다. 

 

 

 

 

참고 블로그 

https://lingel.tistory.com/483

 

Microsoft Sculpt Ergonomic Mouse 분해 및 더블클릭 수리

Microsoft Sculpt Ergonomic Mouse입니다. microsoft sculpt ergonomic mouse disassembly 인체공학 마우스로 사용시 손목에 무리가 덜 갑니다. 더블클릭 현상이 발생하였는데 AS기간이 지났습니다. 어쩔수없이..

lingel.tistory.com

 

728x90
반응형

'P's Life' 카테고리의 다른 글

2021년을 의미있게 보내기 위한 나의 자세  (0) 2021.01.11
2020년을 돌아보며  (0) 2020.12.31
10년 넘은 인라인에 새 생명을..  (0) 2020.03.15
맥북 힐링 쉴드 부착 완료!  (0) 2020.02.18
Grammary 구독 시작  (0) 2020.02.17

+ Recent posts