[Openstack Swift] devstack를 이용하여, swift 사용해보기

이 문서는 개인적 경험을 바탕으로 작성되었기에, 실제와 다를 수 있습니다.

또한, 학부생 꼬꼬마가 작성한 문서로 내용이 빈약할 수 있습니다.

안녕하세요! 지난 포스트에서는 Openstack Swift에 대해 간단히 알아보았습니다. 더 자세히 알아보기 전! 백문여 불여일견이라고 직접 설치도 해보고 사용해보면서 swift와 친숙해지는 시간을 가져보도록 하겠습니다.

swift는 총 4개의 서버로 이루어져있다고 했는데.. 그럼 설치를 위해서는 물리적인 컴퓨터 4대가 필요하다는 건데 현실적으로 서버를 4대씩이나 확보하는 건 어려움이 있겠죠? 그럼 VM4개를 띄워야할텐데 이것도 나름 부담이 되죠?

Openstack에서는 하나의 개발머신에 Openstack 의 모든 구성요소를 실행하고 개발하고 테스트할 수 있는 환경을 만들어주었습니다. (감사하여라ㅠㅠ) 바로 이제부터 이용할 devstack이 바로 그것입니다. 우리가 이용할 것은 devstack 의 일부인 SAIO(Swift ALL IN ONE)입니다. 한 컴퓨터안에 proxy 1대, A/C/O서버들 각 3대씩 그리고 데몬들까지 설치되는 엄청난 개발환경입니다. (이 모든걸 실행하려면 사양이 좋아야되냐구요? 음.. 경험상 cpu 2core, ram 2G 정도면 어느정도 쓸만 하더라구요)

devstack을 설치/실행 하기 전 준비사항이 있습니다. 언제든지 SAIO를 재빌드 할 수 있도록 VM을 이용할 것 인데요. 다음 두 가지를 먼저 설치해주세요.

저는 맥을 사용하는데, 리눅스나 윈도우로 이용하시는 분들도 별 반 다를 것은 없습니다. 다만 윈도우를 이용하시는 분들은 vagrant가 윈도우에서 유니코드 문제가 좀 있어서..삽질을 하셔야합니다.. (유저홈폴더가 한글이면 에러가 나더라구요.)

그럼 저 2개를 모두 설치했다고 가정하고 진행하도록 하겠습니다.

devstack 을 이용하여 설치할 경우 항상 최신버전이 설치됩니다.

2015년 7월 7일 기준, kilo 버전이 설치됩니다. 특정버전만 설치하는 건 좀 더 알아보고 이 글에 반영하겠습니다.

devstack 다운로드 및 실행

공식 repository 에서 fork를 받아서 swift만 설치될 수 있도록 제가 설정을 좀 해둔 devstack-vagrant 를 checkout 받아줍니다. 다음 터미널에서 아래 명령어를 실행시킵니다. 이 명령어를 실행하고 나면 virtualbox 의 vm 이 새로 생성되고 ubuntu 14.04 가 자동으로 설치되고, puppet이 swift를 설치하게 됩니다.

(주의 !! 다소 시간이 걸립니다! )

설치가 완료되고 ssh까지 접속하고 프로세스 목록을 보면 다음과 같이 swift 관련 서버들이 실행되고 있는 것을 볼 수 있습니다.

 

테스트 계정 생성 및 Token 발급

swift를 이용하기 위해서는 token이 필요합니다. 이 token은 계정별로 인증시스템이 발급해주게 됩니다. 저는 실제 운영환경에서 쓰이는 keystone을 인증시스템으로 선택하였습니다. 인증시스템은 여러 종류가 있는데 다음에 설명을 하도록 하겠습니다. (keystone, swauth, tempauth…)

keystone에 새로운 계정을 생성하고, 그 계정을 통해 토큰을 발급받아보도록 하겠습니다.

위 명령어를 완료하였으면, 제대로 계정이 추가되었는지 확인합니다.

이제 토큰을 발급받아보도록 하겠습니다. 토큰은 1시간동안 유효하며 테스트가 1시간 이상되면 다시 토큰을 발급받아야합니다.

위 curl 을 실행하고 나면 아래와 같은 응답이 옵니다.

엄청나게 많은 정보들이 나오는데 우리가 볼 것은 딱 2가지 입니다. 발급받은 토큰 그리고 해당 계정의 swift endpoint url. endpoint url 이란, 해당 keystone 계정의 실제 swift 주소를 의미합니다.

  • 헤더의 X-Subject-Token : 실제 토큰
  • 본문 중 “http://172.28.128.3:8080/v1/AUTH_5d8f8a9c6f714c31bc5a760c6fb1071c” : swift endpoint url

기본적으로 swift에서 account를 나타내는 Prefix가 AUTH_ 입니다.

swift에 요청해보기

자 이제 발급받은 토큰과 endpoint url 을 가지고 실제 swift에 요청해보도록 하겠습니다.

아래와 같은 결과가 나오면 성공입니다.

자, 그럼 한번 컨테이너를 만들고 파일을 업로드해보겠습니다.

업로드가 완료되면 201 Created 가 반환될 것 입니다. 한번 파일을 다운로드 해볼까요?

방금 올렸던 파일 내용인 asdf 가 잘 뜨는 것을 볼 수 있습니다.

이제 devstack 을 이용해서 가지고 놀 swift 설치와 테스트를 모두 마쳤습니다.

다음 포스트부터는 swift 에 대해 좀 더 깊게 알아본 후, PyCharm 을 이용한 개발환경 구축에 대해 소개하겠습니다.

다음 포스트에서 뵙겠습니다 ~


Leave a Reply

Your email address will not be published. Required fields are marked *