아마존 EC2에 S3 마운트 하기

Ec2에 S3 마운트 하기

S3

AWS에서는 크게 세가지의 저장 서비스를 제공한다. EBS, S3, Glacier로 모두 데이터 저장 서비스이지만, 사용 목적이 약간 다르다. 오늘 사용할 Simple Storage Service, S3는 AWS에서 서비스하는 인터넷 스토리지 서비스이다. 이름 그대로 간단한 저장소이다. 그냥 버킷을 하나 만들어 놓고 거기다 데이터를 넣어두면 알아서 요금이 적용된다. 데이터는 객체라는 기본 개체로 저장된다는데 사실 무슨 얘기인지는 잘 모르겠다. 또 데이터의 수명을 정하여 Glacier라는 다른 저장 서비스로 데이터를 백업할 수도 있다. 이런저런 기능은 AWS 홈페이지에서 보자.
내가 왜 EBS 대신 S3를 사용하는가 하면, 그냥 더 싸기 때문이다. EBS는 EC2에 붙어있는 기본적인 저장소이다. EC2는 EBS라는 저장소를 사용한다고 보면 된다. EBS는 scalable 하고 ec2 서버에서 바로 써야하기 때문에 빠르다. 하지만 내 기준으로는 좀 비싸다. ec2 서버를 자주 사용하지도 않고 가끔 켜서 모델을 돌려보는 게 전부인데 그냥 저장했다는 이유만으로 돈이 나간다니… 나에겐 좀 억울하다.

How

일단 연습용으로 프리티어 우분투 서버에 s3를 마운트 해봤다. 실제 GPU 서버에다가 마운트할땐 EBS를 최소한으로 잡아야 할 듯. S3는 좀 더 느리다는데, 사실 내 수준에서는 빠르나 느리나 별로 걱정은 없다.
일단 우분투 서버를 처음 열면 아무것도 들어있지 않다. 필요한 패키지들을 하나씩 설치하자. 여러 기본 패키지와 깃을 설치한 후 깃을 이용해 S3FS라는 패키지를 받자.

이 후, S3FS를 설치하는 과정을 거친다.

이제 필요한 패키지 설치는 다 되었고 access key가 필요하다. 이미 있다면 있는 걸 사용하면 되고 없으면 AWS IAM에 가서 사용자를 하나 만든 후 Access key와 Secret access key를 받자. 이 부분은 인터넷 검색이나 AWS에서 직접 하길 권한다. 위 두가지를 얻었으면 두가지 설정을 더 해주면 된다.

위와 같이 입력하면 뭘 입력하라고 나올 것이다. 그럼 아까 받은 access key, secret access key를 차례대로 입력한 후 자신의 S3 리전을 입력하자. 서울이라면 ap-northeast-2 이고 마지막 입력값은 냅둬도 무방하다. 이제 S3FS를 설정해주자.

“Access key”:”Secret access key” 를 입력한 후 저장. 다음을 입력해 권한을 변경하자. 안하면 접근 불가하다고 나온다.

다음의 파일을 변경해준다.

이 파일에서 맨밑 # user_allow_other에서 주석을 제거해주자. 이제 마지막 설정으로 재부팅 후 자동 마운트, 캐시된 파일 제거를 설정한다.

으로 파일을 연후 맨 아래 다음을 붙여주자.

다음은 캐시된 파일을 제거하는 것인데 이건 cron을 사용한다. crontab -e 로 crontab을 열어주고 적당한 에디터를 고르면 입력창이 하나 나온다. 맨 아래에 다음을 복붙해주자. 실행안한지 일주일이 지났거나 수정한지 한달이 지났다면 캐시를 삭제하는 코드이다.


끝으로 S3를 마운트 해주자. 아래를 입력하면 끝이 난다.

s3 라는 버켓이 마운트 되었다.

참조

securecoding4u.com