[AWS] 3 Tier(AWS Cloud + On-premises)
AWS와 On-premises환경을 이용한 3계층 아키텍처 구현
3계층 AWS로 이용하기
RDS
- 우리가 사용할 DB를 AWS에 올린다.
RDS생성및 설정하기
- MySQL Workbench 프로그램 다운
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
재시작
-
포트포워딩
```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;
Slave_IO_Running 과 Slave_SQL_Running이 모두 Yes가 되면 된다.
마스터 db에 입력을 해보면
aws 슬레이브에서 출력이 된다.
aws, aws 이중화
-
aws 마스터 db 생성
-
슬레이브 db 생성
AWS 스토리지
- Glscier : 데이터 보관 백업 서비스. 자주 사용하지 않는 데이터를 보관 및 백업하는데 유용하다.(저장만 시켜서 데이터를 보려면 다른 스토리지에 데이터를 옮겨야 한다.)
- S3 : 객체 스토리지 서비스(일반적으로 생각하는 클라우드 서비스 ex) 구글 드라이브)
- EBS : ES2 인스턴스에 사용 할 수 있는 블록 스토리지(사용하려면 컴퓨터와 같이 써야한다.)
- CloudFront
EBS
- EC2에 인스턴스 생성하기
인바운드 규칙 추가하기
S3
-
생성하기
-
권한 설정하기
{
"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"
}
}
}
]
}
이제 모든 사람에게 내 S3에 있는 자료들을 공유를 할 수 있다.
S3 EC2에 마운트하기
-
html 파일 하나 생성
-
S3에 자료 업로드 및 권한 변경
다음과 같이 다운이 아니라 웹서버 처럼 출력이 된다. -
ES3에서 설정 하기
apt-get update apt install s3fs awscli -y
csv파일은 절대로 공유 하지 않는다.
vi ~/.s3fs-creds
ACCESS_KEY_ID:SECRET_ACCESS_KEY
chmod 600 ~/.s3fs-creds
s3fs [버킷 이름] [특정 디렉토리] -o passwd_file=~/.s3fs-creds
umount [특정 디렉토리]
다음과 같이 업로드 해놓은 s3자료를 디렉토리에 불러올 수 있다.
CloudFront
- CloudFront 생성하기
s3 도메인 생성되면서 s3에 저장된 파일을 출력 할 수 있다.