FairyCode v3.1.2

    AWS #2 / TIL

    S3 / RDS

    Featured image

    S3(Simple Storage Service)

    AWS에서 제공하는 *클라우드 스토리지 서비스이다.
    S3는 리전 위에 위치한 가용 영역(AZ)이 개별적 위치에 떨어져 존재하기 때문에, 한 곳의 AZ에서 가동이 불가 해져도 다른 가용 영역에서 백업 해 놓은 데이터를 활용해 문제 없이 서버가 가동된다. 따라서, AWS에서 제공하는 서비스들은 다음과 같은 이점들이 발생한다.

    클라우드 스토리지

    인터넷 공간에 데이터를 저장하는 저장소
    뛰어난 접근성을 가지고 있어 장소에 구애받지 않고 언제든 저장된 파일에 접근할 수 있다.

    이 외에도 S3 사용 시 정적 웹 사이트 호스팅이 가능하다는 이점이 있다. *버킷이 사용자들이 정적 웹 사이트를 배포할 수 있는 공간을 제공한다. 버킷에 정적 파일을 업로드하고, 버킷을 정적 웹 사이트 호스팅 용도로 구성하면 정적 웹 사이트를 배포할 수 있다.


    버킷

    객체를 저장하는 컨테이너 역할을 하는 최상위 디렉토리.

    객체

    버킷에 저장된 모든 것. S3에서 저장소에 데이터를 저장할 때 키-값 페어 형식으로 데이터를 저장하기 때문에 객체라고 부른다.


    대표적인 스토리지 클래스

    S3는 다양한 스토리지 클래스를 제공한다.


    접근성 통제

    S3 버킷에 누가 어떻게 접근하도록 할 것인지 정의하는 것. 주로 JSON을 이용해 작성된 정책을 통해 이루어지며, 접근 정책, 버킷 정책, 접근 제어 목록 등의 방식을 사용한다.

    정책을 만드는 JSON 파일의 구조

    하나의 Statement에는 하나의 permission 정보가 포함된다. 정책에 포함된 다수의 statement는 논리합(Logical OR) 관계를 맺는다.

    접근 정책 (Identity-based policies)

    IAM(신분 및 접근 관리 정책)으로 S3의 객체를 매우 세분화해 통제할 수 있다.

    다음 예시를 보면서 알아보자. AWS 계정의 IAM 사용자에게 버킷 중 하나인 awxexamplebucket1에 대한 액세스 권한을 부여하고 이 사용자에게 객체를 추가, 업데이트, 삭제하도록 허용하려 한다.

    {
      "Version":"2012-10-17",
      "Statement":[
        {
          "Effect":"Allow",
          "Action": "s3:ListAllMyBuckets",
          "Resource":"*"
        },
        {
          "Effect":"Allow",
          "Action":["s3:ListBucket","s3:GetBucketLocation"],
          "Resource":"arn:aws:s3:::awsexamplebucket1"
        },
        {
          "Effect":"Allow",
          "Action":[
            "s3:PutObject",
            "s3:PutObjectAcl",
            "s3:GetObject",
            "s3:GetObjectAcl",
            "s3:DeleteObject"
          ],
          "Resource":"arn:aws:s3:::awsexamplebucket1/*"
        }
      ]
    } 
    

    위 예시에서는 하나의 정책에 총 3개의 statement가 삽입되었다. 이렇게 작성된 정책을 그룹, 유저 등에 할당하여 사용할 수 있다.

    1. s3:PutObject, s3:GetObject, s3:DeleteObject 권한을 사용자에게 부여한다.
    2. s3:ListAllMyBucket, s3:GetBucketLocation, s3:ListBucket 권한을 사용자에게 부여한다. (콘솔에 필요한 추가 권한)
    3. s3:PubObjectAcl, s3:GetObjectAcl 작업을 하여, 콘솔에서 객체를 복사, 자르기, 붙여넣기를 할 수 있게 하였다.


    버킷 정책 (Resource-based policies)

    S3 버킷을 세분화된 방식으로 제어할 수 있도록 하는 버킷 레벨에서 생성한 정책을 의미한다.

    대표적 버킷 정책 사례는 특정 버킷에 있는 객체에 대한 익명의 사용자로부터 리드 온리 접근을 허용하는 케이스이다. 이는 S3 리소스 기반의 정적 웹 사이트를 운영하거나, 웹을 통해 불특정 다수의 접근을 허용할 때 자주 사용되는 방법으로, 버킷에 GetObject 액세스 권한을 부여하면 된다.

    다음 devopscodestates를 위한 S3 버킷 정책의 예시를 통해 알아보자.

    {
      "Version":"2012-10-17",
      "Statement":[
        {
          "Sid":"PublicRead",
          "Effect":"Allow",
          "Principal": "*",
          "Action":["s3:GetObject"],
          "Resource":["arn:aws:s3:::devopscodestates/*"]
        }
      ]
    }
    

    devopscodestates 버킷의 모든 리소스를 GetObject 작업으로 누구나 접근(“*“)할 수 있음을 Principal 필드의 값을 통해 확인할 수 있다.

    S3의 보안 Best Practice

    » S3 스토리지 클래스 레퍼런스 «


    EBS (Elastic Block Store)


    EC2 인스턴스에 사용할 수 있는 블록 수준 영구 스토리지 볼륨. 영구 스토리지는 EC2 인스턴스의 수명 주기를 넘어서서 존재할 수 있는 스토리지를 의미한다.

    EBS는 볼륨에 대한 특정 시점의 스냅샷을 지속적으로 작성해 S3에 저장하는 방식으로 다수의 AZ에서 자동 복제 기능을 제공한다. 이를 통해 생성된 스냅샷은 또 다른 EBS 볼륨 생성을 위한 시작점으로 활용될 수 있으며, 장기간 서버와 관련된 데이터를 안전하게 보호할 수 있다. 이 스냅샷은 리전 간 복제해서 사용할 수도 있으므로, 재난 복구, 데이터 센터 마이그레이션 등에도 편리하게 사용할 수 있다.

    EBS 볼륨


    EFS (Elastic File System)


    서버를 사용하지 않는 간단하고 탄력적인 파일 시스템을 빠르고 쉽게 구성할 수 있는 간편 웹 서비스 인터페이스를 제공하고, EC2 인스턴스에 파일 시스템을 탑재한 후 파일 시스템에 데이터를 작성하거나 파일 시스템에서 데이터를 읽을 수 있다.

    이 서비스에서 모든 파일 스토리지 인프라를 관리해주므로, 사용자는 복잡한 파일 시스템 구성을 배포, 패치, 및 유지보수 하는데 따르는 복잡성에서 벗어날 수 있다.

    애플리케이션을 중단하지 않고 온디맨드 방식으로 페타바이트 규모까지 확장되도록 구축되어, 사용자가 파일을 추가하고 제거할 때 자동으로 확장/축소되므로 데이터 증가에 맞춰 용량을 *프로비저닝 및 관리할 필요가 없다.


    RDS (Relational Database Service)


    AWS에서 제공하는 관계형 데이터베이스 서비스.
    EC2 인스턴스에 DB를 설치하여 데이터를 관리하게 되면 유지 보수, 보험처리 같은 일들을 온전히 사용자가 부담한다. 가용성과 내구성도 확보되지 않아 저장된 데이터가 유실되거나 정상적으로 사용하지 못할 확률이 커지며, 필요에 따라 DB 규모 확장이 어렵다. 또한 직접 DB 엔진을 설치/관리 해야하고, 사용자가 일일이 데이터를 백업해야 한다.

    하지만 RDB를 설치하게 되면, AWS가 DB 규모확장, 백업, 설치, 시설 구축 등을 자동 관리해주고 가용성과 내구성이 확보된다. 사용자가 해야할 일은 초기 설정을 제외하고 DB에 저장된 데이터를 관리하는 일 밖에 없다.


    단어 정리

    *정적 파일 : 서버의 개입 없이 클라이언트에 제공될 수 있는 파일
    *웹 호스팅 : 서버의 한 공간을 빌려주어 웹 사이트의 배포, 운영이 가능하게 만들어주는 서비스
    *프로비저닝 : 컴퓨터 시스템이나 네트워크에 필요한 자원, 서비스, 애플리케이션 등을 사전에 설정하거나 준비하는 과정
    *DBMS : 데이터 저장, 조직화, 인출과 관련된 제반 업무를 관장하는 소프트웨어. RDB는 열과 행으로 이루어진 테이블에 저장되고, 테이블에 저장된 데이터는 공통 키 또는 컨셉에 따라 서로 관계를 유지하며, 테이블에서 데이터를 인출할 때 이와 같은 관계성을 이용한다는 측면에서 관계형 데이터베이스라는 이름이 붙었다.

    See also

    Why don't you read something next?

    AWS #3 / TIL

    玻璃钢生产厂家绍兴商场美陈厂家直销台州玻璃钢雕塑厂家价格曲阳现代人物玻璃钢雕塑松原动物玻璃钢雕塑生产厂家安庆酒店玻璃钢花盆贵阳玻璃钢雕塑销售电话溆浦玻璃钢花盆花器抚顺雕塑玻璃钢卡通芜湖欧式玻璃钢雕塑价位吉林户外玻璃钢雕塑定制玻璃钢雕塑现货贵州商场美陈厂商南京拉丝玻璃钢雕塑性价比出众浦口商场亮化美陈铁岭玻璃钢伟人像雕塑焦作专业玻璃钢雕塑公司湖北步行街玻璃钢雕塑订做价格大型商场美陈现价陕西个性化玻璃钢雕塑设计卡通人玻璃钢花盆怎么样北京超市商场美陈商场功能美陈有哪些销售好的玻璃钢卡通雕塑小品玻璃钢动物雕塑包括哪些龙岩园林玻璃钢雕塑哪家好铜川玻璃钢浮雕人物山水雕塑江苏泡沫玻璃钢雕塑定做厂家玻璃钢雕塑哪里做的多中山玻璃钢人物雕塑商场美陈消防香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

    玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化