AWS-NCP-CDN-image-resize-AWS

AWS 에선 Lambda@Edge를 이용한 Image Resise를 할수 있습니다.

당근마켓-Lambda@Edge를 사용한 썸네일 생성

구성도는 위와 같습니다. 이걸 저도 다른 아키텍쳐로 구성한 경험이 있습니다.

따라하면 되는 부분을 빼버리고 좀 포인트가 필요한 부분만 정리를 하려 합니다.

Lambda는 이미 생성해둔 상태이고 역할도 부여해서 이제 Lambda@edge 로 배포하는 과정을 진행하는것입니다.

다음과 같은 메시지가 표시되면 배포가 시작된거라 생각하면 됩니다.

Designer에 위와 같이 trigger에 cloudfront 가 추가됩니다. 그럼 이 Lambda@edge는 CF의 Behaviors에서 확인할수 있습니다.

또한 CF의 Behaviors에 자동으로 추가가 된거까지 보이고, CF의 Status 가 Enabled 상태이면 각 엣지에 Lambda@edge가 정상적으로 배포되었다고 볼수있습니다.

원본이미지

https://cdn.linuxer.name/wp-content/uploads/2020/07/12213445/exam-az301-600x600-1.png

리사이즈 이미지

https://cdn.linuxer.name/wp-content/uploads/2020/07/12213445/exam-az301-600x600-1.png?w=200&h=150&f=webp&q=100

위와 같이 리사이즈된것을 확인할수 있습니다. URL 수정을 통해 리사이즈를 컨트롤 할수 있습니다

  • - w: '200'
  • - h: '150'
  • - f: 'webp'
  • - q: '90'

Cloud9을 이용하여 배포하고 수정하는 과정 자체가 불편하긴 하나, AWS의 인프라를 이용하여 serverless 환경에서 리사이즈 배포 저장공간 추가로 사용하지 않음 등의 잇점을 생각할때 매우 좋은 방법이라는 생각이 들었습니다.

이때 비용을 생각하지 않을수 없습니다.

REPORT RequestId: 9e879aa6-390e-432b-9baf-84f45b238a4b Duration: 1.88 ms Billed Duration: 50 ms Memory Size: 128 MB Max Memory Used: 107 MB

1회 실행한 로그이며, cloudwatch log group에서 확인할수 있었습니다. 계산은 제 블로그의 이미지 리퀘스트 횟수를 빗대어 계산해 보겠습니다.

All Requests: Total: 45.285 K

저는 Cloudfront 를 이용하여 Image를 제공하고 있고 월 평균 5만건 정도의 리퀘스트가 발생합니다.

1회요청당 0.0000006 USD * 50000 = 0.003 USD 입니다.

여기에 50ms 를 0.05 * 50000 = 2500 초를 실행한게 됩니다.

1초당 컴퓨팅 요금은 0.00000625125 USD입니다. 거기에 2500초를 곱합니다.

0.015628125 USD 입니다.

그럼 두가지 계산된 비용을 합칩니다.

0.018628125 USD가 한달 비용으로 발생하게 됩니다. 썼다면 너무 미미한 양이라 과금되는줄도 모르고 썼겠군요..또한 이건 단순계산으로 캐싱된것을 CDN에서 응답하면 람다 사용횟수가 80%는 줄어 들겁니다. HIT율이 80%는 되기 때문입니다.

한화로 환율을 계산하면 22원입니다. 계산이 무의미 하진 않지만..

정말 작은 돈으로 리사이즈를 할수 있다는것을 알수 있었습니다.

이 다음 포스팅은 NCP에서 image-resize를 사용해보고 비용계산을 진행해보려 합니다.

읽어주셔서 감사합니다.

Public Cloud Status

Amazon Web Services Service Status

Google Cloud Platform Service Status

Linuxer-?

#Linuxer

Hostcenter / 2010.10 ~ 현재

System Engineer / Solutions Architect

여러 퍼블릭 클라우드에 관심이 있으며, 클라우드 만이 아닌 인프라 그 자체를 이해하고 다루는 Infrastructure Engineer 가 목표.

교육에도 관심이 있고, 서비스 운영도 해보고 싶은편.

AWS-GCP-Azure SA Pro Cert 취득. 거기에 NCP까지
Linux / Windows : OS 이해도 높은편

HHKB 키보드를 사용하는 Linuxer

Certified List
2017.11 AWS Certified Solutions Architect - Associate Amazon Web service
2019.07 AWS Certified Solution Architect – Professional Amazon Web service
2019.11 AWS Certified cloud practitioner Amazon Web service
2020.01 Google Cloud Professional Cloud Architect Google Cloud Platform
2020.04 AZ-300 Microsoft Azure Architect Technologies Microsoft
2020.04 Professional Cloud Network Engineer Google Cloud Platform
2020.05 AWS Certified Advanced Networking – Specialty Amazon Web service
2020.05 AWS Certified Security – Specialty Amazon Web service
2020.06 NAVER CLOUD PLATFORM Certified Associate Naver Business Platform
2020.07 AZ-301 Microsoft Azure Architect Design Microsoft
2020.07 Azure Solutions Architect Expert Microsoft
2020.07 AWS Certified SysOps Administrator – Associate Amazon Web service
2020.07 NAVER Cloud Platform Certified Professional Naver Business Platform

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 시험 후기를 마무리하겠습니다.

감사합니다.

AWS-Certified-SysOps-Administrator-Associate-review

aws sysops 시험을 봤다. 내가 본 시험유형은 SOA-C01유형이다.

사실 Associate 시험이라 연습시험도 안봤고 그냥 걱정이 크게 없었다.
그런데 시험이 다가올수록 걱정이 점점 커졌다.

SA같은 경우에는 설계를 중시하는데 SOA같은 경우에는 운영과 관리자의 입장에서 바라본 AWS의 사용법을 물어보기에 중점적인 부분은 SAA보다 깊이가 깊었다. 특히 내가 어려웠던 부분은 cloudformation 이라던가 잘사용하지 않았던 chef 같은 부분이었다.

그 이외에는 사실 현재 가지고 있던 지식으로 해볼만하다 생각이 들었다.

-시험시작 후 내가 좀 공부가 부족했다는 생각을 많이했다.

SOA는 깊다. 어떤 문제는 PRO에 가까이 걸쳐있는 부분도 있다고 생각되는 문제들이 한두 문제 있었다. 실무자의 입장에서 도움되는 내용이 많았다.

기본공부는 역시

jayendrapatil 아저씨의 블로그를 시작으로 공부했다.

아저씨 최고...

AWS Certified SysOps Administrator – Associate

이 다음 시험은 Developer 다. 모두의 건승을!

NCP-SSD-Server-IOPS

오늘 [7월] 네이버클라우드플랫폼 공인교육 - Professional을 다녀왔습니다.
교육을 받다보니 좀 흥미로운 내용이 있더군요.

NCP의 SSD VM은 최소 IOPS가 4000입니다.

블로깅을 하던때가 아니라서 포스팅이나 결과를 깔끔하게 정리한게 아니라 공개하긴 어렵지만 AWS에서도 비슷한 테스트를 한적이 있습니다.

EBS- GP2를 20개를 하나의 인스턴스에 붙여서 100 IOPS 인볼륨을 20개를 붙여서 2000 IOPS로 늘려서 디스크 자체의 퍼포먼스를 올리는 테스트를요.

이 테스트는 많은 엔지니어들이 장난식으로 테스트를 진행했고 유효한 결과를 얻은적이 있는 테스트 입니다. 물론 라이브 서버에 도입하기엔 부담이 따르고 리스크에 비해 얻을수 있는 장점이 크지 않다보니 테스트로만 끝낸적이 있습니다.

그런데 제앞에 10G의 기본 IOPS가 4000짜리가 나타난 것입니다.

NCP의 VM이 가진 제한이 볼륨 16개 까지 붙일수 있는데, OS 볼륨을 제외하면 15개 까지.

150G의 용량으로 60000 IOPS라는 계산이 나옵니다. 그럼 NCP 의 최대 IOPS는 얼마인지 볼까요?

NCP의 IOPS 계산은 1GB당 40IOPS가 증가합니다. 500GB 일때 20000 IOPS 그러니까 볼륨의 가성비는 10G일때 제일 높은셈입니다.

가성비가 제일 높은 볼륨 15개를 추가할 비용을 계산해보면 월 17280원이 추가되는군요.

그럼 월 17280 원으로 낼수있는 최대 성능을 테스트 해볼겁니다.

사실 객관성은 이쯤해선 망각해도 됩니다.
아무래도 서비스에선 사용하기 어려운 구성이니까요.

먼저 볼륨 15개를 인스턴스에 붙입니다.

그리고 아래 스크립트를 돌려서

#!/bin/sh
for VAR in `fdisk -l | grep "Disk /dev/" | grep -v xvda | awk -F: '{print $1}' | awk '{print $2}`';
do
(echo n; echo p; echo 1; echo 2048; echo; echo t; echo 8e; echo w) | fdisk $VAR
done
a=`fdisk -l | grep '/dev/xvd.1' | grep -v '/dev/xvda' | awk '{print $1}'`
pvcreate $a
vgcreate linuxer-lvm $a
lvcreate -l 38385 -n volume linuxer-lvm
mkdir /lvm
mkfs.xfs -f /dev/linuxer-lvm/volume
mount -t xfs /dev/linxer-lvm/volume /lvm

마운트 까지 완료했습니다.

[root@s1734ba4660a ~]# vgdisplay
--- Volume group ---
VG Name linuxer-lvm
System ID
Format lvm2
Metadata Areas 15
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 15
Act PV 15
VG Size 149.94 GiB
PE Size 4.00 MiB
Total PE 38385
Alloc PE / Size 38385 / 149.94 GiB
Free PE / Size 0 / 0
VG UUID YEEHFI-FpvU-fTmE-YnHx-9itm-mhH6-QUsz8j

vg도 잘만들어져서 마운트까지 정상적으로 됩니다.

속도 테스트하려니까 너무 귀찮아서..........................

으앙주금...

여러분 이포스팅은 언젠간 마무리 할테지만...

오늘은 아닌가 봅니다.

굿밤!

Azure-AZ-301 Microsoft Azure Architect Design

Azure 301 스터디를 완료 했다.

Azure는 정말 오랜기간이 걸렸다. 3월부터 시작해서 어제까지 붙잡고 있었다. 물론 Azure만 공부한건 아니지만 Azure는 힘겨운 공부였다.

az-301은 이제 9월 30일에 종료되는 시험이라 아주 영 다른 시험을 볼만한 자신이 없었다. 게다가 az-300 을 마친 상태라 같은 유형의 시험을 보고싶은 생각이 컷다.

그래서 6월부터 준비해서 7월 11일 시험을 봤다.

시험에 대해서 이야기하자면...

az-300은 overview를 다루는 것이 컷다. 다루는 범위가 넓었고 많은 서비스를 썼다. 그런데 az-301은 그렇지 않았다. ad forest 끼리의 신뢰라던가 connect 라던가 하이브리드 구성을 물어보는 문제들이 있었다.

https://docs.microsoft.com/ko-kr/microsoft-365/enterprise/contoso-case-study?view=o365-worldwide

https://docs.microsoft.com/ko-kr/azure/active-directory/b2b/allow-deny-list

case 를 참고하자.

제일 중요하다 생각했던 개념은

forest-tree, tenant 구분하는 내용이다. 이부분은 오픈 IT인프라 정보공유 오픈카톡의 불나방님께서 도움을 주셨다. 불나방님 감사합니다!! - 질문할때 도움주신 자니님도 감사합니다.

https://docs.microsoft.com/ko-kr/azure/active-directory/hybrid/how-to-connect-fed-single-adfs-multitenant-federation

링크를 참조하자.

또 storage account 의 class 에대한 내용을 주로 봤다. 어떤상황에서 어떤 storage 와 class 를 쓸 수 있는지 정확하게 알아야한다. 그 이외에는 뭐.. 골자는 az-300과 비슷한 내용이 주를 이루었지만 같은 기능을 여러가지로 다시 만든것들이 은근 있어서 굉장히 어려웠다.

az 301이 시험이 진짜 너무없어서 대전까지 다녀왔다.

10일 금요일 저녁 대전으로 향했다. KTX를 타고 내려가서 근처의 모텔에서 숙박하고 밤새 공부하려 했으나, 실-패 자고 일어나서 열심히 봤다.

시험중의 특이사항은..ㅋㅋㅋㅋㅋㅋㅋㅋ하

시험시작했는데 모니터 한가운데 해상도 맞지않음이라는 표시가 사라지지 않았다..ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

??????????

그래서 대전은 좀 프리하더라.. 감독관이 모니터 교체를 도움주기 어려운 상황이라 동의를 구하고 옆자리 모니터를 가져다가 직접교체 후 시험을 진행했다.

중지하고 다른자리에서 진행하라는 권유도 받았는데 Azure에서는 뒤로가기가 안되는 문제들이 존재하는데 그게 1번부터 9번문제 까지였다. 그래서 문제가 생길까봐 걱정되서 그냥 모니터 교체후 진행했는데 교체 한 모니터는 3분마다 모니터 옵션이 떴다....

그런 고통에 가득한 시험을 진행해서..

시험을 합격했다. 점수는 746점이다.

300/301을 합격해야 certification 을 발급해주는데 하나만 합격해선 exam 이다.

그래서 나는 두가지 시험을 모두 합격했으므로 Azure SA Expert 를 취득했다.

Azure SA의 시험을 마무리하면서 목표했던 1차과제가 완료 되었다.

이 다음 글은 3개의 퍼블릭 클라우드 SA certi를취득하면서 느낀점과 변화를 써보려고한다.

읽어주셔서 감사합니다.

좋은하루되세요!

같이공부해주신 스터디원분들께 감사를 드립니다.

수현님, 재호님, 민형님, 수진님 최근에 합류한 한섭이까지.

너무 감사합니다~!

linux-유용한 명령어

7/6일 오픈카톡 대화에서 발췌

glances - top / htop 대용

yum install python-pip python-devel
pip install glances

lsof list open files

lsof 는 열려있는 파일리스트를 보여준다. 예를들어 pid 3222를 확인하려 한다고 하면 아래와 같이 쓰면 된다.

lsof -p 3222
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 3222 apache cwd DIR 202,1 278 96 /
httpd 3222 apache rtd DIR 202,1 278 96 /
httpd 3222 apache txt REG 202,1 553600 61998 /usr/sbin/httpd
httpd 3222 apache mem REG 202,1 26976 1392 /usr/lib64/libnss_dns-2.26.so
httpd 3222 apache mem REG 202,1 57296 1394 /usr/lib64/libnss_files-2.26.so
httpd 3222 apache mem REG 202,1 37032 35796 /usr/lib64/libnss_sss.so.2
httpd 3222 apache mem REG 202,1 62432 8533557 /usr/lib64/httpd/modules/mod_proxy_http2.so
httpd 3222 apache mem REG 202,1 2462992 86241 /usr/lib64/libcrypto.so.1.0.2k
httpd 3222 apache mem REG 202,1 158280 485506 /usr/lib64/libnghttp2.so.14.18.0
httpd 3222 apache mem REG 202,1 248888 8533556 /usr/lib64/httpd/modules/mod_http2.so
httpd 3222 apache mem REG 202,1 40152 8676027 /usr/lib64/httpd/modules/mod_cgid.so

awk 는 주로 sort 와 같이 사용된다.

220.122.174.19, 70.132.53.181 - - [06/Jul/2020:21:30:11 +0900] "GET /category/aws/ HTTP/1.1" 200 105327
220.122.174.19, 70.132.53.107 - - [06/Jul/2020:21:30:11 +0900] "GET /2020/06/aws-ec2-root-volume-resize-extending-linux/embed/ HTTP/1.1" 200 19832

위의 로그에서 IP 만 확인하고 싶다면

cat linuxer.name_access_log | awk '{print $1}'

같은명령어로 배열로 잘라서 출력할수 있다.

/ sed

ps -elf

ps afxuwww

ps afxuwww - 명령어는 전체를 다보여주면서 자식 프로세스까지 다보여준다...짱좋아

ps -ef -L

ss
tcp FIN-WAIT-1 0 1281 10.0.0.12:ssh 61.177.172.13:46933
tcp ESTAB 0 1280 10.0.0.12:ssh 61.177.172.13:40872
tcp ESTAB 0 0 10.0.0.12:ssh 61.177.172.13:48407
tcp ESTAB 0 0 10.0.0.12:57592 52.95.194.65:https
tcp ESTAB 0 1280 10.0.0.12:ssh 61.177.172.13:41761
tcp ESTAB 0 0 10.0.0.12:50144 52.95.195.99:https
tcp ESTAB 0 0 10.0.0.12:ssh 222.186.173.238:43018
tcp FIN-WAIT-1 0 1281 10.0.0.12:ssh 61.177.172.13:20460
tcp ESTAB 0 0 10.0.0.12:50104 52.95.195.99:https
tcp ESTAB 0 1280 10.0.0.12:ssh 61.177.172.13:19907
tcp FIN-WAIT-1 0 1 10.0.0.12:ssh 218.92.0.249:45695
tcp ESTAB 0 0 10.0.0.12:41014 52.95.195.109:https

tcpdump

ngrep - bpf filter가 되어서 L7 grep 가능

sar

iostate

strace / ftrace