1 minute read

AWS와 On-premises환경을 이용한 3계층 아키텍처 구현

3계층 AWS로 이용하기

RDS

  • 우리가 사용할 DB를 AWS에 올린다.

RDS생성및 설정하기

image image image image image image

  • MySQL Workbench 프로그램 다운

image image image image

DB서버 이중화

구성

  • 마스터 슬레이브
  • 온프레미스 aws
  • aws aws
온프레미스, aws 이중화
  • 온프레미스
#방화벽 제거
systemctl stop firewalld
systemctl disable firewalld
setenforce 0

#mysql다운
yum install -y mysql-server
systemctl restart mysqld

mysql_secure_installation

mysql -u root -p #로그인
show master status;
CREATE USER 'slave_user'@'%' IDENTIFIED BY 'qwer1234';
GRANT REPLICATION SLAVE ON *.*  TO 'slave_user'@'%';
select * from mysql.user where user='slave_user'\G
  • aws
    image image 재시작

  • 포트포워딩
    image

```CALL mysql.rds_set_external_master ( host_name , host_port , replication_user_name , replication_user_password , mysql_binary_log_file_name , mysql_binary_log_file_location , ssl_encryption );


``` mysql
CALL mysql.rds_set_external_master (
  '221.162.65.22'
  , 30120
  , 'slave_user'
  , 'qwer1234'
  , 'mysql-bin.000001'
  , 671
  , 0
);
CALL mysql.rds_start_replication;
show slave status;

image
Slave_IO_Running 과 Slave_SQL_Running이 모두 Yes가 되면 된다.

image
마스터 db에 입력을 해보면 image
aws 슬레이브에서 출력이 된다.

aws, aws 이중화
  • aws 마스터 db 생성
    image

  • 슬레이브 db 생성
    image

AWS 스토리지

  • Glscier : 데이터 보관 백업 서비스. 자주 사용하지 않는 데이터를 보관 및 백업하는데 유용하다.(저장만 시켜서 데이터를 보려면 다른 스토리지에 데이터를 옮겨야 한다.)
  • S3 : 객체 스토리지 서비스(일반적으로 생각하는 클라우드 서비스 ex) 구글 드라이브)
  • EBS : ES2 인스턴스에 사용 할 수 있는 블록 스토리지(사용하려면 컴퓨터와 같이 써야한다.)
  • CloudFront

EBS

  • EC2에 인스턴스 생성하기 image
    인바운드 규칙 추가하기

image

S3

  • 생성하기
    image

  • 권한 설정하기
    image
    image
    image

image

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", #내 버켓이름
      "Condition": {
        "StringEquals": {
          "s3:ExistingObjectTag/public": "yes"
        }
      }
    }
  ]
}
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::kjh-s3/*",
      "Condition": {
        "StringEquals": {
          "s3:ExistingObjectTag/public": "yes"
        }
      }
    }
  ]
}

image
image
image

이제 모든 사람에게 내 S3에 있는 자료들을 공유를 할 수 있다.

S3 EC2에 마운트하기

  • html 파일 하나 생성

  • S3에 자료 업로드 및 권한 변경 image
    다음과 같이 다운이 아니라 웹서버 처럼 출력이 된다.

  • ES3에서 설정 하기

    apt-get update
    apt install s3fs awscli -y
    

image
image
image
csv파일은 절대로 공유 하지 않는다.

vi ~/.s3fs-creds
    ACCESS_KEY_ID:SECRET_ACCESS_KEY
chmod 600 ~/.s3fs-creds
s3fs  [버킷 이름]  [특정 디렉토리]  -o passwd_file=~/.s3fs-creds
umount  [특정 디렉토리]

image
다음과 같이 업로드 해놓은 s3자료를 디렉토리에 불러올 수 있다.

CloudFront

  • CloudFront 생성하기 image
    image
    image
    s3 도메인 생성되면서 s3에 저장된 파일을 출력 할 수 있다.