본문 바로가기
8. AI & ML

OCI Data Science - 데이터 접속(Object Storage, ADW)

by Unemployed 2024. 6. 24.

OCI Data Science 에서 제공하는 다양한 접속 방법을 통해 데이터 접속이 가능합니다.  

1. Object Storage 접속 

1.1 Rssource Principal  

1.2 API Key

1.3 Object Storage 마운팅  

2. ADW 접속 

2.1 Wallet 사용 

 

 

1. Object Storage 접속 

Data Science Notebook Session 에서 Object Storage에 접속하는 방법은 아래의 3가지 방법이 있습니다. 

 

 1) Rssource Principal 사용

 2) API Key 사용

 3) Object Storage 마운팅 

 

Data Science 의 예제를 통해서 1, 2에 대한 부분을 Data Science 에 기본으로 들어가 있는 getting_started.ipynb 파일을 열고 알아보겠습니다. 

 

Authentication

To interact with oci services you need to authenticate with one of the following mechanism 

 

- 위와 같이 Resource Principal 을 생성하는 방법과 API Key 를 활용하는 방법이 있습니다. 

 

1.1 Rssource Principal   :

Data Science 의 NoteBook Session 이 Object Storage 에 접근할 수 있는 Policy 가 필요합니다. 

 

 * 이전 Posting 참조 https://oracle-cloud.tistory.com/entry/OCI-Data-Science-Private%EA%B5%AC%EC%84%B1

더보기

1. Create a dynamic group with the following matching rule:

ALL { resource.type = 'datasciencenotebooksession' }

 

2. 아래와 같은 형태의 Policy 가 추가적으로 필요합니다. 

ALLOW DYNAMIC-GROUP '<ds-dynamic-group>' TO MANAGE objects IN TENANCY

이후 간단하게 아래와 같이 손쉽게 Object Storage 에 접근 할 수 있습니다. 

 

1.2 API Key 

 

또는 위 Object Storage 를 접근할 수있는 권한을 가진 사람의 API Key 를 통해서 접근 할 수 있습니다.

OCI CLI 가 사용됩니다.  

OCI CLI는 Oracle Cloud Infrastructure 콘솔에서 사용 가능한 대부분의 서비스로 작업할 수 있게 해주는 도구

 

아래와 같이 터미널을 열고 설치된 OCI CLI  Version 을 확인하고, 

 

oci setup config 로 설정파일에 User 정보등을 입력합니다. 

oci setup config

 

1. 설치 경로 입력 

Enter a location for your config [/home/datascience/.oci/config]: 

 

2. 사용자 ID 의 OCID 입력 (OCI Console - Identity - My Profile 참조) 

Enter a user OCID: 

 

3. 테넌시 OCID 입력 ( Administration - Tenanvy Detail 참조) 

Enter a tenancy OCID: 

 

4. 사용할 리전 입력 

Enter a region by index or name(e.g.
1: af-johannesburg-1, 2: ap-chiyoda-1, 3: ap-chuncheon-1, 4: ap-dcc-canberra-1, 5: ap-dcc-gazipur-1,
6: ap-hyderabad-1, 7: ap-ibaraki-1, 8: ap-melbourne-1, 9: ap-mumbai-1, 10: ap-osaka-1,
11: ap-seoul-1, 12: ap-singapore-1, 13: ap-sydney-1, 14: ap-tokyo-1, 15: ca-montreal-1,
16: ca-toronto-1, 17: eu-amsterdam-1, 18: eu-dcc-dublin-1, 19: eu-dcc-dublin-2, 20: eu-dcc-milan-1,
21: eu-dcc-milan-2, 22: eu-dcc-rating-1, 23: eu-dcc-rating-2, 24: eu-dcc-zurich-1, 25: eu-frankfurt-1,
26: eu-frankfurt-2, 27: eu-jovanovac-1, 28: eu-madrid-1, 29: eu-madrid-2, 30: eu-marseille-1,
31: eu-milan-1, 32: eu-paris-1, 33: eu-stockholm-1, 34: eu-zurich-1, 35: il-jerusalem-1,
36: me-abudhabi-1, 37: me-abudhabi-3, 38: me-dcc-doha-1, 39: me-dcc-muscat-1, 40: me-dubai-1,
41: me-jeddah-1, 42: mx-monterrey-1, 43: mx-queretaro-1, 44: sa-bogota-1, 45: sa-santiago-1,
46: sa-saopaulo-1, 47: sa-valparaiso-1, 48: sa-vinhedo-1, 49: uk-cardiff-1, 50: uk-gov-cardiff-1,
51: uk-gov-london-1, 52: uk-london-1, 53: us-ashburn-1, 54: us-chicago-1, 55: us-gov-ashburn-1,
56: us-gov-chicago-1, 57: us-gov-phoenix-1, 58: us-langley-1, 59: us-luke-1, 60: us-phoenix-1,
61: us-saltlake-2, 62: us-sanjose-1):

 

5. API Key 생성 여부 결정 (신규로 만들지 아니면 있는 것을 사용할지 결정)  Do you want to generate a new API Signing RSA key pair? (If you decline you will be asked to supply the path to an existing key.) [Y/n]: 

 

6. Key 저장 위치 지정 

Enter a directory for your keys to be created [/home/datascience/.oci]: 

 

7. Key 이름 결정 

Enter a name for your key [oci_api_key]:

 

8. passphrase 결정 

Public key written to: /home/datascience/.oci/oci_api_key_public.pem
Enter a passphrase for your private key ("N/A" for no passphrase): 

 

생성 완료 메시지 

 

Private key written to: /home/datascience/.oci/oci_api_key.pem
Fingerprint: 4e:4f:67:04:cc:24:15:5a:16:5d:57:a3:73:36:09:73
Config written to /home/datascience/.oci/config

 

 

 

-이후 아래와같이 생성된 Public Key  등록 필요 

 

 

Object Storage 접근을 위한 추가 작업 

 

참조 테크 블로그 :  https://blogs.oracle.com/ai-and-datascience/post/ocifs-introduction

 

Ocifs: Read Object Storage Natively with Pandas

With ocifs, you can read from and write to Oracle Cloud Infrastructure's (OCI) Object Storage natively from pandas. Ocifs is a POSIX-compatible API wrapping Object Storage, enabling popular python libraries, such as pandas, to interact with Object Storage

blogs.oracle.com

 

아래와 같은 방법으로 사용이 가능

Getting Started
Ocifs can be installed from pypi:

pip install ocifs
Once ocifs is installed, read in your data using the OCI Object Storage URI scheme:

df = pd.read_csv("oci://my-bucket/my-data.csv")
It's that simple.

If you are working outside of an OCI Resource (such as a Compute Instance or an ML Job), you may need to include your user config file:

pd.read_csv("oci://my-bucket/my-data.csv", storage_options = {"config": "~/.oci/config"})
where you have a valid config file and pem key saved locally.

 

 

URI Scheme 

 

아래와 같이 다른 스토리지 옵션을 통해 Object Storage 에 접근할 수 있습니다. 

 

1.3 Object Storage 마운팅  

 

NoteBook 세션을 생성하거나, 다시 활성화 시킬 시, Object Storage Bucket 을 리눅스 서버에 특정 디렉토리로 마운트 할 수 있습니다. 이러한 기능을 통해 Object Storage Bucket 의 폴더나 파일을 여러 NoteBook Session 에서 공유 스토리지와 같이 사용할 수 있습니다. 

 

이미 하나의 Bucket 정보가 등록되어 마운트 되어 있습니다. 

여기에서 + Add Stotage mount 버튼을 클릭합니다. 

위와 같이 Type 에서 OCI Object Storage 를 선택합니다. 

하래 선택 메뉴가 바뀌면서, 해당하는 Compartment 를 선택할수 있으며, 

해당 Compertment 에 접근 가능한 Object Storage 의 Bucket name 이 자동으로 리스트업됩니다. 

이중에 Mount할 Bucket 를 선택하고, 리눅스 서버의 어느 디렉토리로 마운트 할지 경로를 지정합니다. (없으면 생성됩니다. ) 

 

여기까지 하고 Submit버튼을 눌르고, 다시 Activate 버튼을 눌러서 Notebook Session 을 활성화 시킵니다. 

 

 

이제 해당 세션으로 접속 해 보겠습니다. 

 

터미널로 접속합니다. 

 

접속후, 우리가 지정한 /objectstoagebucket 을 확인 합니다. 

 

위와 같이 두개의 Bucket 에 접속 가능한 것을 확인하였습니다. 

 

2. ADW 접속 

 

Data Science 에서 ADW 접속을 위해 특정 디렉토리에 Wallet 을 넣고 접속을 테스트 해 보겠습니다. 

 

2.1 Wallet 사용 

 

다운받은 ADW Wallet 파일을 Data Science 의 특정 폴더를 생성 후 드래그 엔 드랍으로 복사합니다. 

 

노트북 예제에서 아래의 예제 (Loading Data With Pandas & Dask)를 가지고 옵니다. 

 

중간에 Oracle Autonomous Database 부분에 DB ID PASS 및 정보를 기입한 접속 파라메터를 세팅합니다. 

 

이후 ads 에 read_sql 을 사용하여 데이터를 불러올 수 있습니다. 

 

이상으로 OCI Data Science 에서 Object Storage 및 ADW 로의 연결을 알아보았습니다. 

 

감사합니다

 

 

댓글