ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 클라우드 스토리지 사용해보기
    클래스/초급 2022. 3. 3. 21:00
    728x90

    Amazon S3

    이번에는 클라우드 스토리지인 S3이라는 서비스이다.
    S3는 간단하게는 파일을 저장하는 서비스이다.
    굳이 파일을 저장하는 서비스가 따로 필요할까 하는 분도 있겠지만 IT 서비스를 운용하다 보면
    상당히 필요할 수 있다.

    그럼 S3를 쓸 때 장점이 무엇일까
    장점은 파일 저장을 따로 하기 때문에 애플리케이션 서버에 이상이 생겨도
    S3를 사용하여 관리되고 있는 파일에는 이상이 생기지 않는 점이다.

    아주 예전에 서비스들은 파일을 애플리케이션과 물리적으로 같은 디스크에 저장했다.
    왜냐하면 요즘처럼 분산에 대한 개념이 없고 디스크도 비싸기 때문이다.
    심지어는 작은 서비스들은 데이터베이스도 다 같은 서버에서 관리하기도 했었다.

    서버 구성


    그런데 이렇게 서비스하다 보니 애플리케이션이 있는 서버에 문제가 발생하면
    파일도 위험해질 수 있다. 만약에 서버에 디스크가 깨지기라도 한다면 생각만 해도
    힘든 아찔한 상황이 생길 수 있다.

    백업 서버 구성


    하지만 이걸 대비하기 위해 백업이라는 것을 한다.
    야심한 밤이나 새벽에 해당 파일들을 다른 디스크에 백업해 놓는 것이다.
    하지만 이것 또한 완전한 해결책이 될 수 없다. 왜냐하면 백업이 안된 파일들이 생길 수 있기 때문이다.

    그럼 만약에 애플리케이션 서버가 두대가 되면 파일은 어떻게 공유를 했을까
    기술적으로 엄청난 회사들은 이전부터 S3 같은 서비스를 자체적으로 만들어서 사용했을 수도 있다.
    하지만 보통 NAS라는 것을 사용해서 해결했다.

     

    서버 이중화 구성



    NAS가 어느 정도의 해결책은 될 수 있겠지만 완벽한 해결책은 되지 못했다.
    왜냐하면 NAS가 오류가 발생할 경우 기존에 잘 돌아가고 있던 애플리케이션에 영향을 주기 때문이다.
    기존 서비스와 디스크를 연결해 놓아 물리적으로 커플링이 생기기 때문에 완전한 분산 환경은 아니었다.

    이런 파일 관련 이슈에 대한 갈증을 풀어준 방법이 클라우드에서 제공하고 있는 S3와 같은 서비스이다.

     

    클라우드 스토리지 사용된 서버 구성



    그럼 S3를 바로 써보도록 하자.

    S3 찾기

    먼저 S3 서비스를 찾아서 화면으로 이동해보자.

    Amazon S3


    그럼 위와 같은 화면이 보일 것이다.
    화면에 보이는 버킷은 폴더와 같은 의미라고 보시면 된다.
    파일을 저장할 때 버킷 별로 저장할 수 있다.
    버킷이 필요한 이유는 해당 클라우드 계정에서 여러 개의 서비스를 운용할 때
    서비스에 따라 버킷을 나눠줄 수 있다. 그래서 관리하기가 좀 더 편해진다.
    그럼 일단 버킷을 만들어보자.

     

    버킷 만들기 - 일반 구성

    이제 버킷을 만들어야 하기 때문에 필요한 설정값들을 직접 지정하면 된다.
    버킷 이름을 먼저 정한다. 버킷 이름은 리전에서 유니크해야 한다. 이유는 좀 있다가 알 수 있다.
    그리고 리전을 정한다. 버킷이 물리적으로 위치할 리전을 정한다.
    아무래도 서울 리전에서 서비스를 한다면 서울 리전에 버킷이 위치해야 파일을 저장하고 조회하기가
    네트워크 관점에서 보면 빠를 것이다.
    그리고 기존의 버킷 구성에서 복사할 수도 있다.

    버킷 만들기 - 객체 소유권

    객체 소유권은 버킷의 소유권을 해당 버킷을 만들지 않은 AWS 계정에도 소유하게 해주는 기능이다.
    이 부분은 나중에 버킷에 대한 권한 설정이 필요할 때 사용하면 된다.

    버킷 만들기 - 퍼블릭 액세스 차단 설정


    다음은 퍼블릭 액세스 차단 설정이다.
    계정과 연동되지 않고 액세스 하는 것을 차단하는 설정이다.
    AWS에서 계정과 연동한다는 의미는 그림과 같이 AWS 웹 콘솔에 로그인을 하고 활동하는 것과
    개발언어와 연동하여 사용하는 것 그리고 AWS CLI와 같이 스크립트를 통해서 사용하는 것이 있다.
    이렇게 연동을 하지 않고 버킷을 액세스 할 수 없다는 것이다.

    버킷 만들기 - 버킷 버전 관리

    개발 소스를 관리하는 것처럼 버전을 부여하여 버전도 관리할 수 있다.

    버킷 만들기 - 태그, 기본암호화, 고급설정


    태그를 지정하고 파일들을 암호화할 수 있으며,
    혹시나 실수로 삭제하는 부분을 미연에 방지하기 위해 고급 기능인 객체 잠금 기능도 활성화할 수 있다.

     

    버킷 만들기 - 버킷이름이 고유하지 않을때

    리전에 같은 이름의 버킷이 존재하면 이름이 동일한 버킷이 존재한다고 경고 메시지를 보여줍니다.
    그럼 유니크한 이름을 지정하고 버킷 만들기 버튼을 클릭합니다.

    버킷 리스트

    생성한 버킷이 리스트에 보인다. 그럼 버킷에 파일을 업로드해보자.

    업로드


    웹하드처럼 바로 업로드를 할 수 있다.

    파일추가

    파일 추가를 하고 업로드를 하면 된다.

     

    파일 리스트

    업로드를 하고 파일을 확인할 수 있다.

    이번 글에서는 S3가 뭔지 알아봤고, 버킷을 만들고 파일을 업로드해보았다.

    당연히 이 정도의 기능만 된다면 서비스를 만들 때 이미지 저장소를 대체하지 못할 것이다.

    개발할 때 이미지 저장소가 아니라 웹하드에 가깝다고 할 수 있다.

    하지만 S3의 기능은 무궁무진하다. 다음 글에서 좀 더 개발부분과 연계해서 어떻게 사용하는지 알아보도록 하겠다.

     

     

     

     

     

    728x90

    '클래스 > 초급' 카테고리의 다른 글

    비싼 클라우드 프리티어로 이용하기  (0) 2022.03.07
    클라우드 스토리지 파일 호스팅  (0) 2022.03.06
    인스턴스 고정 IP 지정  (0) 2022.02.23
    인스턴스 정보  (0) 2022.02.22
    인스턴스 접속  (0) 2022.02.17
Designed by Tistory.