Route 53
-먼저 Route 53이란 가용성과 확장성이 뛰어난 DNS(도메인 이름 시스템) 웹 서비스이다. Route 53을 사용하여 세 가지 주요 기능, 즉 도메인 등록, DNS 라우팅, 상태 확인을 조합하여 실행할 수 있다.
Route 53의 라우팅 정책
1) 단순 라우팅 정책 – 특별한 기능(가중치, 지연시간 등)을 제공하지 않으며, 단일 리소스(서버, 로드밸런서 등)으로 트래픽을 라우팅 한다. 일반적으로 가장 많이 사용하는 정책이자 보통 DNS에서 레코드를 등록하는 방법과 거의 동일하다.
2) 가중치 기반 라우팅 정책 – 하나의 레코드에서 각각의 리소스로 라우팅되는 비율을 지정하여 설정 가능한 것이다.
3) 지리적 위치 라우팅 정책 – 사용자의 위치를 기반으로 라우팅할 리소스를 지정할 수 있다. 각 위치마다 사용자들의 특성별로 서비스를 제공할 수 있기에 글로벌 서비스에 특화되어 있다.
4) 지연 시간 라우팅 정책 – 지연 시간이 가장 낮은 AWS 리전의 리소스로 요청을 라우팅한다. 여러 리전에서 서비스를 하는 사용자에게 최적의 정책이다.
5) 장애 조치 라우팅 정책 – 첫 번째, 두 번째 리소스를 정해두고 첫 번째 리소스가 비정상일 경우 두 번째 리소스로 라우팅한다. 로드밸런서 용도로는 사용하기 어렵고 첫 번째 리소스가 비정상일 때만 두 번째 리소스로 라우팅하기 때문에, 두 번째 리소스는 대기하고있다는 단점이 있다.
6) 다중 응답 라우팅 정책 – 요청에 대해 여러 리소스 값을 반환할 수 있다.
Lambda란?
- 서버를 프로비저닝하거나 관리하지 않고도 애플리케이션을 빌드할 수 있게 해주는 컴퓨팅 서비스이다. 즉, 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행하게 해주는 서버리스 컴퓨팅 서비스로서 모든 유형의 애플리케이션이나 백엔드 서비스에 대한 코드를 별도의 관리 없이 실행 가능하다.
람다의 지원 언어로는 python, node js, 루비, C#, 파워쉘, 구글 고 등 지원한다. 실습하는 환경에서 지원 언어를 설정하는 창이 있는데 거기서 확인 가능하다.
Lambda의 장점으로는 비용절감이나, 인프라 운영관리 부담절감, 빠른 개발 배포 등이 있지만, 단점으로 리소스 제한, 함수가 호출되면 새로운 컨테이너를 띄우기에 별도의 상태 저장X, 장시간 미사용 시 실행환경을 다시 구성해야하는 단점이 있다.
Lambda 실습
- 다음과 같은 Lambda 환경을 구성하는 실습을 진행한다.
(s3의 파일을 업로드하면 이미지파일의 크기가 조절되어 resized-s3에 업로드 되는 실습)
먼저 S3 버킷의 이름을 mybucketjm01과, mybucketjm01-resized로 2개 생성한다.
- 이름만 설정하고 다른 옵션은 건드리지않았다.
2. Lambda 함수에 다른 AWS 리소스를 액세스하는 데 필요한 권한을 부여하는 정책을 생성한다. Lambda에 Amazon S3 버킷에 대한 읽기 및 쓰기 권한을 부여하고 Amazon Logs에 쓸 수 있도록 허용한다.
먼저 정책을 생성하기위해 IAM 콘솔에서 정책 페이지 -> 정책 생성을 선택한다. 그 다음, json 편집기에
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:PutLogEvents",
"logs:CreateLogGroup",
"logs:CreateLogStream"
],
"Resource": "arn:aws:logs:*:*:*"
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": "arn:aws:s3:::*/*"
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject"
],
"Resource": "arn:aws:s3:::*/*"
}
]
}
다음 코드를 붙여넣기 하고, 정책 이름은 LambdaS3Policy라고 정해준다음 정책을 생성한다.
3. 실행 역할을 생성하고 권한 정책을 연결한다.
- 앞서 만든 정책을 역할을 생성할 때 연결하여 선택해주고, LambdaS3Role이라고 이름을 정한다.
4. 배포 패키지를 만든다. -> 우리는 실습으로 인해 파일을 받아서 사용했다. lambda_fuction.zip으로 받아 사용했다.
5. Lambda 함수를 생성한다. 먼저 lambda 함수 생성페이지를 들어가서, CreateThumbnail로 정하고 앞서 만든 역할을 선택해준다.
- 다음으로 함수 코드를 업로드하기위해 코드 소스 창에서 업로드를 선택한다.
업로드를 누르면 .zip파일과 amazons3의 위치 둘 중 선택할 수 있는데 .zip파일을 선택해서 앞선 파일의 위치를 선택해준다음 업로드한다.
5. 함수 페이지에서 트리거를 추가해준다. 다음과 같이 s3를 선택하고 원본 이미지파일을 업로드할 버킷을 선택해주고, 이벤트 유형에서 all object 생성을 선택하고 추가해준다.
- 생성하면 다음과 같이 보일 것이다.
6. 원본 버킷에 이미지파일을 올리고 수정된 이미지파일이 업로드 되는 것을 확인한다.
다음과 같이 파일을 올렸을 때 파일의 크기를 보면 8.3kb, 4.8kb 인 것을 확인할 수 있는데,
이미지의 크기가 수정된 파일을 보면 3.9kb, 2.6kb인 것을 확인할 수 있다.
'클라우드 > AWS' 카테고리의 다른 글
AWS DB, 관계형,비관계형 데이터베이스란? (0) | 2024.04.01 |
---|---|
VPC Endpoint란? (0) | 2024.03.29 |
로드 밸런서(ELB), 오토 스케일링(ASG) 실습 (0) | 2024.03.29 |
S3, iAM 실습 (0) | 2024.03.28 |
IAM, S3 실습 및 개념 (0) | 2024.03.27 |