跳至主要内容

Oracle Cloud Infrastructure

 OCI 계정 생성

OCI에 계정 생성 시, Oracle은 서로 다른 2개의 identity system에 접근 할 수 있는 사용자를 생성합니다.

OCI에서 Sign up시 Oracle Identity Cloud Service에 설정된 아이디와 비번의 사용자가 생성됩니다. SSO 옵션의 사용으로 재인증없이 Oracle Cloud Infrastructure에도 로그인 가능합니다.

page1image13022208 

OCI 주요 용어

Region과 AD(Availability Domains)

OCI는 Region과 AD에서 운영됩니다. Region는 데이터 센터가 운영되는 지리적인 영역입니다. AD는 region을 구성하고 실제 OCI 서비스가 운영되는 데이터 센터 입니다.

region는 오라클 클라우드가 서비스되는 물리적 데이터 센터인 AD를 묶는 논리적 단위로 각 region은 한개에 최대 3개 AD로 구성됩니다.

AD는 어떤 자원도 공유하지 않는 물리적으로 독립된 데이터 센터입니다. AD는 물지적 자원을 공유하지 않기 때문에 특정 AD 장애가 다른 AD로 파급되지 않습니 다. AD는 고가용성을 위한 설계입니다.

page1image13022416

Console

OCI를 접속하고 관리하기 위한 웹기반 user interface

page2image12792208

Tenancy

OCI 계정을 생성하면, 해당 계정을 위한 Tenancy가 생성됩니다. OCI에서 Tenancy는 완전히 독립되고 격리된 사용자 기준의 최상위 단위입니다.

Compartment

  • OCI자원을 논리적으로 묶는 역할을 담당.
  • 다양한 OCI자원의 논리 그룹을 Compartment로 만들고 이 단위로 자원 모니터링, 과금 및 권한을 설정. OCI자원을 관리하는 핵심 구성요소.
  • Oracle Cloud 계정인 Tenancy가 만들어지면 Root Compartment(관리자 Compartment)가 만들어집니다.

Compartment와 Region

  • IAM resources(compartments, users, groups, policies, tags, federation providers)는 global이기 때문에 region에 상관없이 전체 정보를 확인 가능 합니다.
  • compartment내의 resource 정보는 console에 선택된 region 정보에 따라 해당 region에 생성된 리소스 정보만 확인 가능
  • Working Across Regions: https://docs.oracle.com/en-us/iaas/Content/GSG/Concepts/console.htm#Understa

page2image12649904

key pair

key pair은 OCI가 사용하는 인증방식입니다. key pair는 private key와 public key 파일로 구성됩니다. 생성된 공개키는 OCI에 업로드 됩니다. 

OCI는 목적에 따라 두 가지 유형의 Key Pair를 사용합니다.

  • 인스턴스 SSH Key Pair(키 페어) 인스턴스의 SSH 접속에 사용됨
    • 인스턴스의 SSH 접속에 사용됨
    • 인스턴스를 프로비저닝할 때, 생성된 공개키를 등록
  • API signing key pair(API 서명 키 페어)
    • API 사용 시 (https://docs.oracle.com/en-us/iaas/Content/API/Concepts/sdks. htm#Software_Development_Kits_and_Command_Line_Interface)
    • pem format을 사용
  • public key 등록 시 authentication 정보가 표출되고, 해당 내용 config 파일에 저장합니다.

API signing key로 OCI 계정에 접근하기

  • API Signing Key 발급받기 
    • .oci 폴더 생성
      •  mkdir ~/.oci 
    • private key 생성
      • openssl genrsa -out ~/.oci/oci_api_key.pem -aes128 2048
    • private key 파일을 read, write, execute 권한 부여
      • chmod go-rwx ~/.oci/oci_api_key.pem
    • public key 생성
      • openssl rsa -pubout -in ~/.oci/oci_api_key.pem -out ~/.oci/oci_api_key_public.pem
    • key fingerprint 생성
      • openssl rsa -pubout -outform DER -in ~/.oci/oci_api_key.pem | openssl md5 -c
    • Oracle Document 참고: https://docs.oracle.com/en-us/iaas/Content/API/Concepts/apisigningkey.htm#two 
  • PEM key를 Console에 업로드하기
    • 사용자 설정 페이지 이동[API Keys→ Add API Key→ Paste Public Key]
page3image12659680

View Configuration file → Configuration File Preview의 내용을 config파일에 저장(.oci/config)

 page4image12948976

page4image12951264 

 


OCI 계정에 Signing Step

  • HTTPS request(SSL protocal TLS 1.2) 
  • signing string을 생성해야 합니다.
    • GET 및 DELETE 요청 시 signing string에 포함되어야 하는 정보 (request-target), host, date 혹은 x-date
    • Signing Algorithm은 RSA-SHA256를 사용 Signature Version
      • version="1"
    • Example Header

                    Authorization: Signature version="1",keyId="<tenancy_ocid>/<user_ocid>/<key_fingerprint>",
                    algorithm="rsa-sha256",headers="(request-target)
                    date x-content-sha256content-type content-length",signature="Base64(RSA-SHA256
                    (<signing_string>))"
  • signature를 생성해야 하고 private key에 RSA-SHA256 알고리즘을 적용
  • signature를 Authorization header에 부착
  • oracle document참고: https://docs.oracle.com/en-us/iaas/Content/API/Concepts/signingrequests.htm

필요한 파라미터 정보

  • tenancyId, user OCID, FingerPrint, private key, region, passphrase, 현재시간

PostMan으로 Rest API 테스트

  • Compartments를 불러오는 REST API 테스트
  • page5image12766048

Reference URL: http://taewan.kim/oci_docs/00_oci/terminologies/ https://docs.oracle.com/en-us/iaas/Content/API/Concepts/apisigningkey.htm#two


评论

此博客中的热门博文

Pandas Plot

pandas.DataFrame.plot.bar import matplotlib.pyplot as plt import pandas as pd import numpy as np df = pd.DataFrame(np.random.rand(5, 4).round(1),                   index=['snail', 'pig', 'elephant','rabbit', 'giraffe'],                   columns=pd.Index(['speed', 'lifespan', 'active', 'cuite'],                   name='Genus')) ax = df.plot(kind='bar',figsize=(10,4), rot = 0) plt.show() ==> output in Pycharm

Spring Cache

Cache 추상화 이해하기 핵심부분에서 추상화는 Java method에 캐싱을 적용함으로써 캐시에 보관된 정보로 메서드의 실행 횟수를 줄여준다. 즉 대상 메서드가 실행될때마다 추상화가 해당 메서드가 같은 인자로 이미 실행되었는 확인하는 캐싱 동작을 적용한다. 해당 데이터가 존재한다면 메서드를 실행하지 않고 결과를 반환하고 존재하지 않는다면 메서드를 실행하고 그 결과를 캐싱한 뒤에 사용자에게 반환해서 다음번 호출시에 사용 할 수 있게 한다. Spring cache는 cache 추상화를 지원하는데 EhCache, Redis, Couchbase 등 캐시 저장소와 빠르게 연동하여 bean으로 설정 할 수 있도록 도와준다. 선언적인 어노테이션 기반의 캐싱 @Cacheable  메소드에 지정 가능하고 지정된 메서드의 캐시 설정에 따라 데이터가 한번 생성되면 데이터가 캐싱되며, 다음 호출 시에 캐시에 저장된 데이터가 리턴된다. @Cacheable 설정 옵션은 다음과 같다. value 캐싱 공간의 대표 명칭 key Spring Expression Language(SpEl)으로 key생성을 지정  지정하지 않으면 모든 파라미터를 조합한 해시코드 값을 키로 생성 condition 조건부 캐싱. SpEL로 지정하고 표현식이 true면 메서드를 캐시 사용가능한 SpEL evaluation context 이름 위치 설명 예시 methodName root object 호출되는 메서드의 이름 #root.methodName method root object 호출되는 메서드 #root.method.name target root object 호출되는 대상 객체 #root.target targetClass root object 호출되는 대상 클래스 #root.targetClass args root object 대상을 호출하는데 사용한 인자(배열) #root.args[0] caches root object 현재 실행된 메서드 캐시의 컬렉션 #root.caches[0].name a...

R 데이터 타입

R에서의 데이터 타입 기본형은 Vector 이다. 자료형은 다음과 같다. Vector List Matrix Array DataFrame Vector 정의 다른 언어의 배열과 비슷하고, 한 가지의 스칼라 데이터타입의 데이터들을 저장할 수 있다.       (ex, 숫자만 저장하는 배열/문자열만 저장하는 배열/ a <- 1/ a <- "hello") 슬라이스(Slice)를 제공한다.        Slice란? 배열의 일부를 잘라내고 이를 다시 배열로 다루는 개념 생성 c()함수 안에 원하는 인자들을 나열 > x <- c(1, 2, 3) > x [1] 1 2 3  다음과  x <- c(1, 2, 3)부분에 괄호로 코드를 묶으면 실행된 결과값이 출력된다.        ※ 괄호로 코드를 묶으면 괄호안의 문장을 수행하고 그 결과 값을 화면에 출력 > ( x <- c(1, 2, 3) ) [1] 1 2 3 데이터 접근 인덱스로 데이터에 접근할 수 있고 인덱스는 0이 아닌 1부터 시작한다. 접근 문법 x[n]: vector x의 n번째 요소 x[-n]: vector x에서 n번째 요소를 제외한 나머지를 반환 > x <- c("a", "b", "c") > x[-1] [1] "b" "c" x[idx_vector]: idx_vector에 지정된 요소를 얻어옴. idx_vector는 색인을 표현하는 숫자 vector이다. > x <- c("a", "b", "c") > x[c(1, 2)] [1] "a" "b" x[start:end]: start부터 end까지의 값을 반환, 반환 값은 start위치의 값과...