https://online.visual-paradigm.com/drive/#diagramlist:proj=0&dashboard
https://aws.amazon.com/ko/rds/
관계형 데이터베이스 서비스
MariaDB, MS-SQL, Oracle, MySQL, PostgreSQL 사용 가능
백업, 소프트웨어 패치, 자동 장애 감지 및 복구 관리
Magnetic(싸고 느림), SSD(중간), PIOPS(비싸고 빠름) 유형으로 제공
서브넷 그룹을 만들어야 생성이 가능
→ 서브넷 그룹은 두 개 이상의 가용 영역에 각 하나의 서브넷 이상이 필요
create table sampledb.cars (
id int(10) auto_increment not null,
car_name varchar(20) not null,
brand_name varchar(20) not null,
primary key(id)
);
insert into sampledb.cars(car_name, brand_name) values ('소나타', '현대자동차');
insert into sampledb.cars(car_name, brand_name) values ('스포티지', '기아');
select * from sampledb.cars;
ubuntu@ip-10-0-20-112:~$ sudo apt update
ubuntu@ip-10-0-20-112:~$ sudo apt install -y mysql-client
ubuntu@ip-10-0-20-112:~$ mysql -u admin -p -h rookies037-db.cr8842ik2jrv.ap-northeast-1.rds.amazonaws.com
Enter password: password ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
RDS 인스턴스 주소
ERROR 2003 (HY000): Can't connect to MySQL server on → RDS 인스턴스로 연결 X
'rookies037-db.cr8842ik2jrv.ap-northeast-1.rds.amazonaws.com:3306' (110)
EC2에서 접속 불가
ubuntu@ip-10-0-20-112:~$ mysql -u admin -p -h rookies037-db.cr8842ik2jrv.ap-northeast-1.rds.amazonaws.com
Enter password: password
# RDS 인스턴스로 접속되는 것을 확인
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 56
Server version: 8.0.35 Source distribution
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
퍼블릭 액세스 불가능으로 설정
VPC 외부에서는 접속 불가능
VPC 내에서는 접속이 유지
ubuntu@ip-10-0-20-112:~$ mysql -u admin -p -h rookies037-db.cr8842ik2jrv.ap-northeast-1.rds.amazonaws.com
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 66
Server version: 8.0.35 Source distribution
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
단어 | 의미 |
---|---|
Connection Method | Standard TCP/IP over SSH |
SSH Hostname | (퍼블릭 서브넷에 위치한) EC2 인스턴스의 퍼블릭 IP 주소 |
SSH Username | EC2 인스턴스의 사용자 이름 |
SSH Key File | EC2 인스턴스 생성 시 내려받은 KeyPairs 파일 |
MySQL Hostname | RDS 인스턴스의 엔드포인트 |
MySQL Server Port | RDS 인스턴스의 서비스 포트 |
Username | RDS 인스턴스의 사용자 이름 |
Password | RDS 인스턴스의 사용자 패스워드 |
Default Schema | RDS 인스턴스에 연결 후 사용할 데이터베이스 |
키 페어는 이후에 사용하기 위해 유지하고, 인스턴스는 종료된 것을 확인
Amazon S3는 업계 최고의 확장성, 데이터 가용성 및 보안과 성능을 제공하는 객체 스토리지 서비스
데이터 레이크, 웹사이트, 클라우드 네이티브 애플리케이션, 백업, 아카이브, 기계 학습 및 분석과 같은 다양한 사용 사례에 대해 원하는 양의 데이터를 저장하고 보호
Amazon S3는 99.999999999%(9가 11개)의 내구성을 제공하도록 설계되었으며 전 세계 수백만 고객을 위해 데이터 저장
S3 스토리지 클래스에는 알 수 없거나 액세스 패턴이 변경되는 데이터에 대한 자동 비용 절감을 위한 S3 Intelligent-Tiering
가장 자주 액세스하는 데이터를 위한 S3 Express One Zone
자주 액세스하는 데이터를 위한 S3 Standard
자주 액세스하지 않는 데이터를 위한 S3 Standard-Infrequent Access(S3 Standard-IA) 및 S3 One Zone-Infrequent Access(S3 One Zone-IA)
즉각적인 액세스가 필요한 아카이브 데이터를 위한 S3 Glacier Instant Retrieval
즉각적인 액세스가 필요하지 않고 거의 액세스하지 않는 장기 데이터를 위한 S3 Glacier Flexible Retrieval(이전 S3 Glacier)
클라우드에서 가장 저렴한 스토리지로 몇 시간 만에 검색 가능한 장기간 아카이브 및 디지털 보존을 위한 Amazon S3 Glacier Deep Archive(S3 Glacier Deep Archive)
수명 주기를 설정해서 수명이 다한 객체를 만료하거나, 다른 S3 스토리지 클래스로 전환하는 것이 가능
객체 잠금을 사용하여 객체 변경 및 삭제에 대해 보호하는 것도 가능
자주 접속하는 데이터를 위해 높은 내구성, 가용성 및 성능을 갖춘 객체 스토리지 제공
자주 접근하지는 않지만 필요할 때 빠르게 접근해야 하는 데이터에 적합
S3 Standard의 우수한 내구성, 높은 처리량 및 짧은 지연시간을 저렴한 GB당 스토리지 요금과 GB당 검색 요금으로 제공
자주 접근하지는 않지만 필요할 때 빠르게 접근해야 하는 데이터에 적합
최소 3개의 가용 영역(AZ)에 데이터를 저장하는 다른 S3 스토리지 클래스와 달리, 단일 AZ에 데이터를 저장해 비용이 S3 Standard-IA보다 20% 저렴
자주 접속하지 않고 밀리초 단위의 검색이 필요한 장기 데이터에 대해 가장 저렴한 비용의 스토리지를 제공하는 아카이브 스토리지 클래스
S3 Standard 및 S3 Standard-IA 스토리지 클래스와 동일한 처리량과 밀리초 단위의 액세스를 지원하여 아카이브 스토리지에 대한 가장 빠른 액세스 제공
최소 저장 90일 → 90일간 삭제 불가
데이터 보관을 위한 안전하고 내구성이 좋은 저렴한 스토리지 클래스
저렴한 비용으로 원하는 양의 데이터를 안정적으로 저장
최소 저장 180일 → 180일간 삭제 불가
Amazon S3 에서 가장 저렴한 스토리지 클래스로 1년에 한두 번 정도 접근할 수 있는 데이터 장기 보관 및 디지털 저장 지원
기본 검색 시간이 12시간
Amazon S3을 사용하여 정적 웹 사이트의 호스팅 가능
정적 웹 사이트에서 개별 웹 페이지는 정적 콘텐츠를 포함
클라이언트 측 스크립트를 포함할 수도 있음
D:\aws> notepad index.html
<h1> Hello, S3!!! </h1>
<h2> S3 Test Page </h2>
D:\aws> aws configure
# CLI로 AWS 서비스를 사용할 사용자의 액세스 키
AWS Access Key ID [****************ZRMQ]:
AWS Secret Access Key [****************uQdb]:
Default region name [ap-northeast-1]:
Default output format [json]:
D:\aws> aws s3 ls
2024-04-05 19:30:49 rookies037-bucket-private
2024-04-05 19:24:28 rookies037-bucket-public
D:\aws> echo "<h1>Hello, AWS S3</h1>" > hello.html
D:\aws> type hello.html
"<h1>Hello, AWS S3</h1>"
D:\aws> aws s3 cp hello.html s3://rookies037-bucket-public
upload: .\hello.html to s3://rookies037-bucket-public/hello.html
D:\aws> aws s3api list-objects --bucket rookies037-bucket-public
{
"Contents": [
{
"Key": "hello.html", → CLI을 통해서 업로드
"LastModified": "2024-04-05T16:48:25+00:00",
"ETag": "\"4dc599225324877db3689e53a283959b\"",
"Size": 27,
"StorageClass": "STANDARD",
"Owner": {
"DisplayName": "aws29",
"ID": "6cd308e9e7b9df3954da56e915d2cfe9c6ce626ba00a538a8b3eafd5b7137d4c"
}
},
{
"Key": "index.html", → Management Console을 통해 업로드
"LastModified": "2024-04-05T10:42:32+00:00",
"ETag": "\"e00be700855d22a6dd9ae5896b92751a\"",
"Size": 48,
"StorageClass": "STANDARD",
"Owner": {
"DisplayName": "aws29",
"ID": "6cd308e9e7b9df3954da56e915d2cfe9c6ce626ba00a538a8b3eafd5b7137d4c"
}
}
],
"RequestCharged": null
}
D:\aws> mkdir bucket
D:\aws> aws s3 sync s3://rookies037-bucket-public d:\aws\bucket
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~
source target
download: s3://rookies037-bucket-public/index.html to bucket\index.html
download: s3://rookies037-bucket-public/hello.html to bucket\hello.html
D:\aws>dir d:\aws\bucket
D 드라이브의 볼륨: 새 볼륨
볼륨 일련 번호: AE30-D2D6
d:\aws\bucket 디렉터리
2024-04-06 오전 01:51 <DIR> .
2024-04-06 오전 01:51 <DIR> ..
2024-04-06 오전 01:48 27 hello.html
2024-04-05 오후 07:42 48 index.html
2개 파일 75 바이트
2개 디렉터리 83,785,220,096 바이트 남음
D:\aws> aws s3 sync d:\aws\bucket s3://rookies037-bucket-private
upload: bucket\hello.html to s3://rookies037-bucket-private/hello.html
upload: bucket\index.html to s3://rookies037-bucket-private/index.html
D:\aws> aws s3api list-objects --bucket rookies037-bucket-private
{
"Contents": [
{
"Key": "hello.html",
"LastModified": "2024-04-05T16:53:08+00:00",
"ETag": "\"4dc599225324877db3689e53a283959b\"",
"Size": 27,
"StorageClass": "STANDARD",
"Owner": {
"DisplayName": "aws29",
"ID": "6cd308e9e7b9df3954da56e915d2cfe9c6ce626ba00a538a8b3eafd5b7137d4c"
}
},
{
"Key": "index.html",
"LastModified": "2024-04-05T16:53:08+00:00",
"ETag": "\"e00be700855d22a6dd9ae5896b92751a\"",
"Size": 48,
"StorageClass": "STANDARD",
"Owner": {
"DisplayName": "aws29",
"ID": "6cd308e9e7b9df3954da56e915d2cfe9c6ce626ba00a538a8b3eafd5b7137d4c"
}
}
],
"RequestCharged": null
}
D:\aws> notepad index.html
<h1> Hello, S3!!! </h1>
<h2> New S3 Test Page </h2>
D:\aws> aws s3 cp index.html s3://rookies037-bucket-public
upload: .\index.html to s3://rookies037-bucket-public/index.html
D:\aws> notepad index.html
<h1> Hello, S3!!! </h1>
<h2> New New S3 Test Page </h2>
D:\aws> aws s3 cp index.html s3://rookies037-bucket-public
upload: .\index.html to s3://rookies037-bucket-public/index.html
https://github.com/cncf/toc/blob/main/DEFINITION.md#%ED%95%9C%EA%B5%AD%EC%96%B4
클라우드 네이티브 기술은 조직이 퍼블릭, 프라이빗, 그리고 하이브리드 클라우드와 같은 현대적이고 동적인 환경에서 확장 가능한 애플리케이션을 개발하고 실행할 수 있게 해줌
컨테이너, 서비스 메쉬, 마이크로서비스, 불변(Immutable) 인프라, 그리고 선언형(Declarative) API가 이러한 접근 방식의 예시들
이 기술은 회복성, 관리 편의성, 가시성을 갖춘 느슨하게 결합된 시스템을 가능하게 함
견고한 자동화 기능을 함께 사용하면 엔지니어는 영향이 큰 변경을 최소한의 노력으로 자주, 예측 가능하게 수행 가능
Cloud Native Computing Foundation은 벤더 중립적인 오픈 소스 프로젝트 생태계를 육성하고 유지함으로써 해당 패러다임 채택을 촉진
재단은 최신 기술 수준의 패턴을 대중화하여 이런 혁신을 누구나 접근 가능하도록 하게 함
iptables -A INPUT -p 프로토콜 --tcp-flags SYN SYN
-sport 출발지포트 -dport 목적지포트 -j DROP/ALLOW