오랜만에 자바 포스팅하나를 작성하러 돌아왔습니다.


이번에 소개드릴것은 구글의 GSON 입니다.


GSON은 자바 라이브러리중 하나인데, 자바 오브젝트를 쉽게 JSON으로 변환시켜주는 아주 간단하고 심플한 라이브러리 입니다.


주로 Simple-JSON이나, JACKSON등 많은 JSON관련 라이브러리가 있는데요.


이 중에서 제가 사용해본 자바 라이브러리에선 가장 간편하고 편하지 않나 싶습니다.


먼저 GitHub 주소를 첨부하도록 하겠습니다.


GitHub Google Gson 바로가기 


Gson is a Java library that can be used to convert Java Objects into their JSON representation.

(Gson은 Java 객체를 JSON 표현으로 변환하는 데 사용할 수 있는 Java 라이브러리 입니다.)


라고 안내하고있습니다.


Gson은 자바객체를 -> JSON으로, JSON을 -> 자바객체로도 쉽게 표현 및 변환이 가능합니다.


자 그럼, Gson샘플 코드에 대해 알아보도록 하겠습니다.



GSON을 알아보자!


Gson은 jar파일로 바로 프로젝트에 연결시켜서 사용 할 수도있지만 Maven 프로젝트나 Gradle 프로젝트에서도 바로 연결하여 사용 할 수 있습니다.


해당 안내는 위 GitHub에 있지만 아래 첨부하겠습니다.


Gradle:

dependencies {
  implementation 'com.google.code.gson:gson:2.8.6'
}

Maven:

<dependency>
  <groupId>com.google.code.gson</groupId>
  <artifactId>gson</artifactId>
  <version>2.8.6</version>
</dependency>

Jar:
Gson jar 다운로드 Maven Central. 


* eclipse-jee-2018-09-win32-x86_64

* gson 2.8.6




저는, Jar파일을 받아 프로젝트에 Add시켰습니다.

그럼 간단한 샘플을 시작해보도록 하겠습니다.



1. Map -> JSON, JSON -> Map 


1
2
3
4
5
6
7
8
9
10
11
12
13
Gson gsonObj = new Gson();
    
Map<StringString> inputMap = new HashMap<StringString>();
inputMap.put("name""makesomething");
inputMap.put("blog""https://web-inf.tistory.com");
        
// MAP -> JSON 예제
String jsonStr = gsonObj.toJson(inputMap);
System.out.println("MAP -> JSON 예제 : " + jsonStr);
        
// MAP -> JSON 예제
Map map = gsonObj.fromJson(jsonStr, Map.class);
System.out.println("JSON -> MAP 예제 : " + map.toString());
cs


Map에서 JSON은 Gson객체 선언후 toJson, JSON에서 Map은 객체 선언 후 fromJson입니다.

단 fromJson은 변환 할 타입(Class)을 확실이 잡아주어야 합니다.


List등, CustomClass도 JSON으로 변환이 가능하고, 자바 객체라면 모두 변환이 가능 합니다.



2. JsonObject 만들기


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// JsonObject 생성
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("name""makesomething");
jsonObject.addProperty("blog""http://web-inf.tistory.com");
jsonObject.addProperty("boolean"true);
jsonObject.addProperty("int"12345);
        
System.out.println("JsonObject 생성 : " + jsonObject.toString() + "\n");
 
// String 리턴
System.out.println("JsonObject name(String) : " + jsonObject.get("name").getAsString());
System.out.println("JsonObject blog(String) : " + jsonObject.get("blog").getAsString());
 
// boolean 리턴
System.out.println("JsonObject boolean(boolean) : " + jsonObject.get("boolean").getAsBoolean());
 
// int 리턴
System.out.println("JsonObject int(int) : " + jsonObject.get("int").getAsInt());

cs


Gson에서 JsonObject 만드는 방법 입니다.

간단하게, JsonObject객체를 선언한 후에, Map처럼 addProperty로 데이터를 넣어주면 됩니다.

하지만 addProperty는 자료형 타입별로 넣어 줄 수 있고, 다시 Object에서 자료를 꺼낼때도 타입별로 리턴 받을 수 있습니다.

(sys.out.println의 마지막 .get부분을 보시면 타입별로 리턴받는것을 확인 하실 수 있습니다.)



3. JsonArray 만들기


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// JsonObject 생성
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("name""makesomething");
jsonObject.addProperty("blog""http://web-inf.tistory.com");
jsonObject.addProperty("boolean"true);
jsonObject.addProperty("int"12345);
                
System.out.println("JsonObject 생성 : " + jsonObject.toString() + "\n");
        
// JsonArray 생성
JsonArray jsonArray = new JsonArray();
jsonArray.add(jsonObject);
        
System.out.println(jsonArray.toString());
    
// JsonArray 0번 index에있는 jsonObject의 name을 string으로 리턴
System.out.println(jsonArray.get(0).getAsJsonObject().get("name").getAsString());
cs


JsonObject를 응용하여 JsonArray를 생성해보았습니다.

JsonArray에 만들었던 JsonObject(JsonElement)를 넣고, JsonObject안에 있는 name데이터를 String으로 리턴받는 예제 입니다.


JsonArray에서 ADD시 사용할수있는 메소드 입니다.

자료형 별로 구분되어있고 JsonElement는 JSON요소 모두를 의미합니다. (JsonObject, JsonArray등)



3. Gson Parse Pretty


1
2
3
4
5
6
7
8
9
10
11
12
13
14
// JsonObject 생성
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("name""makesomething");
jsonObject.addProperty("blog""http://web-inf.tistory.com");
jsonObject.addProperty("boolean"true);
jsonObject.addProperty("int"12345);
                
System.out.println("JsonObject 생성 : " + jsonObject.toString() + "\n");
        
// Parse Pretty
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String jsonOutput = gson.toJson(jsonObject);
        
System.out.println(jsonOutput);
cs


마지막으로, GsonBuilder옵션입니다.

Builder옵션은 더 많은 종류와 설정 메소드들이 존재하지만 그 중에서 Json을 이쁘게 출력을 해주는 Pretty 옵션 예제 입니다.

Gson 객체를 선언 후 setPrettyPrinting으로 변환해주면 결과 값이 개행이 잘되어 나타납니다.




결과값입니다. 예쁘게 개행이 된 것을 확인 할 수 있습니다.



이렇게 Gson은 명확히, 자료형으로 데이터를 넣을수있고 리턴받을수있게 구현이 되어있습니다.

속도도 빠르며, 코드가 더욱더 깔끔해지며 JSON을 사용하기가 편리합니다.


다만 단점을 꼽자면, 코드가 조금 길어지는 느낌도 있습니다.


하지만, 개발자 입장에서 봤을때 한눈에 알아보기가 쉬운 장점이 있습니다. (저만 그럴수도있어요..)


저는 Gson을 만난 후 다른 Json라이브러리는 특수한 상황이 아니라면 Gson만 사용하네요.ㅎㅎ


이상으로, Gson 포스팅을 마치도록 하겠습니다.

감사합니다.


반응형


먼저 이전 포스팅에 대한 내용은 아래 링크를 참고해주세요.


티스토리 블로그 광고 수익 창출! - 애드센스 가입하기(Google AdSense) - ①


애드센스 가입신청을 한지 1일째 되는 시간에..


바로 애드센스 결과 알림 메일이 왔습니다.


결과 부터 말씀드리자면, 이유불문한 '거절' 이네요.


또 자료를 검색해본결과.. 재신청 혹은 몇개의 글을 더 작성하고 재신청시 승인 처리해주는 경우도 많이 있더라고요.


우선! 저는 한 주간 더 포스팅을 해보고 재도전을 해볼생각 입니다.




'무언가.. 이유는 알수없지만 너는 그냥 거절이야'


같은 느낌.. 기분은 안좋네요.


더욱 분발해서 글을 작성후 재도전을 해보아야겠습니다.


승인이 날때까지 도전은 계속됩니다!


위 스크린샷을 참고하시고, 도전을 해보도록 하겠습니다.


티스토리 블로그 광고 수익 창출! - 애드고시 승인! 자동광고 설정(Google AdSense) - ③


티스토리 블로그 광고 수익 창출! - 수동광고 설정/광고단위 설정(Google AdSense)(完) - ④



반응형


안녕하세요.


오늘은 티스토리 블로그에 광고 수익을 창출하기 위해 구글의 애드센스 광고를 탑재(?) 삽입 및 가입 하는 방법을 작성해보려 합니다.


저도 아직 처음으로 알아보고 시도 하는 것이라  진행하면서 같이 가이드를 작성하려 합니다.


먼저 구글의 승인과정을 거쳐 가입에 성공해야하며, 그 이후 광고를 게재 할수 있는 것 같습니다.


지금 이글을 작성하고 있는 시점도 구글 애드신청을 가입신청 해놓은 상태이며, 최종 승인이 난다면 다음 포스팅으로 2탄을 마무리 하려합니다.


그럼 구글 '애드센스 가입하기' 시작하겠습니다.



구글 애드센스(Google AdSense) 가입하기 



자, 먼저 구글 애드센스 가입을 하기 위해서 구글 애드센스 가입사이트에 들어 가야겠죠?

아래 링크를 통하여 들어가주세요.


구글 애드센스 가입 페이지 이동하기!


성공적으로 가입 페이지에 들어오셨다면, '지금 가입하기' 버튼을 눌러주세요.




가입양식을 채워주시면 됩니다.

자신의 블로그 주소 혹은 홈페이지 주소, 이메일 주소, 등록한 주소로 애드센스 관련 광고 메일을 받을것인지 체크하고


'저장하고 계속하기'를 눌러줍니다.



두번째 가입 양식 페이지 입니다.


국가 또는 지역을 선택해주세요.


저는 대한민국에 거주중이며, 대한민국 사람이기때문에 '대한민국'으로 설정하였습니다.



국가를 '대한민국'으로 설정하게 되면, 아래 약관이 나타나게 됩니다.


약관을 읽어보시고


'예, 이용약관을 읽고 동의했습니다.' 를 체크하시고 '계정 만들기'를 눌러주세요.


계정 만들기 버튼을 누르면 다음은 결제정보를 설정하라는 페이지가 나옵니다.

제가 스크린샷을 못찍었네요.


뒤로 돌아가기를 눌러도 되지를 않기에..


여기에 글로써 설명을 드리겠습니다.


구글 계정에 결제정보를 한번이라도 등록해본적이 있으신 분들은 상관이 없습니다.


하지만 한번도 없으신분들은, 거주지 주소, 결제정보등을 요구 합니다.

나중에 광고료를 정산받을 목적으로 요청하는것 같습니다.


양식에 맞춰 작성하시면 됩니다.



그다음 화면은, 사이트 연결 화면 입니다.


애드센스 코드 라는것을 블로그 혹은 홈페이지에 <head>태그 사이에 집어 넣고 인증을 하는 과정이 있습니다.


해당 코드를 삽입하는방법은 티스토리 블로그 기준으로 설명드리겠습니다.



티스토리 블로그 관리자 메뉴에 들어가면 '스킨 편집' 메뉴가 있습니다.

들어가주세요.




그리고 블로그 'HTML편집' 이라는 버튼을 눌러주시면 위 화면과 같이 나옵니다.


지금 스크린샷으로 대충보게되면 제가 '빨간색 박스로' <head></head>사이를 표시해뒀습니다.


저 사이에 구글 애드센스 코드를 집어 넣으시면 됩니다.


확대한 화면입니다.

일부는 제가 가려놓았지만, </script>태그 밑에 바로 삽입을 하였습니다.




삽입을 완료하시고, 다시 구글센스 웹사이트로 돌아오셔서


'코드를 사이트에 붙여넣었습니다.' 를 체크하시고 '완료'를 누르시면 됩니다.


그럼 위와같은 화면이 나타납니다.



최종적으로 확인을 누르면 '검토중' 화면이 나타나게되고 신청이 완료됩니다.



이로써, 구글 애드센스 가입방법에 대한 포스팅을 마치도록 하겠습니다.



티스토리 블로그 광고 수익 창출! - 애드센스 승인 거절(Google AdSense) - ②


티스토리 블로그 광고 수익 창출! - 애드고시 승인! 자동광고 설정(Google AdSense) - ③


티스토리 블로그 광고 수익 창출! - 수동광고 설정/광고단위 설정(Google AdSense)(完) - ④



반응형


리눅스에서는 NFS를 많이 사용하지만, 리눅스와 윈도우 서버 혹은 SAMBA등 네트워크 공유폴더 및 데이터를 연결 혹은 공유하기 위해서는 CIFS를 사용하는 경우가 많습니다.


쉽게 말하여, 윈도우 공유폴더를 리눅스 공유폴더로 지정하는 프로토콜로 생각하시면되겠습니다.

오늘은 내부망에서의 SMB와 라즈비안(리눅스)에 연결 하여보겠습니다.


해당 테스트환경은 라즈베리파이에서 진행하였고, 리눅스도 명령어는 동일 합니다.



CIFS 마운트 하기! 




먼저 CIFS명령 권한은 ROOT에서 내려집니다.

ROOT로 접근하여 작업하도록 하겠습니다.

'su -' 입력후 패스워드 입력 후 접근




간단합니다.

띄어쓰기는 유의 해주세요!


'mount -t cifs //192.168.0.123/test /home/test -o uid=1000,gid=1000,username=user,password=1234'


파란색 : 외부연결 경로

빨간색 : 리눅스 내부연결 경로

uid,gid : 권한(사용자 이름)

username : 외부연결 로그인 계정

password : 외부연결 로그인 비밀번호


해당 명령을 읽어보자면, 외부에있는 test폴더를 user/1234로 로그인하며 /home/test폴더에 사용자ID가 1000을 권한으로 마운트 시킵니다.


이렇게한다면 CIFS 마운트가 끝이납니다.




CIFS 자동 마운트 하기! (재부팅 후 자동마운트)


CIFS마운트이 후 리눅스환경을 재부팅 후에도 다시 명령어를 입력하기는 귀찮습니다.

그러므로, 자동으로 외부데이터를 연결하는 작업을 하도록 하겠습니다.



앞서 CIFS와 동일하게 ROOT로 접근하여 작업하도록 하겠습니다.

'su -' 입력 후 패스워드 입력 후 접근



부팅시 마운트를 영구적으로 적용해주는것을 설정하는 파일이 'fstab' 입니다.

'vi /etc/fstab' 입력 후 접근



해당 주석 바로 윗부분에 해당 명령을 추가 해줍니다.

앞서 설명 드린 CIFS 구문과 굉장히 유사하며 사실상 기능은 동일 합니다.


'//192.168.0.123/test /home/test cifs user=test,pass=123,uid=1000,gid=1000 0 0'


똑같이 띄어쓰기에 유의해주세요.


해당 외부경로의 폴더를 내부의 폴더의 마운트를 시켜주며, 접근권한을 설정하는 구문 입니다.


하나 다른점을 찾아보자면, 마지막 '0 0' 옵션이 들어가는데요.

해당 옵션은 '백업 여부', '무결성 검사' 여부를 체크 합니다.

(두 옵션다 0일경우 백업 및 검사를 하지 않습니다.)


해당 설정을 마치고 저장을 해주세요.



저장이 완료되었다면, 'mount -a' 를 입력해주세요.

해당 명령 구문이 정상적으로 입력이 되었다면 에러가 노출되지 않습니다.


그리고 최종 정상 마운트가 되었는지 확인 후 'df' 명령어를 통해 확인을 합니다.

정상 마운트가 되었군요.



이제 재부팅(reboot)을 통하여 정상적으로 자동마운트가 되는지 확인을 합니다.

자동마운트가 되었다면, 영구적용에 성공한 것 입니다.




라즈베리파이에서 CIFS 자동 마운트가 되지 않을 경우!


라즈베리파이는 부팅시에 기본적으로 네트워크를 연결하지 않습니다.

(기본적으로 라즈베리파이는 최대한 가볍게 설정이 되어있습니다. 많은 옵션들이 Default로 Disable된 경우가 많습니다.)


그러므로, 외부연결 마운트도 자동적으로 진행을 할 수가 없습니다.

해당 네트워크 연결을 'enable'해주는 작업을 진행하도록 하겠습니다.



먼저 ROOT로 진입 합니다.

앞서 설명을 드린대로 'su -' 로 접근하시면 됩니다.


그리고 라즈베리파이의 설정화면으로 진입 합니다.

명령어는 'raspi-config' 입니다.



진입에 성공 했을시 화면 입니다.

해당 화면은 버전별로 차이가 있을수 있습니다.


기능은 동일 합니다.


'3. Boot Options' 에 진입을 해줍니다.



Boot Options에 진입하셨다면, 'B2 Wait for Network at Boot~'을 선택 진입 해줍니다.



부팅 시 네트워크 연결이 될때까지 기다릴껀지 묻습니다.

'네' 로 설정합니다.



활성화가 정상적으로 되었습니다.


해당 설정 완료후, 재부팅 후 자동 마운트가 되는지 확인을 해보시면 되겠습니다.

이상으로 라즈베리파이 및 리눅스의 CIFS 마운트설정을 마치겠습니다.


반응형

'IT > Linux' 카테고리의 다른 글

CentOS 아파치 상태/재시작/시작/중지 명령어  (0) 2018.10.25


지난 부하 분산기 포스팅에 이어서, 프런트 엔드쪽에 SSL 443포트 설정을 하는방법을 정리하도록 하겠습니다.


HTTP 80포트는 기본적으로 별도의 설정이 필요없이 설정이 가능하지만, SSL 443 포트 보안HTTP(HTTPS) 접근은 별도의 인증서를 발급받으셔야 가능합니다.


사전 로드밸런서 설정 포스팅은 아래의 링크로 바로 확인 하실수 있습니다.


GCP 인스턴스그룹 HTTP 로드밸런서 생성하기 (InstanceGroup, Load Balancer)

 

※ 사전 인증서를 미리 발급을 받으셔야지 설정을 할 수 있습니다.



 부하 분산기 SSL 설정하기!



전 지난 부하분산기 설정을 했던, 부하분산기를 수정하여 작업을 진행하겠습니다.


설정을 수정하실부분은 '프런트 엔드' 부분밖에 없습니다.


프런트 엔드 구성을 선택하시고,  새 프런트 엔드 IP 및 포트를 설정해주세요.



프로토콜을 HTTPS로 설정을해주시고 인증서를 선택해주세요.



'새 인증서 만들기' 버튼을 눌러주세요.



인증서는 공개키, 비공개키, 체인 파일로 구성되게 됩니다.


인증서를 지칭할 이름을 선택해주시고, 사전에 인증받은 인증 키파일을 확인해주세요.


공개키, 체인, 비공개키 업로드과정이 필요합니다.


저는 사전에 anycert에서 발급받은 인증키 파일로 업로드를 진행하였습니다.

애니서트에서 발급을 받게되면  3가지 파일을 받을수 있습니다.



해당 파일 구성은 이렇게됩니다.

(blahblah는 제가 별도로 편집한 텍스트 문구 입니다.)


3가지 모두다 업로드를 진행을 완료하신후 좌측에 인증서 정보가 잘 나타나는지도 확인해주세요.


그리고, 생성을 누릅니다.



생성된 인증서를 설정하시고, 완료를 눌러주시면 끝 입니다.



새롭게 구성된 HTTPS 프로토콜을 확인 하실수 있습니다.


설정값이 맞다면, 업데이트를 눌러 최종 부하분산기 수정을 마쳐주세요.





마지막으로, 인증서가 제대로 적용이 되었는지 확인을 합니다.

SSL을 유효한지 체크해주는 툴 입니다.

(아래 링크로 이동하시면 됩니다.)


:: SSL TOOLS DIGICERT.COM ::




input text에 해당 SSL주소를 입력하시고 체크를 눌러주세요.

정상적으로 설정이 되었다면, 초록색 체크와 함께 설정하신 주소로 키값등 Valid를 확인하실수있습니다.



이상으로 GCP 로드밸런서 SSL설정편을 마치겠습니다.

감사합니다.


반응형


구글 클라우드에서 고정 IP 주소 예약을 해보도록 하겠습니다.

구글 클라우드에서 VM 인스턴스를 생성 직후, IP주소는 임시 예약주소 임의로 고정 IP주소를 예약후 지정을 해주어야 합니다.


간단하게 고정 IP 주소를 예약하고 인스턴스가 있다면, 인스턴스를 고정IP주소로 잡는방법을 정리해보도록 하겠습니다.



VPN 네트워크 고정 IP 주소 예약하기!



구글 클라우드 플랫폼에서 프로젝트를 생성하신뒤, VPC네트워크 메뉴로 접근합니다.

VPC네트워크 서브메뉴로 '외부 IP 주소' 메뉴로 들어와 설정하시면 됩니다.


'고정 주소 예약' 버튼을 눌러 설정을 시작합니다.



고정 주소 예약은 이름, 네트워크 서비스 계층, IP버전 설정, 지역, 리전, 연결대상(있다면) 설정해주면 됩니다.


네트워크 서비스 계층에서 프리미엄, 표준으로 나뉩니다.


프리미엄은 트래픽이 Google의 고품질 글로벌 백본을 통해 전달되어 사용자와 가장 가까운 Google 에지 피어링 지점에서 송수신됩니다.

표준은 트래픽이 송수신 대상인 Cloud 리전과 가장 가까운 피어링 지점에서 Google 네트워크로 송수신됩니다. 


라고 구글에서 가이드 하고있지만, 백본전달과, 가까운 리전 전달.. 별차이 없어보입니다.

하지만, 프리미엄을 괜히 프리미엄이라 부르지 않겠지 싶어 프리미엄으로 설정하였습니다.


유형으로 인스턴스 또는 네트워크 부하 분산기에 대해 고정 IP 주소를 예약하는 경우에는 지역을 선택합니다. HTTP(S), SSL 프록시 또는 TCP 프록시 부하 분산기에 대해 고정 IP 주소를 예약하는 경우에는 전역을 선택합니다.




마지막으로 생성해둔 인스턴스가 임시주소로 사용되고있다면, 연결대상을 해당 VM인스턴스를 잡아주시고 '예약'하시게 되면 고정IP주소로 예약되어 설정 됩니다.



이상으로 GCP 고정 IP 주소 예약방법을 마치겠습니다.

감사합니다.


반응형


인스턴스 그룹생성에 이어, 로드밸런서 생성 및 구성 해보겠습니다.

로드밸런서는 네트워크 부하분산 제품 입니다.


로드밸런서를 통해 네트워크로 들어오는 트래픽을 설정한 인스턴스 그룹에 분산처리 해줍니다.


또한, 인스턴스그룹에 자동확장(Auto Scaling)설정이 되어있다면 자동증설 처리가 가능합니다.


Google Cloud Platform Load Balancer 설정에대해 정리 해보겠습니다.



인스턴스 그룹, HTTP 로드밸런서 설정하기!



먼저, 구글클라우드 플랫폼 프로젝트를 생성하시고 네트워크 서비스 메뉴를 들어갑니다.


네트워크 서비스 메뉴에 서브메뉴로 '부하 분산' 메뉴를 선택하시면 됩니다.


'부하 분산기 만들기'를 선택해주세요.



부하분산기도 3가지 종류로 나뉩니다.

(HTTP, TCP, UDP)


제가 설정할 인스턴스 그룹은 HTTP부하분산을 필요로 하기때문에 'HTTP부하분산'을 설정하겠습니다.

구성 시작을 눌러주세요.



HTTP 부하분산기 생성을 시작하면 크게 '백앤드 구성', '프론트 앤드 구성'를 설정하면 부하분산기 설정은 끝이납니다.

먼저, 백엔드 구성의 '백엔드 서비스 만들기'를 눌러 백앤드 구성을 시작해보겠습니다.



백엔드 서비스는 제가 이전에 생성한 인스턴스그룹 혹은 네트워크 엔드포인트 그룹을 설정 할 수있습니다.

이전에 생성한 인스턴스 그룹을 부하분산하기위한 목적이기때문에 '인스턴스그룹' 으로 진행하고 생성해둔 인스턴스 그룹을 설정합니다.


(인스턴스 그룹 생성에 대해 정보가 필요하신분은 아래 링크로 확인해주세요.)

:: GCP 인스턴스 그룹 설정하기 ::


인스턴스 그룹을 통해 들어올 포트번호를 설정해주고, 분산모드 사용률 정책을 설정해줍니다.

최대 CPU사용률은 인스턴스 그룹내의 인스턴들의 CPU사용율을 의미합니다.

속도의 경우는 인스턴스 그룹에 전달할수있는 초당 최대 요청수를 의미합니다.


CPU사용률을 기준으로 부하분산기는 인스턴스 그룹의 최대 CPU사용율에 도달하였을경우, 부하분산기에 알리게되며 가장가까운 리전에 새로운 요청을 하게 됩니다.


백엔드 설정을 마친뒤 생성을 눌러주세요.



백엔드 구성을 마치면, 호스트 및 경롤 규칙이 생성 됩니다.

이제 '프런트 엔드 구성'을 시작합니다.


프런트 엔드는 로드밸런스의 입구를 의미합니다.

프런트 엔드로 들어온 트래픽 -> 백 엔드 구성된다고 생각하시면 됩니다.


프런트 엔드는 프런트 엔드의 이름, 프로토콜, IP설정을 해주시면 끝이납니다.



설정중 IP를 따로 고정시키지 않는다면, 임시 IP주소로 설정되며 임시IP는 바뀔수가 있습니다.


그러므로, 로드밸런서의 고정IP주소를 예약해줍니다.

고정IP주소를 예약하게될 경우, VPC네트워크 메뉴의 외부 IP주소 에서 생성된 주소를 확인 할 수 있습니다.



고정 IP주소까지 설정을 마친 뒤, 완료를 누릅니다.



최종 백엔드와 프런트 엔드 설정값을 확인 한 뒤 '만들기' 버튼을 눌러 구성을 마칩니다.


이로써, 부하분산기를 통해 프런트 엔드에 설정된 IP주소로 인스턴스 그룹에 접근 할 수 있게 되었습니다.



부하분산기의 트래픽관리로 인스턴스 그룹의 오토스케일링 및 트래픽관리가 가능해졌고 인스턴스 그룹의 인스턴스들의 IP설정 또한 필요가 없어졌습니다.

다음은 로드밸런서 프런트 엔드의 HTTPS (SSL) 설정에대해 정리 하도록 하겠습니다.


감사합니다.


반응형


요즘 구글클라우드 제품들을 많이 사용하고 있습니다.

기존에는 구글제품의 API를 늘 사용하였었지만, 본격적으로 클라우드도 구글클라우드로 이관 및 작업하고있습니다.


그중 Compute Engine의 인스턴스를 그룹화시켜 추후 작업량 및 부하가 많아질때 자동확장을 대비할수있는 인스턴스 그룹에 대해 생성 설정하는 방법을 간단하게 정리하였습니다.



GCP 인스턴스 그룹(InstanceGroup)생성 가이드  



먼저 구글 클라우드 콘솔에 접속하여, 프로젝트를 생성하고 Compute Engine제품 사용을 설정하시면 됩니다.

Compute Engine 메뉴로 들어오시면, 인스턴스 그룹의 서브 메뉴를 확인 하실수 있습니다.


일반 VM 인스턴스와 인스턴스 그룹의 차이점은 VM인스턴스는 단일 서버를 생성할때 사용되고 인스턴스 그룹은 VM인스턴스를 그룹단위로 묶어주는것과 트래픽이 초과되었을때 다이나믹하게 조절이 가능합니다.


먼저, 인스턴스 그룹을 생성을 위해서 '인스턴스 그룹 만들기' 버튼을 눌러 생성을 시작합니다.




자동확장 (Auto Scaling)을 위해서 관리형 인스턴스 그룹으로 생성하였습니다.

인스턴스 그룹을 지정할때 '인스턴스 템플릿' 이라는 개념이 필요합니다.


인스턴스 템플릿의 경우는 미리 자동확장 할 템플릿을 스냅샷,이미지으로 템플릿화 시켜서 자동확장이 필요시 해당 템플릿을 증설시키는 역할을 합니다.


1. 인스턴스 그룹 명

2. 위치(저는 단일 영역으로 타이완 잡아주었습니다.)

3. 인스턴스 템플릿

4. 자동확장


설정해주시면 됩니다.

먼저, 인스턴스 템플릿을 생성해보겠습니다.




인스턴스 템플릿 입니다.

자동으로 증설할 서버 스펙을 설정해주고, 미리 사전 생성해놓은 이미지가 있다면 부팅디스크로 지정하시면 됩니다.

그리고 HTTP, HTTPS 트래픽을 허용해야하는 서버라면 체크 해주시면 됩니다.


해당 설정을 마치시고 인스턴스 그룹에서 설정을 해주신다면, 설정하신 인스턴스 갯수만큼 생성이되고 추후 자동증설시 해당 템플릿이 자동생성 됩니다.




템플릿 설정을 저장 후

다시 인스턴스 그룹 설정으로 돌아옵니다.


자동 확장을 사용하시려면, '켜기'를 설정해주시면됩니다.




자동확장 정책은 위와 같습니다.


1. CPU 사용량

2. HTTP 부하 분산 사용량

3. Stackdriver Monitoring 측정항목

4. 여러 측정항목


정책은 해당 서버에 맞는 정책을 설정해주시면 되겠습니다.



그후, 인스턴스 그룹을 저장하면 지정한 인스턴스 수 만큼 템플릿으로 설정 값으로 생성이 시작되고 완료가 됩니다.


생성이 완료된 화면을 스크린샷을 하였습니다.



생성된 인스턴스 그룹을 클릭해서 들어가시면

그룹내의 인스턴스를 확인 할 수 있습니다.

(해당 인스턴스는 'VM인스턴스' 메뉴에서도 확인 할 수 있습니다.)



인스턴스 그룹을 생성하면서 생성한 '인스턴스 템플릿' 메뉴에도 들어가봤습니다.

인스턴스 스펙과, 이미지등이 저장되어있고 해당 인스턴스 그룹에 사용되고 있다고 표시 되고 있습니다.


이렇게 구글클라우드 인스턴스 그룹 생성 방법을 마치겠습니다.

생성된 인스턴스 그룹을 로드밸런서 부하분산기를 설정을 마쳐야 자동확장 및 인스턴스 그룹사용을 본격적으로 할 수있습니다.


다음 포스팅은 Gcloud Load Balancer 설정에대해 설명 드리겠습니다.

감사합니다.


반응형

+ Recent posts