콘솔에서 Service Gateway 서비스를 사용하는 방법을 설명합니다.
서비스 게이트웨이를 생성하는 방법은 다음과 같습니다.
연결 유형을 선택합니다. 서비스 게이트웨이에 할당된 IP로 접근 시 선택한 대상과 연결됩니다.
{region}.sep-{12자리 16진수} 형식입니다(예: kr1.sep-0a1b2c3d4e5f).알아두기
입력한 서비스 이름은 생성 시 유효성이 검증되며, 게시자의 허용 프로젝트에 포함된 경우에만 연결할 수 있습니다.
VPC를 선택합니다. 선택된 VPC에 종속된 서비스 게이트웨이가 생성됩니다.
사설 IP 할당 방법을 선택합니다.
알아두기
입력하는 IP 주소는 선택된 서브넷의 CIDR 범위 내에 있어야 합니다.
NAT IP 고정 여부를 선택합니다.
알아두기
선택이 가능한 서비스에서만 활성화됩니다.
생성한 서비스 게이트웨이는 Network > Service Gateway 화면에서 확인할 수 있습니다. 서비스 게이트웨이를 선택하면 하단에 서비스 게이트웨이 정보가 나타납니다. 연결 유형이 사용자 정의 엔드포인트인 경우, 상세 정보의 연결 대상에서 엔드포인트의 표시 이름과 식별자를 확인할 수 있습니다.
서비스 게이트웨이를 변경하는 방법은 다음과 같습니다. 이름, 설명만 변경할 수 있습니다.
서비스 게이트웨이를 삭제하려면 Network > Service Gateway 화면에서 삭제할 서비스 게이트웨이를 선택하고 서비스 게이트웨이 삭제 버튼을 클릭합니다.
사용자 정의 엔드포인트는 사용자가 자신의 리소스(로드 밸런서)를 엔드포인트로 게시하여, 다른 프로젝트에서 서비스 게이트웨이로 연결할 수 있도록 공유하는 기능입니다. 게시자는 공유용 *서비스 이름(service_name)을 발급받아 연결을 허용할 대상에게 전달하고, 허용 프로젝트를 직접 관리합니다.
사용자 정의 엔드포인트를 생성하는 방법은 다음과 같습니다.
{region}.sep-{12자리 16진수})이 자동으로 발급됩니다. 이 서비스 이름을 연결을 허용할 소비자에게 전달합니다.알아두기
사용자 정의 엔드포인트는 프로젝트당 기본 5개까지 생성할 수 있습니다.
사용자 정의 엔드포인트 탭에서 생성한 엔드포인트 목록을 확인할 수 있습니다. 엔드포인트를 선택하면 하단에 상세 정보가 나타나며, 기본 정보(서비스 이름, 리소스 유형, 대상 리소스, 최대 생성 개수 등), 허용 프로젝트, 사용 현황을 확인할 수 있습니다.
이름, 표시 이름, 최대 생성 개수, 설명만 변경할 수 있습니다. 리소스 유형과 대상 리소스는 변경할 수 없습니다.
알아두기
최대 생성 개수를 줄여도 이미 생성된 서비스 게이트웨이는 유지됩니다. 다만 현재 개수가 최대 생성 개수를 초과하는 동안에는 새 서비스 게이트웨이를 추가로 생성할 수 없습니다.
사용자 정의 엔드포인트 탭에서 삭제할 엔드포인트를 선택하고 삭제 버튼을 클릭합니다.
주의
이 엔드포인트를 사용 중인 서비스 게이트웨이가 하나라도 있으면 삭제할 수 없습니다. 엔드포인트를 삭제하면 등록된 허용 프로젝트도 함께 삭제됩니다.
공유한 서비스 이름이 외부에 유출되는 등 변경이 필요한 경우 서비스 이름을 재발급할 수 있습니다.
주의
재발급하면 기존 서비스 이름은 즉시 폐기되어 더 이상 조회되지 않습니다. 기존 서비스 이름으로 생성한 서비스 게이트웨이는 정상 동작하지만, 새로 서비스 게이트웨이를 생성하려면 재발급된 서비스 이름을 사용해야 합니다.
알아두기
서비스 이름 재발급은 엔드포인트를 생성한 프로젝트의 구성원(소유자)만 수행할 수 있습니다.
허용 프로젝트는 이 엔드포인트로 연결(서비스 게이트웨이 생성)을 허용할 대상을 관리하는 목록입니다.
알아두기
전체 허용()과 특정 프로젝트를 함께 등록한 경우 더 좁은 범위(특정 프로젝트)가 적용됩니다. 이를 이용하면 무중단으로 허용 범위를 전환할 수 있습니다. 예를 들어 전체 허용() 상태에서 특정 프로젝트를 추가한 뒤 전체 허용(*)을 삭제하면, 연결 중단 없이 특정 프로젝트만 허용하도록 전환됩니다.
기존 허용 대상은 설명만 변경할 수 있으며, 허용 범위와 테넌트 ID는 변경할 수 없습니다. 허용 대상을 삭제하려면 목록에서 대상을 선택하고 삭제 버튼을 클릭합니다.
엔드포인트 상세 정보의 사용 현황 탭에서 이 엔드포인트에 연결 중인 서비스 게이트웨이 목록을 확인할 수 있습니다. (읽기 전용)
생성된 서비스 게이트웨이의 IP 주소가 192.168.1.42라 할 경우 다음과 같은 방법으로 서비스에 접근이 가능합니다.
VM Instance에서 서비스 게이트웨이 IP로 접속하면 서비스 게이트웨이 생성 시 선택된 서비스로 연결되어 서비스 사용이 가능합니다.
/etc/hosts에 IP 주소와 URL을 추가하시기 바랍니다.~# wget http://192.168.1.42/v1/AUTH_8222a22c22244badbf876dcd521f3f98/test-obs/test_file.txt
서비스 게이트웨이를 이용하여 서비스 접근 시 URL을 지원하지 않습니다. URL 접근이 필요한 경우 아래 예시와 같이 /etc/hosts 파일에 URL을 추가해야 합니다.
예시) URL을 이용하여 오브젝트 스토리지에서 파일 다운로드
/etc/hosts 파일에 아래와 같이 서비스 게이트웨이의 IP 주소와 Object Storage의 URL을 추가합니다.
192.168.1.42 kr1-api-object-storage.nhncloudservice.com
IP 주소 대신 /etc/hosts에 추가한 URL로 접속
~# wget https://kr1-api-object-storage.nhncloudservice.com/v1/AUTH_8222a22c22244badbf876dcd521f3f98/test-obs/test_file.txt
오브젝트 스토리지에 관련된 내용은 예제 설명을 위한 수준에서만 기술합니다. 오브젝트 스토리지의 자세한 사용 방법은 사용자 가이드 > Storage > Oject Storage를 참고하시기 바랍니다.
오브젝트 스토리지 API를 사용하려면 인증 토큰을 발급받아야 합니다. 인터넷 사용이 불가능한 격리된 환경의 VPC에서 Object Storage를 사용하려면 인증 토큰도 서비스 게이트웨이를 이용하여 발급받아야 하며, 다음 절차에 따라서 서비스 게이트웨이를 생성해야 합니다.
Object Storage를 선택하여 생성한 서비스 게이트웨이의 IP 주소가 192.168.1.42이고 IaaS API Identity를 선택하여 생성한 서비스 게이트웨이의 IP 주소로 192.168.1.57을 할당받은 경우, VM Instance의 /etc/hosts 파일에 아래와 같이 IP 주소와 URL을 추가합니다.
알아두기
오브젝트 스토리지의 API URL 주소는 콘솔 화면의 Storage > Object Storage에서 API 엔드포인트 설정 버튼을 클릭하여 확인할 수 있습니다.
주의
리전마다 사용하는 오브젝트 스토리지 API의 URL 주소는 다르기 때문에 API 엔드포인트 설정의 URL을 반드시 확인해 주시기 바랍니다.
192.168.1.42 api-identity-infrastructure.nhncloudservice.com
192.168.1.57 kr1-api-object-storage.nhncloudservice.com
오브젝트 스토리지의 API 비밀번호 설정을 하고 인증 토큰을 발급받습니다.
API 비밀번호 설정
알아두기
상세한 사용 방법은 사용자 가이드 > Storage > Object Storage > API 가이드를 참고하시기 바랍니다.
인증 토큰 발급 요청
NHN Cloud 로그인 ID와 앞서 설정한 API 비밀번호 설정의 비밀번호를 이용하여 아래와 같이 IaaS API Identify 서비스용으로 생성한 서비스 게이트웨이 URL에 토큰 발급을 요청합니다.
auth.passwordCredentials.username에는 NHN Cloud 로그인 ID 사용auth.passwordCredentials.password에는 API 비밀번호 설정에 입력한 비밀번호 사용~# curl -X POST -H 'Content-Type:application/json' https://api-identity-infrastructure.nhncloudservice.com/v2.0/tokens -d '{"auth": {"tenantId": "2fda9d4b88244a0a92ff23841198e2e6", "passwordCredentials": {"username": "example@nhn.com", "password": "example123"}}}'
인증 토큰 발급 응답
아래 응답에서 access.token.id 항목의 값이 인증 토큰입니다. access.token.expires에 기록된 시간까지 인증 토큰이 유효합니다.
{"access":{"token":{"id":"gAAAAABiVnmCOJVJhh1W2eXGo3aL0eaZxXmd-SMDMIE3zmip2lXy6eH0BlZAlTZBG20dWEm7TF4zi4YIOTKnc6yKh_wqZsyxgMWKkpVNShzE-k6GaSThBP54QeUePSjC2t-R10X6G4xL_Wecl-V-lV-bnOfVo6Ccpz6rv9eLYJnbJw7KrIMSSiY","expires":"2022-04-13T19:19:30Z","tenant":{"id":"2fda9d4b8821111192ff23841198e2e6","name":"tTMgSSSF","groupId":"XXj2zkH7777modGU","description":"","enabled":true,"project_domain":"NORMAL","swift":true},"issued_at":"2022-04-13T07:32:14.000441"},"serviceCatalog":[{"endpoints":[{"region":"KR1","publicURL":"https://api-identity.infrastructure.cloud.toast.com/v2.0"}],"type":"identity","name":"keystone"},{"endpoints":[{"region":"KR2","publicURL":"https://kr2-api-storage.cloud.toast.com/v1/AUTH_2fda9d4b88244a0a92ff23841198e2e6"},{"region":"KR1","publicURL":"https://api-storage.cloud.toast.com/v1/AUTH_2fda9d4b88244a0a92ff23841198e2e6"}],"type":"object-store","name":"swift"}],"user":{"id":"80884888887b45dbaf9b815117130671","username":"5111111c-b111-4b11-b11b-01111f81111f","name":"5211122c-bfc4-4115-b11b-05b52f84
인증 토큰 발급을 마쳤으면 오브젝트 스토리지 API를 사용할 수 있습니다. 오브젝트 스토리지에 example이라는 컨테이너를 생성하고 test_file.txt를 넣어 놨다고 가정할 경우, 아래와 같은 API 사용법으로 컨테이너에 있는 파일을 조회할 수 있습니다.
요청
X-Auth-Token에 인증 토큰을 추가하여 요청
~# curl -X GET -H 'X-Auth-Token:gAAAAABiVnmCOJVJhh1W2eXGo3aL0eaZxXmd-SMDMIE3zmip2lXy6eH0BlZAlTZBG20dWEm7TF4zi4YIOTKnc6yKh_wqZsyxgMWKkpVNShzE-k6GaSThBP54QeUePSjC2t-R10X6G4xL_Wecl-V-lV-bnOfVo6Ccpz6rv9eLYJnbJw7KrIMSSiY' https://kr1-api-object-storage.nhncloudservice.com/v1/AUTH_2fda9d4b88244a0a92ff23841198e2e6/example
응답
오브젝트 스토리지 컨테이너에 있는 파일 목록 확인
test_file.txt