2022.12.26 - [DevOps/aws] - AWS Cloud Practitioner Essentials | 모듈1: AMAZON WEB SERVICES 소개

2022.12.26 - [DevOps/aws] - AWS Cloud Practitioner Essentials | 모듈 2: 클라우드 컴퓨팅

2022.12.27 - [DevOps/aws] - AWS Cloud Practitioner Essentials | 모듈 3: 글로벌 인프라 및 안정성

2022.12.28 - [DevOps/aws] - AWS Cloud Practitioner Essentials | 모듈 4: 네트워킹

 


모듈5 소개

학습 목표

이 모듈의 학습 목표는 다음과 같습니다.

  • 스토리지 및 데이터베이스의 기본 개념을 요약할 수 있습니다.
  • Amazon Elastic Block Store(Amazon EBS)의 이점을 설명할 수 있습니다.
  • Amazon Simple Storage Solution(Amazon S3)의 이점을 설명할 수 있습니다.
  • Amazon Elastic File System(Amazon EFS)의 이점을 설명할 수 있습니다.
  • 다양한 스토리지 솔루션을 요약할 수 있습니다.
  • Amazon Relational Database Service(RDS)의 이점을 설명할 수 있습니다.
  • Amazon DynamoDB의 이점을 설명할 수 있습니다.
  • 다양한 데이터베이스 서비스를 요약할 수 있습니다.

인스턴스 스토어 및 Amazon Elastic Block Store(Amazon EBS)

인스턴스 스토어

블록 수준 스토리지 볼륨은 물리적 하드 드라이브처럼 동작합니다.

=> 우리가 사용하는 노트북, 스마트폰과 같은 스토리지 

 

인스턴스 스토어는 Amazon EC2 인스턴스에 임시 블록 수준 스토리지를 제공합니다. 인스턴스 스토어는 물리적으로 EC2 인스턴스의 호스트 컴퓨터에 연결되어 있고, 따라서 인스턴스와 수명이 동일한 디스크 스토리지입니다. 인스턴스가 종료되면 인스턴스 스토어의 데이터가 손실됩니다.

=> 인스턴스 스토어는 ec2를 운영하는 물리적 호스트에 연결되는 저장소,

따라서 인스턴스를 종료하거나 중지했다가 다시 키면 내용이 삭제된다.

ec2 인스턴스와 EBS 연결

Amazon Elastic Block Store(Amazon EBS)는 Amazon EC2 인스턴스에서 사용할 수 있는 블록 수준 스토리지 볼륨을 제공하는 서비스입니다. Amazon EC2 인스턴스를 중지 또는 종료하더라도 연결된 EBS 볼륨의 모든 데이터를 사용할 수 있습니다.

=> EBS 볼륨은 직접적으로 호스트에 연결되지 않고 데이터를 저장한다.

인스턴스가 종료되어도 데이터가 유지 된다. 

 

EBS 볼륨을 생성하려면 구성(예: 볼륨 크기 및 유형)을 정의하고 볼륨을 프로비저닝합니다. EBS 볼륨을 생성한 다음 볼륨을 Amazon EC2 인스턴스에 연결할 수 있습니다.

=> EBS 를 생성할려면 구성을 정의해야한다. 

 

EBS 볼륨은 보존해야 하는 데이터를 위한 것이므로 데이터 백업이 중요합니다. Amazon EBS 스냅샷을 생성하여 EBS 볼륨을 증분 백업할 수 있습니다.

=> EBS 스냅샷을 통해서 백업할 수 있다.

Amazon EBS 스냅샷

EBS 스냅샷은 증분 백업입니다. 즉, 처음 볼륨을 백업하면 모든 데이터가 복사됩니다. 이후의 백업에서는 가장 최근의 스냅샷 이후 변경된 데이터 블록만 저장됩니다. 

=> 변경된 부분만 데이터를 복사한다.

 

증분 백업은 백업이 실행될 때마다 스토리지 볼륨의 모든 데이터가 복사되는 전체 백업과는 다릅니다. 전체 백업에는 가장 최근의 백업 이후 변경되지 않은 데이터도 포함됩니다.


Amazon Simple Storage Service(Amazon S3)

객체 스토리지

객체 스토리지에서 각 객체는 데이터, 메타데이터, 키로 구성됩니다.

=> 객체의 종류는 데이터,메타데이터, 키 로 구성된다. 

 

데이터는 이미지, 동영상, 텍스트 문서 또는 기타 유형의 파일일 수 있습니다. 메타데이터에는 데이터의 내용, 사용 방법, 객체 크기 등에 대한 정보가 포함되어 있습니다. 객체의 키는 고유한 식별자입니다.

Amazon Simple Storage Service(Amazon S3)

Amazon Simple Storage Service(Amazon S3)는 객체 수준 스토리지를 제공하는 서비스입니다. Amazon S3는 데이터를 버킷에 객체로 저장합니다.

=> 객체 수준 스토리지

 

Amazon S3에는 이미지, 동영상, 텍스트 파일 등 모든 유형의 파일을 업로드할 수 있습니다. 예를 들어 Amazon S3를 사용하여 백업 파일, 웹 사이트용 미디어 파일 또는 보관된 문서를 저장할 수 있습니다. Amazon S3는 저장 공간을 무제한으로 제공합니다. Amazon S3에 저장할 수 있는 객체의 최대 파일 크기는 5TB입니다.

=> 단일 객체 최대 크기는 5TB 까지 가능하다.

 

Amazon S3에 파일을 업로드할 때 권한을 설정하여 파일에 대한 표시 여부 및 액세스를 제어할 수 있습니다. Amazon S3 버전 관리 기능을 사용하여 시간 경과에 따른 객체 변경 사항을 추적할 수도 있습니다.

=> 버전 관리 및 액세스 제어를 할 수 있다.

 

Amazon S3 스토리지 클래스

Amazon S3에서는 사용한 만큼만 비용을 지불합니다. 비즈니스 및 비용 요구 사항에 맞춰 다양한 스토리지 클래스 중에서 선택할 수 있습니다. Amazon S3 스토리지 클래스를 선택할 때 다음 두 가지 요소를 고려해야 합니다.

데이터를 검색할 빈도
필요한 데이터 가용성

 

 

S3 Standard

  • 자주 액세스하는 데이터용으로 설계
  • 최소 3개의 가용 영역에 데이터를 저장

S3 Standard는 객체에 대한 고가용성을 제공합니다. 따라서 웹 사이트, 콘텐츠 배포, 데이터 분석 등 광범위한 사용 사례에 적합합니다. S3 Standard는 자주 액세스하지 않는 데이터 및 보관 스토리지를 위한 다른 스토리지 클래스보다 비용이 높습니다.

=> 고가용성, 광범위한 사용.

S3 Standard-Infrequent Access(S3 Standard-IA)

  • 자주 액세스하지 않는 데이터에 이상적
  • S3 Standard와 비슷하지만 스토리지 가격은 더 저렴하고 검색 가격은 더 높음

S3 Standard-IA는 자주 액세스하지 않지만 필요에 따라 고가용성이 요구되는 데이터에 이상적입니다. S3 Standard 및 S3 Standard-IA는 모두 최소 3개의 가용 영역에 데이터를 저장합니다. S3 Standard-IA는 S3 Standard와 동일한 수준의 가용성을 제공하지만 스토리지 가격은 더 저렴하고 검색 가격은 더 높습니다.

=> infrequent  비교적 덜 액세스하는 데이터에 어울림.

스토리지 가격은 s3에 비해 저렴하지만 대신 검색 가격이 더 비쌈.

S3 One Zone-Infrequent Access(S3 One Zone-IA)

  • 단일 가용 영역에 데이터를 저장
  • S3 Standard-IA보다 낮은 스토리지 가격

최소 3개의 가용 영역에 데이터를 저장하는 S3 Standard 및 S3 Standard-IA와 달리, S3 One Zone-IA는 단일 가용 영역에 데이터를 저장합니다. 따라서 다음과 같은 조건이 적용되는 경우 고려할 수 있는 훌륭한 스토리지 클래스입니다

  • 스토리지 비용을 절감하려는 경우
  • 가용 영역 장애가 발생할 경우 데이터를 손쉽게 재현할 수 있는 경우

=> s3 standard ia 에서 가용영역을 1개로 지정한 케이스

더 저렴하지만 데이터 손실 위험이 있음.

S3 Intelligent-Tiering

  • 액세스 패턴을 알 수 없거나 자주 변화하는 데이터에 이상적
  • 객체당 소량의 월별 모니터링 및 자동화 요금을 부과

S3 Intelligent-Tiering 스토리지 클래스에서는 Amazon S3가 객체의 액세스 패턴을 모니터링합니다. 사용자가 30일 연속 객체에 액세스하지 않으면 Amazon S3는 자동으로 해당 객체를 자주 사용하지 않는 액세스 계층인 S3 Standard-IA로 이동합니다. 사용자가 자주 사용하지 않는 액세스 계층에 저장된 객체에 액세스하면 Amazon S3는 자동으로 해당 객체를 자주 사용하는 액세스 계층인 S3 Standard로 이동합니다.

=> 액세스 패턴을 분석함.

S3 Glacier

  • 데이터 보관용으로 설계된 저비용 스토리지
  • 객체를 몇 분에서 몇 시간 이내에 검색

S3 Glacier는 데이터 보관에 이상적인 저비용 스토리지 클래스입니다. 예를 들어 이 스토리지 클래스를 사용하여 보관된 고객 레코드나 이전 사진 또는 비디오 파일을 저장할 수 있습니다.

=> 데이터 보관용, 저비용 스토리지

S3 Glacier Deep Archive

  • 보관에 이상적인 가장 저렴한 객체 스토리지 클래스
  • 객체를 12시간 이내에 검색

Amazon S3 Glacier와 Amazon S3 Glacier Deep Archive 간에 결정할 때 보관된 객체를 얼마나 빨리 검색해야 하는지를 고려해야 합니다. S3 Glacier 스토리지 클래스에 저장된 객체는 몇 분에서 몇 시간 이내에 검색할 수 있습니다. 이에 비해 S3 Glacier Deep Archive 스토리지 클래스에 저장된 객체는 12시간 이내에 검색할 수 있습니다.

=> glacier 보다 더 오래 걸리는 검색 시간. 가장 저렴.

 

Amazon EBS와 Amazon S3 비교

객체 스토리지와 블록 스토리지의 차이

블록스토리지는 파일이 수정되면 변경되는 블록만 변경하면된다. 

 


Amazon Elastic File System(Amazon EFS)

파일 스토리지

  • 관리형 파일 시스템
  • 기존 파일 시스템을 유지하면서 규모 조정 및 복제라는 힘든 작업은 aws 에게 맡길 수 있음.
  • 여러 인스턴스가 동시에 EFS의 데이터에 액세스 가능

파일 스토리지에서는 여러 클라이언트(예: 사용자, 애플리케이션, 서버 등)가 공유 파일 폴더에 저장된 데이터에 액세스할 수 있습니다. 이 접근 방식에서는 스토리지 서버가 블록 스토리지를 로컬 파일 시스템과 함께 사용하여 파일을 구성합니다. 클라이언트는 파일 경로를 통해 데이터에 액세스합니다.

블록 스토리지 및 객체 스토리지와 비교하면, 파일 스토리지는 많은 수의 서비스 및 리소스가 동시에 동일한 데이터에 액세스해야 하는 사용 사례에 이상적입니다.

=>  여러 곳에서 동시에 엑세서 하는 경우를 생각해야함.

 

Amazon Elastic File System(Amazon EFS)은 AWS 클라우드 서비스 및 온프레미스 리소스와 함께 사용되는 확장 가능한 파일 시스템입니다. 파일을 추가 또는 제거하면 Amazon EFS가 자동으로 확장하거나 축소됩니다. 애플리케이션을 중단하지 않고 온디맨드로 페타바이트 규모로 확장할 수 있습니다.

=> 자동 확장을 지원

Amazon EBS와 Amazon EFS 비교

EBS를 쓸려면 ebs와 ec2가 같은 az에 있어야한다. (ebs는 ec2 에 연결됨).

볼륨이 자동으로 확장되지 않음.

 

EFS에서는

여러 인스턴스와 동시 읽기 및 쓰기 가능

linux 파일 시스템

리전 단위

자동확장

온프레미스 서버는 aws direct connect를 사용하여 efs에 엑세스 가능함.

 


Amazon Relational Database Service(Amazon RDS)

관계형 데이터베이스

관계형 데이터베이스에서는 데이터가 다른 데이터 부분과 관련된 방식으로 저장됩니다. 

=> 관계형 데이터베이스는 다른 데이터와 연관성을 이용해 데이터를 저장하고 활용함.

 

관계형 데이터베이스의 예로 커피숍의 인벤토리 관리 시스템을 들 수 있습니다. 데이터베이스의 각 레코드에는 제품 이름, 크기, 가격 등 단일 항목에 대한 데이터가 포함됩니다.

 

관계형 데이터베이스는 정형 쿼리 언어(SQL)를 사용하여 데이터를 저장하고 쿼리합니다. 이러한 접근 방식은 데이터를 쉽게 이해할 수 있고 일관되며 확장 가능한 방식으로 저장할 수 있습니다. 예를 들어 커피숍 점주는 가장 자주 구입하는 음료가 미디엄 라떼인 모든 고객을 식별하기 위해 SQL 쿼리를 작성할 수 있습니다.

관계형 데이터베이스 내의 데이터 예:

 

ID제품 이름크기가격
1 미디엄 로스트 원두 커피  12 oz $5.30
2 다크 로스트 원두 커피 20 oz $9.27

 

Amazon Relational Database Service

Amazon Relational Database Service(Amazon RDS)는 AWS 클라우드에서 관계형 데이터베이스를 실행할 수 있는 서비스입니다.

=> rds 는 aws에서 실행할 수 있는 관계형 데이터베이스

 

Amazon RDS는 하드웨어 프로비저닝, 데이터베이스 설정, 패치 적용 백업과 같은 작업을 자동화하는 관리형 서비스입니다. 이러한 기능을 사용하면 관리 작업을 수행하는 데 드는 시간을 줄이고 데이터를 사용하여 애플리케이션을 혁신하는 데 더 많은 시간을 할애할 수 있습니다. Amazon RDS를 다른 서비스와 통합하면 AWS Lambda를 사용하여 서버리스 애플리케이션에서 데이터베이스를 쿼리하는 등 비즈니스 및 운영 요구 사항을 충족할 수 있습니다.

=> 프로비저닝, 설정, 패치 적용 백업등 많은 작업을 자동화 할 수 있으며 aws lambda 와 함께 사용할 수 있다.

 

Amazon RDS는 다양한 보안 옵션을 제공합니다. 대부분의 Amazon RDS 데이터베이스 엔진이 저장 시 암호화(데이터가 저장되는 동안 데이터를 보호) 및 전송 중 암호화(데이터를 전송 및 수신하는 동안 데이터를 보호)를 제공합니다.

Amazon RDS 데이터베이스 엔진

Amazon RDS는 메모리, 성능 또는 입/출력(I/O)에 최적화된 6개의 데이터베이스 엔진에서 사용할 수 있습니다. 지원되는 데이터베이스 엔진은 다음과 같습니다.

  • Amazon Aurora
  • PostgreSQL
  • MySQL
  • MariaDB
  • Oracle Database
  • Microsoft SQL Server

=> rds 에서 지원하는 db 엔진

Amazon Aurora

Amazon Aurora는 엔터프라이즈급 관계형 데이터베이스입니다. 이 데이터베이스는 MySQL 및 PostgreSQL 관계형 데이터베이스와 호환됩니다. 표준 MySQL 데이터베이스보다 최대 5배 빠르며 표준 PostgreSQL 데이터베이스보다 최대 3배 빠릅니다.

=> mysql, postgesql 과 호환되는 데이터베이스. 속도가 훨씬 빠르다.

 

Amazon Aurora는 데이터베이스 리소스의 안정성 및 가용성을 유지하면서도 불필요한 입/출력(I/O) 작업을 줄여 데이터베이스 비용을 절감합니다. 

=> 가용성 안정성을 가져가면서 비용도 적음

 

워크로드에 고가용성이 필요한 경우 Amazon Aurora를 고려하십시오. 이 데이터베이스는 6개의 데이터 복사본을 3개의 가용 영역에 복제하고 지속적으로 Amazon S3에 데이터를 백업합니다.

=> 고가용성

 

 

 


Amazon DynamoDB

서버리스 데이터베이스이므로 기본 인스턴스나 인프라를 구성할 필요 없다.

비관계형 데이터베이스

비관계형 데이터베이스에서는 테이블을 생성합니다. 테이블은 데이터를 저장하고 쿼리할 수 있는 장소입니다.

비관계형 데이터베이스는 행과 열이 아닌 구조를 사용하여 데이터를 구성하기 때문에 ‘NoSQL 데이터베이스’라고도 합니다. 비관계형 데이터베이스의 구조적 접근 방식 중 한 유형은 키-값 페어입니다. 키-값 페어에서는 데이터가 항목(키)으로 구성되고 항목은 속성(값)을 갖습니다. 속성을 데이터의 여러 기능으로 생각할 수 있습니다.

 

키-값 데이터베이스에서는 언제든지 테이블의 항목에서 속성을 추가하거나 제거할 수 있습니다. 또한 테이블의 모든 항목에 동일한 속성이 있어야 하는 것은 아닙니다. 

 

비관계형 데이터베이스 내 데이터의 예:

1 이름: John Doe
주소: 123 Any Street
좋아하는 음료: 미디엄 라떼Cell 2
2 이름: Mary Major
주소: 100 Main Street
생일: 1994년 7월 5일

nosql 특징

키 값으로 구성

Amazon DynamoDB

Amazon DynamoDB는 키-값 데이터베이스 서비스입니다. 모든 규모에서 한 자릿수 밀리초의 성능을 제공합니다.

DynamoDB의 기능에 대한 자세한 내용을 보려면 각 플래시카드를 선택하여 뒤집으십시오.

=> nosql 데이터베이스로 성능이 뛰어나다.

서버리스

DynamoDB는 서버를 사용하지 않으므로 서버를 프로비저닝, 패치 적용 또는 관리할 필요가 없습니다. 

 

또한 소프트웨어를 설치, 유지 관리, 운영할 필요도 없습니다.

=> 서버리스이다. 

자동조정

데이터베이스 크기가 축소 또는 확장되면 DynamoDB는 용량 변화에 맞춰 자동으로 크기를 조정하면서도 일관된 성능을 유지합니다. 

 

따라서 크기를 조정하는 동안에도 고성능이 필요한 사용 사례에 적합한 선택입니다.

=> 자동으로 크기 조정한다.

RDS와 DynamoDB 비교

복잡한 관계성 조인 => rds

그외 => 다 dynamo db가 강점임.

 


Amazon Redshift

Amazon Redshift

Amazon Redshift는 빅 데이터 분석에 사용할 수 있는 데이터 웨어하우징 서비스입니다. 이 서비스는 여러 원본에서 데이터를 수집하여 데이터 간의 관계 및 추세를 파악하는 데 도움이 되는 기능을 제공합니다.

=>기존 데이터 베이스는 데이터 분석에 최적화 되어있지 않음.

특정 데이터만 반복적으로 사용함.

 

데이터웨어 하우징 서비스 redshift 를 사용하면 고성능으로 관리할 수 있음


AWS Database Migration Service

AWS Database Migration Service(AWS DMS)

AWS Database Migration Service(AWS DMS)는 관계형 데이터베이스, 비관계형 데이터베이스 및 기타 유형의 데이터 저장소를 마이그레이션할 수 있는 서비스입니다.

=> 기존의 저장소, db를 aws가 제공하는 서비스로 옮기는 서비스

 

AWS DMS를 사용하면 원본 데이터베이스와 대상 데이터베이스 간에 데이터를 이동할 수 있습니다. 원본 데이터베이스와 대상 데이터베이스는 유형이 동일할 필요가 없습니다. 마이그레이션하는 동안 원본 데이터베이스가 계속 작동하므로 데이터베이스를 사용하는 애플리케이션의 가동 중지 시간을 줄일 수 있습니다.

=> 같은 종류의 db를 옮길때, 동종 데이터 베이스.

dms가 중간에서 데이터 마이그레이션 작업을 돕는다.

 

1.스키마 구조

2. 데이터 유형

3. 데이터 베이스 코드

위의 세개의 정보를 바탕으로 마이그레이션을 쉽게한다.

 

 

=> 다른 종류의 db를 옮길때, 이종 데이터베이스

중간에 amazon conversion tool 이 들어간다.

예를 들어 온프레미스에서 Amazon EC2 인스턴스 또는 Amazon RDS에 저장된 MySQL 데이터베이스가 있다고 가정해 보겠습니다. MySQL 데이터베이스가 원본 데이터베이스라고 하겠습니다. AWS DMS를 사용하여 Amazon Aurora 데이터베이스와 같은 대상 데이터베이스로 데이터를 마이그레이션할 수 있습니다.

AWS DMS의 다른 사용 사례

개발 및 테스트 데이터베이스 마이그레이션

프로덕션 사용자에게 영향을 주지 않고 개발자가 프로덕션 데이터에서 애플리케이션을 테스트할 수 있도록 지원

데이터베이스 통합

여러 데이터베이스를 단일 데이터베이스로 결합

연속 복제

일회성 마이그레이션을 수행하는 것이 아니라 데이터의 진행 중 복제본을 다른 대상 원본으로 전송

=> DMS 의 사용사례


추가 데이터베이스 서비스

알맞은 데이터베이스 선택 , 데이터베이스 플랫폼을 선택

만능 데이터베이스는 없다.

Amazon DocumentDB

Amazon DocumentDBMongoDB 워크로드를 지원하는 문서 데이터베이스 서비스입니다. (MongoDB는 문서 데이터베이스 프로그램입니다.)

=> 카탈로그, 사용자 프로필에 적합하다.

몽고 db와 호환가능

Amazon Neptune

Amazon Neptune 그래프 데이터베이스 서비스입니다.

 

Amazon Neptune을 사용하여 추천 엔진, 사기 탐지, 지식 그래프와 같이 고도로 연결된 데이터 세트로 작동하는 애플리케이션을 빌드하고 실행할 수 있습니다.

=> 소셜 네트워킹에 강함. 사기탐지, 그래프

 

Amazon Quantum Ledger Database(Amazon QLDB)

Amazon Quantum Ledger Database(Amazon QLDB)는 원장 데이터베이스 서비스입니다.

 

Amazon QLDB를 사용하여 애플리케이션 데이터에 발생한 모든 변경 사항의 전체 기록을 검토할 수 있습니다.

=> 100% 제거할 수 없는 변경 불가능한 기록 시스템( 금융에 필요)

Amazon Managed Blockchain

Amazon Managed Blockchain은 오픈 소스 프레임워크를 사용하여 블록체인 네트워크를 생성하고 관리하는 데 사용할 수 있는 서비스입니다. 

블록체인은 여러 당사자가 중앙 기관 없이 거래를 실행하고 데이터를 공유할 수 있는 분산형 원장 시스템입니다.

 => 블록체인을 쓰고 싶을때, 엄청난 분산화 요소를 추가함.

 

Amazon ElastiCache

Amazon ElastiCache는 자주 사용되는 요청의 읽기 시간을 향상시키기 위해 데이터베이스 위에 캐싱 계층을 추가하는 서비스입니다. 

 

이 서비스는 두 가지 데이터 저장소 RedisMemcached를 지원합니다.

=> db에 캐싱 계층을 추가하면 속도를 개선할 수 있다.  redis, memcached

Amazon DynamoDB Accelerato

Amazon DynamoDB Accelerator(DAX)는 DynamoDB용 인 메모리 캐시입니다. 

응답 시간을 한 자릿수 밀리초에서 마이크로초까지 향상시킬 수 있습니다.

=> Dynamodb용 메모리 캐시. 최대3배 이상 속도향상을 할 수 있다.

 


모듈 5 요약

  • Amazon EC2 인스턴스 스토어 및 Amazon EBS
  • Amazon S3
  • Amazon EFS
  • 관계형 데이터베이스 및 Amazon RDS
  • 비관계형 데이터베이스 및 DynamoDB
  • Amazon Redshift
  • AWS DMS
  • 추가 데이터베이스 서비스 및 가속기

 

모듈 5 퀴즈

다음 중 보관 데이터에 최적화된 Amazon S3 스토리지 클래스는 무엇입니까? (2개 선택)

다음 중 Amazon EBS 볼륨 및 Amazon EFS 파일 시스템에 대한 설명은 무엇입니까?

객체 스토리지 서비스에 데이터를 저장하려고 합니다. 다음 중 이러한 유형의 스토리지에 가장 적합한 AWS 서비스는 무엇입니까?

다음 중 Amazon DynamoDB를 가장 잘 설명한 것은 무엇입니까?

다음 중 데이터웨어 하우스에서 데이터를 쿼리하고 분석하는 데 사용되는 서비스는 무엇입니까?

+ Recent posts