• 사용 방법 2가지 : 웹 / 데스크탑
    • 웹은 정말 불편함 / 데스크탑보다 기능이 제한적임 + 사용법이 미묘하게 조금씩 다 다름 (예를들면, 데이터 여러개를 웹상에서 보고싶으면 데이터 마트를 구성해야함. 데스크탑에서는 그냥 데이터 업데이트해서 올리면 해결되는 문제)
  • flow 생성방법
    • 엑셀데이터 : 데이터마트 생성(데이터 업로드) - 시멘틱모델 (=의미체계모델) - 리포트 - 대시보드 
    • 데이터브릭스 연동 :
      • 데이터브릭스에서 SQL ware house 생성 - connection details 에서 아래 두개 링크 복사 -패브릭 워크스페이스에서 dataflow gen2생성 - 아까 복사한 링크2개 복붙 - 불러올 데이터 가져오기 - 패브릭에서 레이크하우스 생성 - data flow gen2 연동 - 의미체계모델 만들기 - 보고서 생성
  • 실시간 업데이트 데이터 리프레쉬하는방법
    • 일단 데이터 올리는법은 크게 IMPORT/DEVICE QUERY 두가지 방법이 있음 
    • A) import (2가지 방법) - power bi desktop
      • 이미 만들어진 시멘틱 모델을 땡겨와서 power bi desktop 에서 연동 -> 수정사항이 있을경우 publish 로 업데이터 덮어씌우는 방식
        • 1) live connect
          • 웹상에 올라온 데이터를 직접 연동해서 씀
          • sql endpoint 방식보다는 좀 자유도가 들하다
          • 리프레쉬 버튼을 누르면 시멘틱모델이 변경된 사항이 반영된다.
        • 2) sql endpoint
          • 시멘틱 모델에 올라온 데이터를 통으로 로컬에 다운받은다음, 올릴때 데이터+보고서를 같이 올리는 방식
          • column 추가나 value 변환은 괜찮. 근데 column 이름/유형(중요)/삭제 시 에러가 나면서 publish 가 안된다
      • 리프레쉬를 반영하는방법
        • 1.원드라이브 파일을 사용하는법 (간단히 리프레쉬 버튼누르면됨)
        • 2. Share point team site(팀즈)
          • 팀즈에 파일 업로드 - 팀즈파일의 디테일에서 경로복사 - fabric power bi report 엑셀연결에서 url입력-테이블추가후 리포트생성
          • 데이터 리프레쉬는 기본으로 1시간단위로 세팅되어있다고함
          • 수동은 시멘틱 모델의 리프레쉬 버튼을 누르면됨
        • 3. 로컬파일 - 온프레미스 데이터 게이트웨이가 필요함. 그런데 private link 가 활성화된경우 이게 지원이 안됨
    • B) device query
      • 데이터 브릭스 데이터를 연동해서 쓸경우 설정을 보면 DEVICE QUERY라고 뜸
      • 몇시간에 한번 리프레쉬할건지 설정에서 설정해 줄 수 있다.
      • 리프레쉬 버튼누르면 업데이트된다. 리프레쉬 대상은 GEN2다 GEN2를 리프레쉬해야함.
  • 대시보드를 볼 수 있는 권한 설정
    • admin  - 테넌트 설정도 가능/워크스페이스 삭제 유일하게 가능/cu사용내역도 볼수 있음
    • member - 리포트 공유/수정/워크스페이스 수정 가능/멤버추가가능 (ppu나 pro 권한이 없어도 멤버 권한이 주어지면 수정이 가능함)
    • contributer - 리포트 보기/수정
    • viewer - 리포트 보기 가능
    • 앱배포 = 누구나 볼 수 있음 ( 단점은 딱 배포한 시점의 리포트가 보이기 때문에, 변화한 사항이 있으면 꼭 재배포 해줘야함, 앱 배포한 리포트가 삭제가 되어도 앱 링크에서는 잘보임)
더보기

Viewer - Can view all content in the workspace, but can't modify it.

Contributor - Can view and modify all content in the workspace.
Member - Can view, modify, and share all content in the workspace.
Admin - Can view, modify, share, and manage all content in the workspace, including managing permissions.

  • 일반적인 협업 방식
    • 시멘틱모델을 만들어놓고, 데스크탑에 연동해서 받아오기 publish 하는 식으로 플로우를 만들거나 덮어씌우는 방식으로 진행
    • 근데 만약 상대방이 변경된 내용을 퍼블리쉬하면 그걸 다시 받아서 수정해서 퍼블리쉬해야함 (import 방식으로 진행시 협업이 썩 용이하진 않음)
    • 웹은 한계점이 너무많아서 주로 데스트탑 파워비아이를 사용하는편
    • 앵간한 배경이나 디자인적인 요소를 향상시키고 싶을경우 피피티에서 배경을 싹 따와서 박고 그위에 그래프를 얹는식으로 진행하는게 빠름
  • 고질적인 문제점
    • 만약 한 리포트안에 파이차트가 두개있는데  A부문 에 있는 b,c,d,e항목을 볼때 나머지 파이차트는 A부문 100프로로 뜬다. 이쁘지가 않은데 이건 어쩔수 없다고함
    • 0.0001퍼센트같이 잘 보이지 않는 부분은 파이차트나 트리맵에서 잘 보이지도 않음. 숫자도 안나오는데 어케할수 있는 방법이 없다고함
    • 한달 사이로 다운받은 데스크탑 구성이 다름. 심지어 없는 그래프가 있음 ( 업데이트 주기가 굉장히 빠른편.....)
  • 파워비아이가 더 편한점 
    • 전처리를 엑셀단이나 파이썬/ sql로 수정하려면 복잡해지는 문제를 파워비아이 마트단에서 클릭클릭으로 간단히 해결되는 문제들도 있기 때문에 둘이 적당히 섞어 쓰면 좋다고 함
    • 보통 왕큰 원천 여러개랑 + 기준정보를 넣어서 연결연결 시켜서 사용한다고 함.
  • 꿀팁 꿀팁.....
    • 표안에 각각 다른 필터를 씌우고싶은데 필터설정이 컬럼별로 안되는거같다
      • 각 컬럼별로 dax문법으로 박아버리고 하나하나 선택해주면 된다.
    • 클릭시 변하게 하고싶다
      • 책갈피라는 기능이 있는데, 해당 페이지를 스냅샷으로 찍어서 이동하게끔 하는 방식임 (약간 노가다성)
  • DAX문법 예시
# 조건거는법
Q_sum = CALCULATE(SUM('Data'[매출]),'Data'[실적구분]='2024','Data'[조건1]="")
# 마이너스 세모표시로 바꾸는법
var result = ROUND(CALCULATE(SUM('Data'[매출]),'Data'[실적구분]='2024','Data'[조건1]=""),2)
var result2 = if(result<0,"△ "&CONVERT(-result,STRING),"+"&CONVERT(result,STRING))
return result2
# DAX끼리 빼기
yo = [@dax컬럼] - [@dax컬럼]
  • 추가 미적 변경
    • 행렬 - 행에서 위아래 폭 변경하고싶으면 (눈금-옵션-행안쪽 여백 늘리기)

Udemy 강의 내용 정리한것

【한글자막】 15일 완성 코스 - Power BI 완벽 부트캠프 | Udemy

- 강의는 POWER BI Desktop 기준으로 진행

- POWER BI Desktop 에서 만든걸 pbix 저장한다음, Fabric Power BI에 올려서 진행하는 방식으로 실습 진행함( Desktop 강의서가 더 많고, Fabric Power Bi에서 제약이 너무 많기 때문 )

- 조직계정외 개인개정으로 Fabric Power BI는 AZURE 무료계정만들기 => Microsoft 계정만들기로 진행가능

- Desktop-> Fabric Power BI 옮기려면 템플릿NONO POWER BI 문서로 저장해야함

  • DESKTOP에서 작업한것 save as -> one drive -> 맽밑에 pbix 이름지정 -> save 그런다음에 웹 fabric Power BI드가서 업로드-> 저장한 원드라이브 위치에 드가서 업로드한 파일 선택 하면 정상적으로 (데이터+대시보드)가 업데이트 됨

 

 

DAY2 : 데이터 전처리를 POWER BI 안에서 진행할수 있음

1. 데이터 수정은 Home - Transform data 눌러서 진행

- error 종종 뜰땐 텍스트로 바꾼다음 home - replae value 누른다음 NA 값을 없는값으로 만들어주기, 그리고 숫자로 바꿔주면 null로 바뀜

2. column 안에 너무 정보가 많을때 아래 잘 조합해서 쪼개기

  • Transform - split colum

       - by position 로 0,3,5 이렇게 나눠주면 TX - Montgomery 이게 3개 COLUMN으로 쪼개진다.

       - Split Column by Delimiter로 [ - ]를 넣어주면 2개 COLUMN으로 쪼개진다

  • Transform - Extract 

3. 앞뒤 공백 없애주기 : Column 마우스 우클릭 - Transform - Trim 앞뒤 공백 없애줌, Clean은 탭키 공백들도 없애줌

- 모든 컬럼 대문자로 시작하게 : 마우스 우클릭 - Transform - Capitalize Each Word

4. 소숫점 없애기

- 열 마우스 우클릭 - change type - whole number

5. 열 전체 합같은 연산하기

- Transform - Statistics - SUM 

열의 모든값을 합친 값만 output으로 내놓지 활용할거리가 하나도 없다.

6. 모든 열에 모두 100 더해주기, 모든열에 해당하는 값 연산,  cm을 인치로 바꾸기 (=단위 변환하기)

- Transform - Standard - Add - 100 ( 모든 열에 100을 더해줌)

- Transform - Standard - Multiply(곱셈) - 0.394(cm에서 인치로 변환하기위해 곱해줌) 

29,30 강의 다시듣기

8. 파이차트 주의할점 (앵간하면 비추함)

- 최악의 경우

  • 비슷비슷한값들의 경우 비교할때 파이차트를 사용하면 안됨 (심지어 비슷한 비율의 파이차트 두개를 보여준다? 최악)
  • 값이 너무 많은경우 비추함(항목이 2,3개일때만 사용하고, 항목이 5개를 초과할경우 절대 쓰지 말라고함) / 값이 너무 많은경우엔 세로 막대그래프를 권장함

- 파이차트를 권장하는 경우 / 사용 권장 방식

  • 파이차트는 전체에서 차지하는 비율(퍼센테이지)을 전시할때만 사용하라고 권장함. (총합 100퍼센트를 이루는것만 해당)
  • 과반수를 이루는것만 색깔 칠하기 등..
  • 파이차트에서 범례 쓰지말고 걍 원위에 항목 표시하기 (한눈에 안들어옴) 

- 디테일한 사용 방식

  • 범례 표위에 표시하는법 detail labels  에서 설정

DAY3 : 본격적인 시각화 툴 활용

- 두개 데이터 연결하기

  • 1. 1개 테이블뒤에 다른 테이블 붙이기
  • 2. append queries 로 새 테이블 만들기 (3개이상 연결)
  • if ) 연결하려는 두개 테이블의 column 명이 다를경우, a,b를 합쳐서 c를 만들었을경우 걍 a테이블로 돌아가서 컬럼명을 바꾸고 다시 c로 돌아와서 보면 알아서 고쳐져있음 (파워비아이의 장점!) 

- 데이터 타입 자동으로 바꾸기 ( 일일히 수동으로 변경하지 않아도 됨)

  • Transform - detect data type 

DAY4 : 데이터 변환

- 대시보드 필터 기능 (slicer)

  • 여러개 선택하고 싶으면 ctrl 누르고 선택하면 됨
  • ctrl 없이 여러개 누르고 싶으면 format - selection controls - Multi select with CTRL 활성화를 끄면됨

 

DAY5 : 대화형 시각화

- 오른쪽 메뉴 필터 slicer (그래프,페이지,전체등 범위선택가능)

  • filer on this visul 한정으로 topN기능 사용가능

- 여러페이지에서 동일 필터를 먹이는 방법 (sync slicers)

  • 1. slicer 를 복사 붙여넣기한다음 - 동기화하겠습니까? 묻는거에 YES
  • 2. slicer를 더블클릭하면 sync slicers 라고 오른쪽에 새로 뜨는 페이지를 클릭해서 어느 페이지에서 보여줄것인지 체크창에 체크표시하면 됨 (동기화와, slicer보임여부를 표시할 수 있음)

- 트리맵 시각화 (tree map)

  •  항목이 너무 많아서 막대그래프로 나타내도 스크롤이 줄질 않으면 트리맵을 추천 (위계적인 데이터에 추천)
    • 스크롤 없이 한눈에 보기 가능
    • 하지만 수치가 표시되는건 아니라 데이터라벨 추가해주면 좋음 format - 
    • detail 에 서브카테고리 컬럼을 추가해주면, 같은색안에 칸이 나뉘면서 그안의 서브카테고리들을 보여줌

- 드릴스루

  • 테이블에서 예를들어 0이상만 보여주고 싶을경우 Filters 에서 자세히 지정해주면 됨
  • 드릴스루로 더 자세히 봐줄 column을 지정해주면 드릴스루 메뉴가 뜸

- 말풍선 (마우스 커서 가져다 대면 뜨는거)

  • visualizations - build - tooltips에서 column들을 넣어주면 뜸
  • visualization - format - tooltip에서 툴팁 포맷도 디테일하게 설정해줄수가 있음 (안뜨게 OFF설정도 가능)

- 사용자 지정 열 ( 예를들어 너비,높이 Column을 가지고 넓이 Column을 새로이 만들어주는 작업을 의미함)

  • 데이터 transform - 연산해줄 컬럼을 눌르고 - STANDARD - Multiply (비교적 신기능으로 기존열과 새 열을 곱해서 열의 값을 바꾸어주는 기능)
  • 더 복잡한 작업을 해주려면 add column - custom column - M언어를 사용(m언어를 알필요는 없다고함, 인터페이스를 가지고 활용하면됨) - 열 선택해서 곱셈이면 * 이걸로 3개 열을 곱해주면 새로운 열이 생김. 

- 데이터양 줄이기 (활성화,비활성화 로드)

  • 해당 column이 대시보드에 나타나지 않도록 포함에서 제외하는 작업임.이작업을 하면 그 템플릿 다운받을때 (대시보드+데이터) 용량이 확준다
  • 전혀 쓰지않는 테이블이나 column의 경우 이작업을 통해 용량을 덜어냄 (데이터가 너무많으면 성능에 문제생길수있으니까)
  • Transform data - 테이블 마우스 우클릭 - enable load 클릭해서 선택해제 (해당 테이블을 사용하는 시각화는 에러가 생길것임) 
  • 비활성화되면 왼쪽에서 기울인 폰트로 보임

- 참조 VS 중복 (보고서의 성능) 64화

  • 일단 기존 테이블을 복제 (마우스 우클릭 - Duplicate)
  • 보통 참조용 테이블은 기존 테이블을 참조하게 함
  • 63,63 추가로 봐야할 필요가 있음

 

DAY6 : 고급 시각화

- Sort 방식 변경 (값기준, 월화수목.. 이런순서) + 조건부 열 순서 (66,67강의)

  • 1. x축이 monday tuesday... 이럴경우 높은값부터 나타날경우 차례대로 월화수목 이렇게 안뜨는 문제가 있음 (높은값부터, 낮은값부터 정렬되기 때문에 월화수목금토일 이케 안뜸)
  • 2. 그래프 맨 오른쪽 [...]  - Sort axis - 값이 아니라 다른 기준을 고르면 됨
  • 3. 하지만 가나다라, abcd방식으로 정렬되기 떄문에 역시 friday, monday, saturday... 이런식으로 뜨는 문제해결 : transform data - add column - conditional column 여기서 COLUMN 이름적고 OUTPUT 1-7 이케 적으면 순서해결
  • 4. 다시 돌아가서 column tools - 새로 더해준 기준대로 sort

- 예측 (선형차트)

  • Visualization - analysis 로 들어가면 Predict가 뜬다는데 안뜸. 그래서 그냥 PREDICT 그래프를 선택해줬음. 에러가남...

- 사용자 편의 드릴스루 (아이콘)-

 

 

 

< 추가 방법 >

- MATRIX 에서 interactive 하지않게 만들기

  • format - edit interactions - 없음 아이콘 선택하면 interactive하지 않게 표시

 

 

 

 

 

< 뻘짓.. 찐 실행은 살짝 뒤에서부터..>

 

원래 databricks에서 실행하고 싶어서 이모저모 찾아봤는데, 아무리 찾아봐도 databricks에 bak 데이터를 업로드하는 튜토리얼이 전혀 보이지 않았다... (혹시 있으면 댓글로 알려주시면 감사감사 왕감사..) 그래서 azure data studio를 제일 많이 쓰는거 같길래 설치함

 

기본베이스는 https://learn.microsoft.com/ko-kr/sql/samples/adventureworks-install-configure?view=sql-server-ver16&tabs=data-studio#download-backup-files 이거 따라함

 

Azure Data Studio 설치하기

 

Azure SQL Server에서 [만들기] 눌러서 새로 만들어주기

 

Azure 계정이랑 연결하기 (왼쪽 아이콘중 맨위에 connection 누른다음 뒤적거리다보면 앞에서 새로 만들어준게 나옴. 그거 클릭하면 됨)

ㄴ그런데 여기서 100% 에러남 ->  네트워크 설정 공용 네트워크 허용으로 바꿔주기

 

(예외 규칙 새로 안만들어줘도 새로생성한 sqlserver 네트워킹 설정 들가서 그냥 공용엑세스 메뉴에서 사용안함 -> 선택한 네트워크로 저장해주고, azure sql data studio 들어가서 connection 누르니까 지가 알아서 방화벽 만들어서 접속됨)

 

 

문제없이 진행되었을경우, 튜토리얼대로 manage버튼 안눌르고, 빨간 박스친것이 보이는데 클릭하면 된다.

 

왜 preview...? azure 튜토리얼은 뭔.. 맞는게 없는거 같은데 알아서 감으로 하쇼 이런건가?

 

 

(찐실행하기 전에 뻘짓으로 만들어준 sql server삭제하고.. 진행하기)

 

< 찐 실행은 여기서부터 >

 

아 저걸 눌러도 계속 에러가 뜸. 도커 설치는 필수였나보다....

 

https://debugsolutions.wordpress.com/2022/05/03/how-to-restore-a-database-on-azure-data-studio-for-mac-with-docker/ 이거 똑같이 따라서 도커 설치하고 data studio 재 연결하면됨

 

**error) docker run –cap-add SYS_PTRACE -e 'ACCEPT_EULA=1' -e 'MSSQL_SA_PASSWORD=Password.1' -p 1433:1433 –name azuresqledge -d mcr.microsoft.com/azure-sql-edge 이 실행 에러나는데 docker run --cap-add SYS_PTRACE -e 'ACCEPT_EULA=1' -e 'MSSQL_SA_PASSWORD=StrongPass030424!' -p 1433:1433 --name azuresqledge --restart unless-stopped -d mcr.microsoft.com/azure-sql-edge 이걸로 바꿔서 실행하면 성공~ (from gpt)

 

되었당..!!

 

**error) 파일 옮길때 에러나면 이렇게 '' 이거 따옴표 없애면 됨. docker cp /Users/yoonseo/downloads/AdventureWorks2019.bak azuresqledge:/var/opt/mssql/backup

 

 

야호~~~!!!!!!!

여러개 인스턴스 중에서 되는걸로 사용하는법

그냥 인스턴스만들기한다음 기타 + 스팟 체크해서 사용하는 방법도 있움

 

 

1. 템플릿 만든다. (AMI 설정/키페어/보안그룹/스토리지 등등)

2. 스팟 생성하기에서  템플릿 선택하고, 네트워크-가용영역-서브넷 설정 (서브넷 설정에서 private 안되게 지정해준다. private 서브넷 선택되면 ssh 안드가짐)

3. 인스턴스 유형 선택하기 ( inf2.xlarge를 사용하고 싶을땐 inf2.xlarge선택하고, 나머지는 그거보다 큰걸로 설정해놓으면 됨)

'<Cloud> > AWS' 카테고리의 다른 글

AWS Sagemaker Studio Data Wangler 실습  (0) 2022.12.27
[EC2 CLI] aws ec2 run-instances  (0) 2022.07.11
AWS 보안서비스 종류들  (0) 2022.05.19
AWS ECS 간단이해  (0) 2022.05.18
Lamdba Cold start 예방하는 방법 2가지  (0) 2022.05.18

AWS 가서 10-5시까지 Sagemaker 강의?워크샵? 듣고 왔다.

 

Workshop Studio

 

catalog.us-east-1.prod.workshops.aws

ㄴ 실습링크

 

강의순서는 다음과같았다.

1. Sagemaker Canvas

2. Feature Engineering

3. Bring Your Own Script

4. Bring Your Own Container

 

Sagemaker Canvas는 이전에 해봤던거라 중복이라 패쓰

 

2. Feature Engineering 부분에서 Sagemaker Data Wangler를 사용해서 실습을 진행했어서 이부분만 위주로 살펴보고자함

 

워크샵에서 아래 실습으로 진행했다. 그런데 리뉴얼되면서 중간중간 사진이랑 다른부분이 꽤 많았음. 달랐던 부분만 사진 첨부했다.

 

Workshop Studio

 

catalog.us-east-1.prod.workshops.aws

 

DATA Wrangler가 어디있나 한참 찾았음..ㅋㅋ
아이콘이랑 우클릭이 좀다른데 기본적인 기능은 동일한거같다.
add analysis 하고 저장하면 저렇게 가지가지 생긴다.
설명서에는 줄줄이 소세지처럼 보이지않고 뒤에 4개가 다 모여있다. 그냥 제일긴줄에서 맨뒤에있는거 플러스 클릭하고 진행하면된다

 

데이터 분석은 아래 예시처럼 피처별로, 여러 방식대로 선택해서 볼수 있다.

또 아테나에서 쿼리날려서 볼수도 있음.

 

 

[ Data Wangler 개인적으로 느꼈던점 ]

장점 :

  • 데이터 전처리할때 클릭으로만으로도 진행가능한게 (원핫인코딩,컬럼빼기,데이터합치기등등) 간단해서 좋다.
  • 히스토그램이나 scatter 일일히 피처마다 그리기 귀찮은데 그걸 알아서 클릭만하면 그려주기 때문에 데이터 분석할때 시간적으로 가성비가 진짜 최고인듯하다. (클릭클릭만 하면 꽤 괜찮아보이는 그래프 그려주고 한눈에 보기에도 좋음)

단점 : 

  • 파이썬 코드를 집어넣어서 진행하는 전처리는 사실 쥬피터에서 하는게 더 나아보였다.  
  • 데이터 분석까지는 최고인데 데이터 전처리부분은 사실 완벽하지는 않은 느낌이였음.

 

 

 

그외에 3. Bring Your Own Script, 4. Bring Your Own Container 시간에는 아래 실습을 진행했다.

일단 하라는대로 돌리긴 다돌렸는데 100% 다 이해하진 못했음.

 

Workshop Studio

 

catalog.us-east-1.prod.workshops.aws

 

아직까지는 연구실 서버는 공짜인데 sagemaker 쥬피터랑 콘솔을 쓰면 하나부터 열까지 돈이라 부담스럽고 비싸서 실제로 서버대용으로 사용하지는 못할거같다...

 

 

 

 

[ 그리고 강의에서 공유해주신것들 ]

  • 앵간한 코드는 여기서 복붙하면된다고 알려주신 사이트
 

1. Introduction — Dive into Deep Learning 1.0.0-beta0 documentation

 

d2l.ai

  • 실습링크보다 더 다양한 example이 있어서 참고하라고 알려주심
 

GitHub - aws/amazon-sagemaker-examples: Example 📓 Jupyter notebooks that demonstrate how to build, train, and deploy machine

Example 📓 Jupyter notebooks that demonstrate how to build, train, and deploy machine learning models using 🧠 Amazon SageMaker. - GitHub - aws/amazon-sagemaker-examples: Example 📓 Jupyter notebooks...

github.com

 

'<Cloud> > AWS' 카테고리의 다른 글

AWS Spot Instance Start  (0) 2024.03.29
[EC2 CLI] aws ec2 run-instances  (0) 2022.07.11
AWS 보안서비스 종류들  (0) 2022.05.19
AWS ECS 간단이해  (0) 2022.05.18
Lamdba Cold start 예방하는 방법 2가지  (0) 2022.05.18

알리바바 클라우드 로그인 -> [Console] -> [ECS] -> [Create Instance]

 

사용한 시간만큼 결제는 Pay as you go , 한달단위로 결제는 Subscription 선택하면된다.

중국리전보다는 싱가폴이나 홍콩리전을 추천한다. (중국내 규제 때문)

 

스크롤내려서 이미지도 선택해준다. 본인은 우분투 선택.

원하면 GPU 드라이버 설치도 자동으로 하게 선택해줄수 있다. AWS 랑 다른점은 시작과 동시에 설치가되어서 시작하자마자 접속하면 CUDA를 깔고있는중이라 조금 기다려야한다.

 

키페어도 선택해준다 ( 없으면 create key pair )

 

[Connect] -> 비밀번호 옵션말고 키 업로드 옵션으로 바꿔준뒤 본인 키 업데이트 -> 접속

 

파일 다운로드하는 방법은

chmod 400 [본인pem키]
scp -i [본인pem키 절대경로] -r root@[퍼블릭아이피]:[다운받고자하는파일절대경로] [로컬주소]

ex : scp -i /Users/my/desktop/file_pem/my.pem -r root@8.999.3.55:/root/myfile ./

(**리눅스기준 절대경로는 터미널에 pwd 누르면나옴)

 

알리바바 클라우드에 A10, A30 GPU를 제공하길래 사용해보고자 시도해본 과정들이다.

GCP, IBM, AWS, Azure에서는 없는 GPU라 두근두근 사용해보기로했다.

 

A10 GPU type + 가격정보

 

A30 GPU 정보

 

 

그런데 A30은 가격정보도 없고 인스턴스 선택도 안되길래 채팅으로 문의해본결과,

A30 GPU는 전부 매진이라 한달단위로만 제공한다고한다. 한달에 1500불정도 (200만원). 이것도 신청한다고 바로되는게 아니라 심사후에 사용가능한데, 그것도 개인말고 기업이나 학교같이 신분을 보증할수 있는 결제처가 있어야 한다고 했다. 

알리바바 클라우드는 좀 좋은게 문의 남기면 꼭 전화가온다. 

 

A10 GPU도 사용해볼까 해서 선택했는데 에러가 난다.

 

그래서 개인정보에서 추가 정보를 입력하고 ( 1. 카드사진, 2. 여권정보, 3. 카드내역서 등등...)

Submit Ticket 으로 문의해본결과 또 전화가 왔었는데 , 기업이나 단체가 아니라 개인으로 사용시에 심사가 엄청나게 엄격하다고 한다. 이전에 유럽쪽인가 미국인가 리전에서 개인 계정으로 무분별한 사용후 결제를 안하고 튄케이스가 많았어서 개인계정은 심사를 빡세게 한다고 한다... (특히 카드 사용내역서...)

 

 

두번 거절당하고 세번째에 승인이 났다.

 

알림뜬거 클릭클릭하다보면 자동으로 추가인증사이트로 연동된다.

1. 카드실물사진

2. 여권사진

3. 카드사용내역서

이렇게 업로드해야하는데 카드사용내역서를 '영어'로 + 몇개월치를 뽑아서 첨부해야한다.

 

첫번째는 한국어로 대충 앱 캡쳐해서 첨부,  두번째는 영어로 2달치 카드내역서 pdf로 첨부했는데 거절당했다.

세번째는 영어로 6개월치 카드내역서를 첨부했더니 승인났다.

 

 

 

 

 

 

 

 

 

 

접속은 그냥 생성된 VM 아래에 SSH 버튼누르면되고

 

다운로드및 업로드는 저위에 업로드,다운로드 아이콘 누르면됨. 

엄청 간단..!

(파일안에 파일들이 많을때 다운로드가 안되고 그냥 집파일로 만든다음 집파일 절대경로(pwd) 입력해줬더니 다운로드됨)

sudo apt-get install zip unzip
zip test.zip ./*

 

GPU(all region) quota 0->1로 설정했다고 끝이아님. 

 

문제는 다음과같았는데

1) A100 GPU 쓰기위해  기본 아이오와 리전을 선택했더니 이미 꽉 찼다고 안됨

2) 그외 리전을 선택했더니 quota limit 0 이라고 안됨

 

살펴봤더니 앞에서 GPU(all region) quota 0->1로 설정한게 모든 리전에서 할당량이 0->1로 바뀐게 아니였음. 

 

**A100 GPU를 사용할수 있는 리전이 다음과같다고 뜬다.

 

 

IAM -> 할당량 -> 필터 누르고 -> 할당량 : nvidia A100 GPUS 검색하면 아래그림과같이 어떤건 한도가 0 , 어떤간 무제한인걸 확인할수 있다. 

( 아래 그림은 할당 요청한상태라 몇몇개가 1로 바꿔져있는것임. )

할당량 증가해야하는 리전만 선택한다음 -> 위에 할당량 수정 클릭 -> 할당량1 입력한다음 제출하면, 5분안에 할당완료 메일이 온다. 

 

 

GCP에서 처음으로 GPU 인스턴스가 생성되었다. 맨날 용량부족만 보다가 감격......

 

여기 다나와있음

 

run-instances — AWS CLI 1.25.26 Command Reference

Note: You are viewing the documentation for an older major version of the AWS CLI (version 1). AWS CLI version 2, the latest major version of AWS CLI, is now stable and recommended for general use. To view this page for the AWS CLI version 2, click here. F

docs.aws.amazon.com

 

사용 예제는 다음과 같이 

aws ec2 run-instances --image-id $IMAGE_ID --count 1 --instance-type $INSTANCE_TYPE --key-name $AWS_KEY --subnet-id $SUBNET_ID --security-group-ids $SG_ID --tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=ys-dcgmi}]')

 

 

--image-id   이미지이름 ( ex: "ami-05f0a758b1c9909d1")

--count    인스턴스 몇개 생성할거냐

--instance-type   인스턴스 타입 (ex : "g4dn.xlarge")

--key-name   pem키이름 (ex : mykey.pem)

--subnet-id   서브넷은 뭘로할거냐 (ex : subnet-3deb2888)

--security-group-ids :   보안그룹 뭘로할거냐 (ex : sg-005ob...)

--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=[여기 인스턴스 이름적으면됨]}]'    : 태그다는건데 인스턴스 Name 설정해줌  

--user-data   :  cli 말고도 그냥 시작할때도 있다. 인스턴스 시작하면서 같이 수행해줄 명령어 bash 명령어 적어주면됨 ( 명령어 다 끝날떄까지 인스턴스 상태가 초기화상태가됨)

--placement AvailabilityZone=us-west-2c  :   원하는 리전에 인스턴스 생성

--launch-template LaunchTemplateName=MYTEMPLATE  :   생성한 템플릿으로 인스턴스 생성

--disable-api-termination :   실수로 종료되지않게끔 설정. 종료하고싶으면 아래처럼 설정을 바꿔준다음에 종료해주면 됨.

ec2-modify-instance-attribute --disable-api-termination false INSTANCEID

 

 

 

** 실행하기 앞서서 aws ec2 run-instance 로 지정해준 이미지나, 보안그룹등이 속하는 리전과  실행 터미널에서 aws configure 을 입력했을때의 리전이 같아야한다

'<Cloud> > AWS' 카테고리의 다른 글

AWS Spot Instance Start  (0) 2024.03.29
AWS Sagemaker Studio Data Wangler 실습  (0) 2022.12.27
AWS 보안서비스 종류들  (0) 2022.05.19
AWS ECS 간단이해  (0) 2022.05.18
Lamdba Cold start 예방하는 방법 2가지  (0) 2022.05.18

< Cloudtrail >

1) cloudtrail 에서 추적생성 (로그기록을 s3 버킷에 저장)

2) cloudwatch 로그그룹에서 지표필터생성(e.g. s3버킷을 필터링할것이다.)

3) cloudtrail log , cloudwatch 통합하기

4) SNS 이벤트 등록하기 (경보생성) -> 조건을 주고 그 조건에 해당하는 이상경보를 이메일이나 문자로 전송하는 역할

(e.g. s3에서 1개이상의 움직임을 보인다면(cloudtrail log에서감지) 이메일을 보내 알려라)

 

< Athena >

아테나를 통해 cloudtrail s3버킷에 저장된 로그기록을 쿼리해서 분석할수 있다.

ex) 지난 7일동안 사용한 user들의 리스트

 

< Config >

특정 규칙을 지정해주고 규칙에 반하는 리소스들을 확인가능

e.g.)

  • cloudtrail-enabled : CloudTrail 기능이 켜져있는지 확인합니다. 
  • ec2-instance-in-vpc : EC2 인스턴스가 VPC 에 연결이되어 있는지 확인합니다.
  • s3-bucket-versioning-enabled : S3 버킷의 Versioning이 enable 되어있는지 살펴봅니다

아래 대시보드 캡쳐에서 규칙은 위의 3가지 예와 같은 것들 / 리소스는 해당 규칙에 부합하는 모든 리소스들

특정 규칙에 부합하는 모든 리소스가 규칙에 만족하면 해당 규칙은 초록색으로 규칙준수 표시로 바뀐다. 

(e.g. s3안의 모든 bucket 들, EC2 인스턴스들이 모두 리소스에 해당 / s3의 모든 버킷(리소스)이 version 활성화되면 s3-bucket-versioning-enabled의 규칙은 초록색으로 규칙준수 상태표시)

 

< Inspector >

인스턴스 검사를 위해서 Agent 설치가 필요 but inspector 는 이미 설치되어있음

설치해서 들어가서 보면 다음과같이 보임. 위험도를 필터링해서 사용할수 있음.

 

< Macie >

민감한 데이터를 퍼블릭으로 오픈된 S3 에 올렸을경우 보안에 문제가 생길수 있음

S3 버킷을 스캐닝해서 위험도가 높은 데이터를 추려서 보여줌

e.g. 탐지해줄 버킷을 지정한다음 작업을 생성하면 아래처럼 민감한 데이터의 경우 위험하다고 경고해줌. pem 키나 개인정보를 저장할경우 위험도는 HIGH 로 뜬다.

 

< KMS >

kms 설정해준 버킷의 경우 안에 들어있는 내용물을 보기위해 링크로 접근하면 거부된다. 에러발생하는게 정상. 파일자체는 공개접근이 가능하게 세팅해주어도 객체를 복호화해줄 키가 없어서 에러가 발생함. 

 

 

< 개념 설명 >

 

 

Amozon ECR : Amazon에서 제공하는 컨테이너 이미지 저장소. ECR 리포지토리에서 푸쉬하면 이미지가 생긴다

 

컨테이너 인스턴스 :  도커구동을 위해서 작동하는 EC2 인스턴스입니다. 일반 EC2와 마찬가지로 오토스케일링,로드발란스 가능.

 

클러스터 : 작업요청을 실행할수 있는 1개이상의 컨테이너 인스턴스를 리전별로 그룹화한것. (=위에 언급한 컨테이너 인스턴스들의 묶음)

 

작업정의 : 작업의 일부가될 컨테이너의 갯수, 컨테이너가 사용할 리소스, 컨테이너간의 연결방식,컨테이너가 사용할 호스트포트같은 어플리케이션관련 컨테이너 정보를 지정해줌. (=작업정의는 이런 도커 컨테이너들을 위한 설정 템플릿입니다.)

 

 

<진행순서>

 

1.  ECR 리포지토리 생성

2. 컨테이너 이미지 생성후 ECR 리포지토리에 푸쉬 (ECR 리포지토리 푸쉬 명령 눌러서 명령어 차례차례 실행하기)

*ECR 레포지터리만들기 + 푸쉬하는법 (더보기 클릭)

3. 작업정의

    ECR 리포지토리 url 복사후 넣어주어 컨테이너 추가 (아래그림에서는 이미지란에 url 복붙)

    위의 개념에서 설명한것처럼 컨테이너가 사용할 호스트포트도 지정가능 

4.  클러스터 생성

5. 클러스터안의 서비스에서 생성버튼 눌러서 서비스 생성

 

 

 

 

 

 

 

참조

 

1. 람다 프로비저닝

(1) 성공적으로 작동하는 람다를 버전으로 저장 +(별칭 지정해주기 이건 선택사항)

(2) 프로비저닝 동시성설정해주기

**아래 (더보기) 버튼 눌러서 실습보기

 

2.EventBridge(구cloudwatch event) 에 일정시간마다(예:5분마다) test json 실행시켜주기

(람다 선택할때 버전 or 별칭 꼭 선택해줄것)

**아래 (더보기) 버튼 눌러서 실습보기

더보기
버전 or 별칭 지정안해주면 해당 규칙이 제대로 적용이안된다 중요중요

 

그다음에 쭉 [다음] -> [생성] 해서 규칙생성 완료해주기

생성해주고 들어가서 람다 버전 맞는지 다시한번 확인해줄것 

 

 

AWS 가 리뉴얼되면서 클릭 한번으로 VPC를 전부 구성할수 있게 되었다 ( 서브넷,인터넷 게이트웨이 등등...)

아래와같이 구성해주었을때의 구조랑 개념설명

 

( + CloudFormation Template를 사용해서도 한방에 vpc를 생성해줄수 있으나,사용자가 직접 template 를 구성해야한다는 번거로움이 있음)

 

<구조>

 

< 간략한 개념 설명 >

VPC : AWS 에서 독립적으로 사용가능한 네트워크라고 생각하면된다.

(디폴트 VPC 는 사용을 권장하지 않음. 이유는 퍼블릭상태라 외부에서 접근해서 변경해줄수가 있기 때문. 테스트용도로만 사용하기를 권장하며 중요한 프로젝트나 내용은 따로 VPC를 새로 생성해서 사용하는것을 권장한다)

 

서브넷 : 서브넷은 IP 주소에서 네트워크 영역을 부분적으로 나눈 부분 네트워크를 의미한다. 

(다만 아래 몇개 주소는 미리 예약되어 있는 주소라 사용불가능함.)

 

퍼블릭 서브넷 : 외부와 자유로운 통신이 가능하다. 한마디로 외부에서도 자유롭게 들어올수 있고 내부에서도 외부로 자유롭게 나갈수 있다. 예를들면 아이피를 찍어서 외부에서 내부로 직접 들어올수 있다. 

 

프라이빗 서브넷 : 중간다리를 통하지 않으면 외부에서 절대 접근이 불가능. 내부에서 외부로 나가는것만 가능하다. 

(예를들어서 web server만 퍼블릭하게 설정해주고 application server/database server 같은 부분은 외부에서 접속가능하면 큰일나기 때문에 private 으로 설정해줘야함)

 

Nat gateway : 프라이빗 서브넷이 외부와의 중간다리 역할을 하는게 이것. 프라이빗 서브넷을 사용하기위해서는 퍼블릭 서브넷안에 nat gateway 를 생성해주고 natgateway 를 통해서 퍼블릭 서브넷을 사용해 외부와 소통한다. 

 

elastic ip : 고정 IP (ec2 인스턴스를 중지했다가 다시시작하면 아이피가 바뀌기 떄문에 중지했다 다시 시작해도 고정된 아이피로 진행되게 한다. ipv4는 한정적이라 한계정당 5개정도밖에 지정을 못해준다고 한다)

 

인터넷 게이트웨이 : 인터넷 게이트웨이는 공공 네트워크 구간으로 퍼블릭 서브넷의 IP 통신을 도와준다. 한마디로 VPC 대문이라고 생각하면된다. 퍼블릭 서브넷이랑 연결된 라우팅 테이블 제일 마지막에는[ 0.0.0.0/0  인터넷게이트웨이 ] 이렇게 구성되어서 외부로 나갈수 있게 세팅해주어야한다.

 

사실 지금까지 호환성에 대해서는 그렇게 크게 신경쓰지 않았고,기존에 사용한 AMI 이미지를 사용했으나 이제껏 전혀 문제가 없었기 때문에 호환성에 대해 무지했고 버전에 중요성에 대해 크게 생각하지 않았다. 

그런데 꽤 최근에 나온 GPU에서 구 버전 CUDA를 사용하다가 생각도 못한 에러폭탄을 맞아서 호환성의 중요성에 대해 느끼게 되었다...

 

아래는 텐서플로우, 쿠다, 파이썬 버전 호환성 확인 (쿠다 11.2 이상부터는 파이썬도 3.7이상 사용해야함)

 

소스에서 빌드  |  TensorFlow

Help protect the Great Barrier Reef with TensorFlow on Kaggle Join Challenge 소스에서 빌드 소스에서 TensorFlow pip 패키지를 빌드하고 Ubuntu Linux 및 macOS에 설치합니다. 명령어는 다른 시스템에도 적용될 수 있지만, U

www.tensorflow.org

 

 

< G5 인스턴스 >

g5 인스턴스는 CUDA11.4 이상 사용을 권장

(aws repost 라고 aws호환성관련해서는 답은좀 느리지만 궁금한게 있으면 여기에 질문하는게 정확한것 같다. )

https://repost.aws/questions/QUNR0L1sSIRd-e1zeRIoEc1Q/gpu-fails-to-intialize-on-g-5-xlarge-instance

 

GPU fails to intialize on g5.xlarge instance | AWS re:Post

Hello, I have tried to create several g5.xlarge innstance with various AMI "quickstart" (Deep Learning AMI GPU TensorFlow 2.7.0 (Amazon Linux 2) 20211111 - ami-0850c76a5926905fb, Deep Learning AMI...

repost.aws

 

< p4d.24xlarge 인스턴스 >

아래는 내가 물어본질문이다. 

쿠다 10.1에서는 도저히 에러해결이 안되서 동일한 암페어 GPU (2020년 9월 출시한 RTX 3000 시리즈는 공식적으로 쿠다11이상만 지원하고있다 )가 쿠다 11이상을 지원하는걸보고 11.4로 실행했더니 해결했다. 

뒤늦게 답이 달렸는데 쿠다버전, 텐서플로우버전, 심지어 이미지까지 알려주셨다. 

https://repost.aws/questions/QUdPFPsWPcSh6TIozmOGBidw/runtime-error-cuda-runtime-implicit-initialization-on-gpu-0-failed-status-device-kernel-image-is-invalid

 

RuntimeError: CUDA runtime implicit initialization on GPU:0 failed. Status: device kernel image is invalid | AWS re:Post

The environment I'm using is: - aws p4dn.24xlarge instance (NVIDIA Ampere A100 GPU ) - cuda 10.1 - tensorflow 2.3.0 - python 3.6.9 I get an error when I run the following. What is the reason? `...

repost.aws

 

 

 

 

 

 

 

 

 

CLI 연결하기

https://cloud.google.com/sdk/docs/quickstart?hl=ko#linux 참조

  1. 맥 : google-cloud-sdk-367.0.0-darwin-x86_64.tar.gz 다운로드
  2. ./google-cloud-sdk/install.sh 로 설치
  3. ./google-cloud-sdk/bin/gcloud init 로 초기화
  4. gcloud init
  5. 확인용 gcloud auth list / gcloud config list / gcloud info

(** region : 본인은 us-central1-a 사용 )

 

 

이미지 찾기

https://cloud.google.com/deep-learning-vm/docs/images 참조

gcloud compute images list \
        --project deeplearning-platform-release \
        --no-standard-images

ㄴ결과값 너무많아서 보기 힘듬

 

 

cu100-ubuntu-1804 를 검색 (cuda10, ubuntu18 )

⇒ ‘common-cu100-ubuntu-1804’

아래 명령어로 해당 인스턴스 검색 (cuda10 깔려있고, 텐서플로우는 없는듯하다)

gcloud compute images describe-from-family common-cu100-ubuntu-1804 \
    --project deeplearning-platform-release

 

 

GCP 는 region 마다 사용가능한 GPU가 모두 다르다. 아래 링크에서 확인가능

https://cloud.google.com/compute/docs/gpus/gpu-regions-zones

 

 

사용하기 앞서서 본인 GPU quotas 할당량을 살펴보면 , 그와중에 어디는 허용이고 어디는 허용 불가능이고 해서 region -> 사용가능한 GPU 뭐있나 -> 해당리전의 GPU quotas =1 인지  하나하나 맞춰보기 너무 헷갈리고 에러도 나고 해서

리전에서 사용가능한 GPU를 모두 사용할수있게 신청했다.

 

 

 

IAM -> Quotas 들어가서 GPU(all region) 검색후 선택 -> 할당량 수정 누름된다.

사용하려는 이유를 함꼐 써서 제출하면 된다.

 

보냈는데 1분안에 답이 왔다.

 

 

그럼 전에는 한도가 0 이였던게 요청후에는 1로 늘어나있는거러 확인가능하다.

DSVM 에 뭐가 세팅되어있는지 확인 : https://docs.microsoft.com/ko-kr/azure/machine-learning/data-science-virtual-machine/tools-included

 

DVSM 에서 사용가능한 GPU 인스턴스가 한정적이다. 이유는 vCPU 제한이 있기 때문

 

vCPU 한도를 4 ->6 으로 증가요청을 하여 막힌 vm 인스턴스 사용하겠다고 할당량증가 요청을 해줌 된다.

p100 GPU 인스턴스를 요청했는데 거절당했다. (이유는 22.8.31 에 곧 종료될 인스턴스라 노후화되었다고 판단하여 할당해주지않은듯하다)

 

 

ssh 로 key 생성하기

azure portal 에서 생성하기

 

azure 검색창에 ssh 검색해서 들어간다음, create ssh key 클릭 , 이름이랑, region 선택한다음 생성하고 다운로드 받으면 끝

 

https://docs.microsoft.com/ko-kr/cli/azure/install-azure-cli-macos 참조 

brew update && brew install azure-cli
az upgrade
az login
az vm image list --all // 사용가능한 모든 이미지리스트를 출력해준다
az vm image list -f CentOS --all  // 사용가능한 centos 이미지 리스트를 출력해준다
az vm image list-offers -l westus -p MicrosoftWindowsServer 
// westus 에서 사용가능한 Microsoft에서 제공하는 모든걸 나열
az vm image list -l westus -f Ubuntu

 

 

일단 제일먼저 해야할것은 SSH 키 만들기이다.

다른 클라우드들이랑 다르게 진짜 특이하다. 보통은 인스턴스 만들면서 같이 만드는데 IBM CLOUD 는 내가 직접 키를 만들어와서 등록해야한다.

 

이렇게 만들면 아래처럼 vm 디바이스 만들떄 선택가능해진다.

 

 

나는 대충 AWS pem 키를 복사한다음 이름만 바꿔서 SSH 키를 추가해주었고, vm 인스턴스를 시작했다.

**키충돌로 접속 안될떄)

cd ~/.ssh

rm known_hosts

 

디바이스 => 추가 버튼 눌러서 선택선택해서 생성해준다.

(참조로 인스턴스 전원끄면 Ping 안된다고 이메일간다. 중간에 인스턴스 용량늘려주는 업그레이드해도 이메일간다. 이메일이 자잘자잘하게 정말 많이간다. 시작할때 이메일알람옵션은 해제 불가능 ㅎㅎ)

 

이렇게 다만들었으면 SSH 접속을 한다.

중간에 공인 IP 번호랑 키이름은 바꿔서 ㄱㄱ

chmod 400 ys-ibm2.pem
ssh root@169.60.147.164 -i ys-ibm2

그다음 비밀번호 물어보는데, 위사진에서  펼치면 나오는 사용자이름옆에 비밀번호 치면 접속된다.

 

그다음, vm 디바이스 안에 있는 파일을 로컬로 다운받고 싶을때 다음과같이 입력하면된다

우분투를 사용했는데 기본 루트가  /root/  이다.

로컬 pem 키 위치랑, 공인 IP , vm 인스턴스내 다운받고자 하는 파일이름바꿔서 실행 ㄱㄱ (참조로 로컬컴은 맥)

 

scp -i /Users/heoyunseo/desktop/aws_pem/ys-ibm.pem -r root@169.60.147.164:/root/profet/data_generation/ .

+ Recent posts