ARN (Amazon Resource Name)
📌 AWS 리소스를 고유하게 식별하기 위한 이름 규칙입니다.
- AWS의 모든 서비스와 리소스는 ARN을 사용하여 참조되며, 이를 통해 특정 리소스를 정확히 지정할 수 있습니다.
[AWS의 리소스란]
더보기
리소스란?
**리소스(Resource)**는 **AWS에서 사용하거나 관리할 수 있는 모든 엔터티(자원 = 코드로 구현된 모든것들)**를 의미합니다.
즉, AWS에서 생성, 배포, 운영되는 서비스의 실제 개체를 가리킵니다.
AWS 리소스에는 컴퓨팅, 스토리지, 데이터베이스, 네트워크 등 다양한 종류의 리소스가 포함됩니다.
AWS 리소스의 예
서비스 | 리소스 예시 | 설명 |
EC2 | 인스턴스, AMI, 키 페어 | 가상 서버, 이미지, SSH 키 등. |
S3 | 버킷, 객체 | 데이터를 저장하는 버킷과 파일. |
RDS | 데이터베이스 인스턴스, 스냅샷 | 관리형 데이터베이스와 백업. |
IAM | 사용자, 그룹, 역할, 정책 | 권한 관리와 관련된 리소스. |
Lambda | 함수, 레이어 | 서버리스 컴퓨팅 리소스. |
CloudFront | 배포(Distribution) | 콘텐츠를 캐시하고 전달하는 네트워크. |
DynamoDB | 테이블 | NoSQL 데이터 저장소. |
EBS | 볼륨, 스냅샷 | EC2에 연결된 블록 스토리지와 백업. |
VPC | VPC, 서브넷, 인터넷 게이트웨이 | 네트워크를 구성하는 요소. |
Route 53 | 호스팅 영역, 레코드 세트 | DNS 서비스에서 도메인과 IP를 연결하는 리소스. |
리소스의 역할
AWS 리소스는 클라우드에서 작업을 수행하기 위해 사용됩니다.
예를 들어:
- EC2 인스턴스: 애플리케이션을 실행하는 가상 서버.
- S3 버킷: 데이터를 저장하거나 공유하는 저장소.
- IAM 사용자: AWS 리소스를 사용할 수 있는 사람이나 애플리케이션.
리소스와 ARN의 관계
- 리소스는 AWS의 실제 대상이며, ARN은 이 리소스를 식별하는 "이름표"입니다.
- 예를 들어:
- 리소스: EC2 인스턴스.
- ARN: arn:aws:ec2:us-east-1:123456789012:instance/i-0123456789abcdef0
→ 해당 ARN은 특정 리전, 특정 계정의 특정 EC2 인스턴스를 가리킵니다.
리소스를 쉽게 이해하기
- AWS 리소스란?
- AWS에서 우리가 생성하고 사용하는 실체적인 것들.
- 예: 서버(EC2), 데이터 저장소(S3), 데이터베이스(RDS).
- 비유:
- 리소스는 "AWS 클라우드에서 빌리는 장치 또는 공간".
- 예: AWS의 S3는 데이터를 저장하는 "가상 드라이브", EC2는 "가상 컴퓨터".
추가로 궁금한 점이 있으면 언제든 물어보세요! 😊
ARN의 구조
ARN은 다음과 같은 구조적 형식을 따릅니다:
arn:partition:service:region:account-id:resource
구성 요소 설명
구성 요소 | 설명 |
arn | 고정 문자열 "arn"으로, AWS 리소스를 식별하는 시작 부분. |
partition | AWS의 리전 및 서비스 그룹. |
- 일반적으로 "aws" 사용.
- 다른 옵션: `aws-cn`(중국 리전), `aws-us-gov`(AWS GovCloud). |
| service | 리소스가 속한 AWS 서비스 이름. 예: s3, ec2, dynamodb. | | region | 리소스가 속한 AWS 리전. 예: us-east-1, ap-northeast-2. | | account-id | AWS 계정 ID(12자리 숫자). 특정 리소스가 AWS 계정에 속해 있는 경우 사용. | | resource | 리소스의 고유 식별자. 서비스에 따라 형식이 다름. |
ARN 예시
1. S3 버킷
arn:aws:s3:::my-bucket
- partition: aws (글로벌 S3 리소스).
- service: s3.
- region: 비워둠(S3 버킷은 리전과 무관).
- account-id: 비워둠(S3는 계정 ID 필요 없음).
- resource: my-bucket.
2. S3 객체
arn:aws:s3:::my-bucket/my-object.txt
- resource: 버킷 이름과 객체 이름.
3. EC2 인스턴스
arn:aws:ec2:ap-northeast-2:123456789012:instance/i-0123456789abcdef0
- service: ec2.
- region: ap-northeast-2 (서울 리전).
- account-id: 123456789012.
- resource: EC2 인스턴스 ID(i-0123456789abcdef0).
4. Lambda 함수
arn:aws:lambda:us-east-1:123456789012:function:my-function
- service: lambda.
- region: us-east-1.
- account-id: 123456789012.
- resource: 함수 이름(my-function).
ARN 사용 사례
- IAM 정책에서 리소스 지정
- 특정 IAM 사용자가 특정 리소스에 접근할 수 있도록 ARN을 사용.
- 예:
{ "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::my-bucket/my-object.txt" }
- 리소스 공유
- 다른 AWS 계정과 리소스를 공유할 때 ARN을 사용해 특정 리소스를 참조.
- 로깅 및 모니터링
- AWS CloudTrail 및 CloudWatch에서 ARN을 통해 이벤트 또는 리소스를 추적.
- 리소스 태그링
- 태그와 ARN을 결합해 특정 리소스를 효율적으로 관리.
ARN의 주요 특징
- 고유성: AWS 내에서 특정 리소스를 고유하게 식별.
- 서비스 의존적: 서비스에 따라 리소스 형식과 세부 사항이 다름.
- 글로벌 및 지역 리소스:
- S3 버킷처럼 글로벌 리소스인 경우 region 필드가 비어 있음.
- EC2 인스턴스처럼 지역 리소스는 region 필드가 필수.
ARN과 AWS 리소스 관계
서비스 | ARN 예시 |
S3 버킷 | arn:aws:s3:::my-bucket |
S3 객체 | arn:aws:s3:::my-bucket/my-object.txt |
EC2 인스턴스 | arn:aws:ec2:ap-northeast-2:123456789012:instance/i-0123456789abcdef0 |
IAM 사용자 | arn:aws:iam::123456789012:user/my-user |
Lambda 함수 | arn:aws:lambda:us-east-1:123456789012:function:my-function |
ARN을 쉽게 이해하기
- 리소스의 고유 주소:
- ARN은 AWS 리소스의 "고유 주소"로, AWS 내부에서 리소스를 정확히 지정하기 위한 방법입니다.
- 예: "서울의 한 아파트 101호"라는 주소가 특정 집을 가리키듯, ARN은 특정 AWS 리소스를 가리킴.
- 구조적인 이름 규칙:
- "AWS 리소스에 대한 체계적인 이름 붙이기"라고 생각하면 됩니다.
추가로 알아두면 좋은 점
- ARN과 리전: 일부 글로벌 서비스(S3, IAM 등)는 리전을 사용하지 않지만, 대부분의 리소스는 리전이 필수.
- ARN의 중요성: IAM 정책, CloudFormation, 로깅 등 AWS 전반에서 널리 사용됨.
- 서비스마다 리소스 형식이 다름: 서비스마다 ARN의 마지막 resource 부분 형식이 다르므로, 공식 문서를 참고하는 것이 중요.
'Cloud > AWS' 카테고리의 다른 글
[AWS] Cloudfront (콘텐츠 전송 네트워크) (0) | 2025.03.11 |
---|---|
[AWS] ACL (AWS의 리소스 접근 권한을 제어하는 규칙) (0) | 2025.03.10 |
[AWS] Bucket (S3에서 데이터를 저장하는 기본 단위(컨테이너)) (1) | 2025.03.08 |
[AWS] S3 (AWS의 데이터 저장공간) (0) | 2025.03.07 |
[AWS] VPC (AWS의 가상의 사설 네트워크) (2) | 2025.03.06 |