terraform-provider-ncloud-review

오늘 하시코프x네이버클라우드 웨비나에서 terraform 과 Vault 에 대한 웨비나를 청취했습니다.

https://github.com/NaverCloudPlatform/terraform-provider-ncloud

이전에 방과후(?) meetup에서 네이버클라우드가 테라폼의 프로바이더로 있다는것을 알았습니다. 그 덕분에 네이버클라우드에서 terraform은 이미 경험이 있는 상태고, Vault도 경험이 있었습니다. 오늘의 주제 중 Secrets Engines이 궁금했습니다.

https://www.vaultproject.io/docs/secrets

Secrets engines are components which store, generate, or encrypt data.

시크릿엔진은 데이터를 저장또는 생성하고 암호화하는 구성요소.

AWS 의 Parameter Store / Secrets Manager 와 비슷한 기능을 한다고 생각이 들었습니다. 다른 벤더에서도 비슷한 서비스들이 있습니다.

https://hackernoon.com/aws-secrets-manager-vs-hashicorp-vault-vs-aws-parameter-store-bcbf60b0c0d1

https://www.cloudjourney.io/articles/security/aws_secrets_manager_vs_hashi_vault-su/

가장 일반적인 사용예라 생각되는것은, access key의 암호화라 생각됩니다. 일반적으로 aws-vault 같은 명령어로 지원합니다.

아직 ncp-vault 가 만들어진게 아니라, ncp 내에서 사용하기엔 좀 불편한 부분이 있으리라 생각됩니다. 현재 npc 는 provider로 등록된 상태고 cli 를 지원하므로 차차 지원하리라 생각됩니다.

https://www.44bits.io/ko/post/securing-aws-credentials-with-aws-vault#%ED%85%8C%EB%9D%BC%ED%8F%BCterraform%EC%97%90%EC%84%9C-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0

aws 에서의 vault 사용예입니다.

https://www.vaultproject.io/docs/secrets/databases/mysql-maria

mysql-maria db의 user 암호화입니다.

이런 방법이 필요한 이유는 결국 어플리케이션 소스의 탈취로 문제를 방지하기 위함입니다. key의 자동로테이션이나, expire time 을가진 key 발급등을 할 수 있습니다.

Vault 는 근래에 들어서 굉장히 핫한 오픈소스라 테스트 해보시는게 좋을것 같습니다.

마무리를 하자면..

템플릿 소스들이 점점 쌓이고 사용예가 늘면 IaC는 점점 더 일반화 될것입니다.

미리미리 IaC를 준비하고 사용방법을 익히는것도 좋을것 같습니다.

조만간 Secrets Engines 사용하기 위해 자동화 스크립트를 적용하는 고민을 한번 해보려 합니다. 시간이 나면 한번 테스트 해봐야겠습니다.

읽어주셔서 감사합니다!

NCP-VPC-Update

드디어 NCP 에도 VPC가 업데이트 되었습니다.

VPC 모드로 전환하면 파란색으로 인터페이스가 전환됩니다.

금융존은 주황색

TMI는 여기 까지고 VPC를 생성해 보겠습니다.

아직 none-rfc-1918은 지원하지 않습니다. 다른 벤더에서도 rfc1918을 쓰는것을 권장하지만, none-rfc-1918의 필요성이 가끔 있으므로 차차 업데이트 되지 않을까 생각됩니다.

VPC 이름에는 대문자를 사용할 수 없습니다.

생성할떄 public / privite 으로 지정해서 만들게 됩니다. 인스턴스를 생성할때 public 으로 생성하면 인스턴스 용도로만 사용할수있고, private 으로 생성하면 로드벨런서 용도와 일반용도를 나누어서 생성할수 있습니다.

AWS 에서 계층화 된 서브넷의 구성에서 자유도를 빼놓은 구성같습니다.

사용자가 선택할수 있는 pub/pri 구분은 서브넷을 생성할 때 만 결정할 수 있는 것 입니다.

라우팅 테이블의 메뉴가 있긴 하나, 이 라우팅 테이블은 서브넷간 통신과 VPN 통신등을 컨트롤하는거고 public / privite 은 한번 설정하면 수정할 수 없습니다.

일단 VPC 와 Subnet을 생성했으니, 한번 classic 모드와 VPC 모드 전환시도를 간단하게 진행해 보겠습니다.

classic 모드에서 인스턴스를 생성하고, 이생성한 인스턴스를 이미지로 만든후 vpc에서 이미지로 인스턴스를 생성해보겠습니다.

생성된 서버이미지를 이제 VPC 모드에서 보겠습니다.

안보입니다.

여긴어디 나는누구........그럼 어쩌지...vpc mode 로 전환 어쩌지..

짤봇!

아직 전환할수 있는 지원은 안나온거 같고..서로 풀을 공유하지 않는것으로 보입니다.

vpc 모드의 살펴보기를 이만 마치겠습니다.

NAVER-Cloud-Platform-Certified-Professional-exam-review

안녕하세요. 누리클라우드 / 호스트센터 의 정태환입니다.

얼마전에 NCA 시험을 봤고 후기를 공유했습니다.
그 이후에 급하게 NCP 시험을 준비했습니다.

시험 일정의 제한 때문에 7월 9일, 16일 21일 해서 세차례의 시험을 보았고 합격하였습니다.

NCP시험은 일단 필기와 실기로 나누어져 있습니다.

필기는 NCA시험과 동일하고 문항수는 troubleshooting은 30문항 나머지는 40문항이었습니다. 합격점은 60%로 NCA과 동일합니다. 그렇지만 생각보다 난이도가 있었습니다.

첫번째로 NCP 시험은 아키텍트나 개발자의 시험이 아닙니다. 특정 역할에 대한 시험이 아닌, NCP USER에 대한 시험이라 봐야 합니다. 거기에 덧붙여서 USER 로서의 사용법과 상식을 시험한다 정도로 생각하면됩니다.

NCA 시험보다 NCP 시험이 좀더 수월한 느낌이었습니다.

저는 troubleshooting 을 먼저 보고 나머지 과목을 봤는데요, 사실저는 SE라 은근 자신있었던 부분이긴 합니다. 그래서 시험을 얼른보고 싶어서 7월 14일 부터 17일 까지 NCP pro 교육에 참가하기로 신청해놓은 상태에서 미리 시험을 봤습니다.

troubleshooting - 207

troubleshooting 은 정말 재미있는 과목입니다. 리눅스 윈도우 NCP의 문제가 생겼을떄 어떻게 처리를 해야하는지를 주로 물어보는 과목이었거든요.

예를 들어서 실무에서 이야기를 해보자면, 콘솔에서 확인했을떄 인스턴스의 CPU 부하가 높은상태라면.. 인스턴스에 접속해서 어떤 프로세스에서 CPU점유가 높은지 확인할것입니다.

이때 linux 라면 ps afuxwww 나 top, htop 등의 명령어를 이용해서 부하를 확인할것이고
windows라면 작업관리자라던가 PerfMonitor 같은 서드파티 툴을 이용한 분석을 할것입니다.

이것처럼 NCP의 시험은 심화적인 내용은 아니지만 기본적으로 시험을 통해 실무에서 사용할 내용들이 출제되었습니다.

엔지니어로서 트러블슈팅을 항상 가까이하는 저로서는 나름 즐거운 내용의 과목었습니다.

또한, 실기는 NCP console를 보고 ssh 로 접속하여 제시된 여러문제를 풀어나가는 문제였는데, troubleshooting은 NCP 콘솔에 어느정도 익숙한 상태이고, Loadbalancer에 대해 사용경험이 있어야 했습니다. 저 같은 경우엔 출제자의 의도를 잘못 이해하여 설정하는 방법은 모두 알고있었으나, 1문제를 다른 방법으로 해결하려 했습니다. 다행히 2문제는 정확하게 푼상태라 합격할수 있었습니다.

두번째로 7월 16일에 응시한 Compute / Storage 는 Domain에 Overview 가 있습니다.

Overview,Compute/Storage - 200

Overview 는 NCP 전반적인 서비스에 대한 질문을 하므로 서비스 마다 대략적인 설명을 할수 있어야 합니다.

Cloud Hoop은 NCP에서 만든 apache Hoop 을 이용해 개발한 분석 서비스입니다. 이와같이 간략하게 나마 서비스에 대한 카테고리와 정의 정도는 알고있어야 합니다.

또한 RUA(Real User Analytics) / ELSA (Effective Log Search & Analytics) 같이 서비스의 명칭을 줄이기도 하므로 서비스의 이름은 꼭 다 알고 있는것이 좋습니다.

저또한 모든 서비스를 알고있는것은 아니었기에.. 시험을 보면서 모르는 문제가 속출했습니다.

필기는 서버유형에 대한 질문이나 파라메터의 최소값 최대값에 대한 문제들도 있었으니, 외움이 필요한 내용도 은근 있었습니다.

실기는 주가되는 내용은 Compute 와 Nas 설정이었습니다. Linux 명령어에 대한 이해와 Compute / Storage 에 대한 실습은 두가지 카테고리에 속한 서비스가 많지 않으니 처음부터 끝까지 한번씩만 해보신다면 어려울게 없다 생각되는 실습이었습니다.

마지막으로 7월 21일에 응시한 202 Network / Media Database / Management / Analytics 시험은 NCP 에서 주관하는 [7월] 네이버클라우드플랫폼 공인교육 - Professional 을 전주에 마치고 시험을 응시했습니다.

교육에서는 DB 생성 fali over, 미디어 서비스 특성들을 골고루 교육받은 다음에 진행하였습니다.

Network / Media Database / Management / Analytics - 202

인상적인 서비스는 미디어 카테고리의 Image Optimizer 였습니다.

이 서비스는 AWS Lamdba@edge 로 고객사의 요청에 의해 리사이즈 하는 기능을 구현해본적이 있는 서비스 였습니다. 간략하게 설명하자면 Image Optimizer는 오브젝트 스토리지에 있는 이미지를 CDN으로 캐싱할때 URL request로 파라메터를 입력받아 입력받은 값대로 이미지를 가공한다음 CDN에 캐싱하여 동일한 URL과 쿼리로 request할 경우 CDN에서 가공된 이미지를 제공하는 서비스입니다.

이때 Lamdba@edge에 익숙하지 않아서 반나절이상 헤멘기억이 납니다. 그런데 NCP에선 3분이면 생성하고 사용하고. 더욱 다양한 기능들이 추가되있는것을 보고 굉장히 감탄했습니다.

기본적으로 공부방법은 동일합니다. 카테고리에 속한 모든 서비스를 일단 생성 및 주요기능들을 테스트 합니다. 생성만하고 인터페이스를 익히는것만으로도 굉장히 도움이 됩니다. 그 이후에 일반적인 개념의 공부가 추가되어야 했습니다.

subnet 서브넷에 대한 개념이 없이는 풀수 없는 문제가 있었습니다. subneting 에 대한 기본적인 이해는 있어야 했습니다.

NCA 에서 했던 과목들이라 좀 익숙한 부분도 있었지만 CDN, GCDN, NAT, IPSEC-VPN 등 실제로 설정해보시면 어느부분이 중요한 부분인지 쉽게 알수 있습니다.

Global Route Manager 를 예로 들면 NCP 에서 제공하는 DNS는 기본적인 DNS만을 제공하고 GSLB는 Global Route Manager 서비스에서 제공한다던가 하는 DNS를 사용하는 서비스이지만 어떻게 다른지를 알아야 합니다.

Load Balancer 의 경우에는 Round Robin / Least Connection / Source IP Hash 방식의 부하분산을 지원하는데 각각 어떤 방식으로 Client를 분산해주는지 정확히 알아야 합니다.

실기의 경우에는 싱가폴리전과 한국리전을 각각 사용해야 했던점을 제외하면 어려운 부분이 딱히 없었습니다.

시험을 마치면 일반적으로 실기채점은 길게 5일까지도 걸렸습니다. 그리고 모든 시험에 합격 이후에 하루정도의 시간이 지나고 자격증이 발급되었습니다.

NCP-PRO 시험 후기를 마무리하겠습니다.

감사합니다.

NCP-NAVER-Cloud-Platform-Certified-Associate-review

안녕하세요. 누리클라우드 / 호스트센터 의 정태환입니다.

근래에 NCP 자격증에 대해서 관심이 높아지고 있어서 몇번 문의를 받았습니다.
그래서 NCP 의 교육과 자격증에 대해서 리뷰를 적어보려 합니다.

NCP 의 자격증은

NAVER Cloud Platform Certified Associate

NAVER Cloud Platform Certified Professional

NAVER Cloud Platform Certified Expert

세가지의 자격증으로 나뉘어져 있습니다.

각 시험은 여러개의 과목으로 나뉘어져있고, NCA / NCP / NCE로 명칭합니다.

NCA는 1개의 과목 NCP는 3개 NCE는 5개 입니다.

현재 아직 NCE는 응시할 수 없습니다.

문의 해본 결과 8월 출시될 예정이라 합니다.

https://www.ncloud.com/support/certExam

자세한 내용은 링크를 참고하시기 바랍니다.

NCA review 를 본격적으로 진행하자면 두가지를 봐야합니다.

https://docs.ncloud.com/ko/

https://www.ncloud.com/product

NCP의 docs 와 서비스 리스트입니다.

NCA시험유형은 다른 퍼블릭 클라우드의 시험과 좀 사뭇 다릅니다.

일반적으로 aws / azure /gcp 등의 시험같은 경우에는 role에 따라 시험과목이 나누어져있는 경우가 대부분 입니다. sa / dev / ds 등과같은 방식으로 역할에 따라 시험의 과목을 나누는데 NCP의 시험은 자격증을 취득하기 위해선 각각의 도메인에 대해서 합격해야 자격증이발급 됩니다.

설명은 여기까지 하고 본론으로 들어가겠습니다.

NCA는 Overview / Compute / Storage / Network / Media 총 다섯가지에 대해서 시험을 보게됩니다. 사실 Overview 때문에 정확하게 나뉘어지지는 않고 NCP의 서비스에 대해서 정확하게 알고 있는지 질문 합니다. NCA의 난이도는 높지 않지만 그렇다고 해서 준비하지 않으면 굉장히 어려워지는 시험입니다.

그럼 시험 준비에 어떤 부분이 어려울지 나름 분석을 해봤는데요, 역시 Overview 의 부분이었습니다. 과목의 범위가 어디서 어디인지 알수없기 때문인데요..

Compute / Storage / Network / Media 네가지의 도메인에 대해선 비교적 명확하게 알수있지만 overview 의 깊이는 알기가 어렵습니다.

그래서 제가 경험한 부분을 간접적으로 알려드리려 합니다.

먼저 최대치에 대해서는 반드시 알아야 합니다. 예를 들어 서 1G당 iops 와 최대 iops 같은 것입니다.

Overview에는 AI 서비스도 포함됩니다. 깊은 레벨의 질문은 아니지만 서비스에 대해선 명확하게 알아야 합니다.

서비스의 분류또한 중요합니다. IPsec VPN /SSL VPN의 분류가 어떻게 되는지 알아야 하는것처럼요.

그냥 DOCS 만 바라봐서는 정확한 이해가 어렵습니다.

인스턴스 생성 / 로드벨런서 생성 / 오토스케일링 생성
이 과정 자체는 꼭 생성과정을 이해해야 합니다. 실습을 해보시기 바랍니다.

그럼 마지막으로 Overview 에서 본 과목에 대해서 나열을 하는 식으로 끝내보려 합니다.

VMWare ON Cloud / WORKPLACE / Cloud hadoop / Ncloud cli / Backup / Cloud log Analytics / NAT 의 작동방식 / Data Teleporter / AI

두서없이 나열을 했는데 공부하는데 도움이 되시기 바랍니다.

NCA 자격증을 인증하면서 글을 마칩니다.

합격하세요!

NCP-CentOS7-to-CentOS8

NCP 에선 centos8을 지원하지 않는다. 그런데 yum update 를 해서 커널이 변경되면 정상적으로 부팅되지 않는다.

이런 내용들이 인스턴스를 생성할때 안내된다.

그런데, 어제 퇴근후 Meetup과정에서 KR-2 zone은 yum update 가 가능하다는 내용을 전달 받았다. 어쩐지 가끔 yum update 해도 정상적으로 부팅되는 인스턴스가 있더라니..

퇴근길 Meetup - 퇴근길 Tech Meetup 서버 관리 자동화 자료이다.

여기에서 이상함을 느끼고 여쭤봤더니 KR-2에서 하라고 하셨다..그래서 오늘작업의 힌트를 얻었다...

최신의 OS 를 사용하고 싶은건 엔지니어의 본능이 아닌가? 그래서 테스트를 시작했다.

준비물은 다음과 같다.

서버이미지 centos 7.3으로 생성된 인스턴스 한대다.

ACG-포트포워딩-root password 확인 이런 부분은 서버생성 가이드를 참고하자.

https://docs.ncloud.com/ko/compute/compute-1-1-v2.html

인스턴스를 생성하고 인스턴스에 접속하자 마자 할일은 yum update 이다.

yum update -y

업데이트를 마무리하면 epel repo를 설치해 사용할 수 있다.

yum install epel-release -y

epel을 설치하는 이유는 dnf 를 사용하기 위함이다. yum->dnf 로 패키지 설치 방법을 변경할거다.

yum install -y yum-utils rpmconf
rpmconf -a

rpmconf -a 를 입력하면 패키지의 conf를 업데이트 할지를 물어본다.

/etc/sysctl.conf
/etc/profile
/etc/shells
/etc/login.defs
/etc/nsswitch.conf
다섯개의 파일에 대해서 물어보는데 나는 모두 새로 인스톨하는것을 택했다. centos8 로 갈꺼니까.

package-cleanup --leaves
package-cleanup --orphans

다음은 패키지를 cleanup 하고, epel 을 설치한 이유인 dnf 를 설치한다.

yum install dnf -y

dnf 는 centos8 부터 기본적용된 rpm 패키지 관리 패키지인데 yum 에서 dnf로 변경됬다.
dnf 를 설치했다면 yum 을 지우자.

dnf -y remove yum yum-metadata-parser
rm -Rf /etc/yum

yum 을 지우고,

dnf install -y http://mirror.centos.org/centos/8/BaseOS/x86_64/os/Packages/centos-repos-8.2-2.2004.0.1.el8.x86_64.rpm http://mirror.centos.org/centos/8/BaseOS/x86_64/os/Packages/centos-release-8.2-2.2004.0.1.el8.x86_64.rpm http://mirror.centos.org/centos/8/BaseOS/x86_64/os/Packages/centos-gpg-keys-8.2-2.2004.0.1.el8.noarch.rpm

이제 centos8의 repo를 설치한다.

dnf -y upgrade https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

epel7 을 epel8로 업데이트 한다. 이제 centos8 패키지를 다운받을 수 있다.

dnf clean all

dnf 캐시를 clean 한다.

rpm -e `rpm -q kernel`
rpm -e --nodeps sysvinit-tools

rpm 명령어로 커널을 지운다. 여기서 모든 패키지가 삭제되지 않기때문에 후처리가 좀 필요하다.

dnf remove kernel-devel-3.10.0-1127.13.1.el7.x86_64 kernel-devel-3.10.0-327.22.2.el7.x86_64 kernel-devel-3.10.0-514.2.2.el7.x86_64 redhat-rpm-config iprutils-2.4.17.1-3.el7_7.x86_64 sysvinit-tools-2.88-14.dsf.el7.x86_64 sysvinit-tools-2.88-14.dsf.el7.x86_64 python36-rpmconf-1.0.22-1.el7.noarch

후에 의존성이 걸릴 패키지를 미리 삭제한다. 이 경우 NCP centos7.3 인스턴스에 맞춰서 의존성 패키지를 삭제한것이다. 의존성 문제가 발생하면 더삭제 해줘야 한다. 부담감 느끼지 말고 막 날리자. 안되면 처음부터 다시하면 된다.

dnf -y --releasever=8 --allowerasing --setopt=deltarpm=false distro-sync

명령어로 centos8 패키지를 설치한다. 새로 설치되는 패키지들을 유심히 보면 el8.x86_64 로 끝난다 centos8 사용하는 패키지 명으로 RHEL8 이라는 뜻이다. centos8 패키지가 잘설치된다는 소리다.

Complete!

이 단어가 보이면 거의 다된거다.

dnf -y install kernel-core
dnf -y groupupdate "Core" "Minimal Install"

dnf groupupdate 로 Core 와 Minimal Install 까지 업데이트 해주면 이제 된거다.

[root@s17308f26023 ~]# uname -a
Linux s17308f26023 3.10.0-514.2.2.el7.x86_64 #1 SMP Tue Dec 6 23:06:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
[root@s17308f26023 ~]# cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)

리부팅을 아직 안해서 릴리즈는 올라갔으나, 커널버전은 centos7 이다. 이제 리부팅 해주자.

[root@s17308f26023 ~]# date
Wed Jul 1 15:50:15 KST 2020
[root@s17308f26023 ~]# cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)
[root@s17308f26023 ~]# uname -a
Linux s17308f26023 4.18.0-193.6.3.el8_2.x86_64 #1 SMP Wed Jun 10 11:09:32 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

이제 NCP에서 Centos8을 올렸다!

차후 커널지원이나 업데이트에 따라서 OS가 정상작동하지 않을수 있다. 모니터링이 문제가 될거라 생각했는데 잘돈다...

Centos8을 NCP에서 사용하고 싶다면 한번 진행해 보시기 바란다.

읽어 주셔서 감사하다!