AWS S3(Simple Storage Service)
아마존에서 제공하는 객체 스토리지 서비스로, 인터넷을 통해 데이터를 저장하고 관리할 수 있다. S3는 무제한 확장이 가능하며, 파일 저장, 백업, 데이터 아카이빙, 정적 웹 호스팅 등의 용도로 활용할 수 있다.
aws s3 mb s3://bucket-name
aws s3 cp myfile.jpg s3://bucket-name/
S3는 다양한 저장 방식을 제공하여 사용자의 필요에 따라 비용을 최적화할 수 있다.
aws s3 cp file.jpg s3://bucket-name/ --storage-class GLACIER
aws s3api put-bucket-versioning --bucket bucket-name --versioning-configuration Status=Enabled
{
"Version": "2025-03-02",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucket-name/*"
}
]
}
const AWS = require('aws-sdk');
const s3 = new AWS.S3({ region: 'ap-northeast-2' });
const params = {
Bucket: 'bucket-name',
Key: 'file.jpg',
Expires: 60 // 60초 동안 유효
};
const url = s3.getSignedUrl('getObject', params);
console.log('Presigned URL:', url);
{
"Rules": [
{
"ID": "MoveToGlacier",
"Status": "Enabled",
"Prefix": "",
"Transitions": [
{
"Days": 30,
"StorageClass": "GLACIER"
}
]
}
]
}
{
"LambdaFunctionConfigurations": [
{
"LambdaFunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction",
"Events": ["s3:ObjectCreated:*"]
}
]
}
aws s3 cp file.jpg s3://bucket-name/
const AWS = require('aws-sdk');
const fs = require('fs');
const s3 = new AWS.S3({ region: 'ap-northeast-2' });
const uploadParams = {
Bucket: 'bucket-name',
Key: 'uploads/file.jpg',
Body: fs.createReadStream('file.jpg'),
ACL: 'public-read' // 퍼블릭 액세스 허용
};
s3.upload(uploadParams, (err, data) => {
if (err) console.log("Upload Error", err);
else console.log("Upload Success", data.Location);
});
const params = {
Bucket: 'bucket-name',
Key: 'uploads/file.jpg',
Expires: 300
};
const url = s3.getSignedUrl('putObject', params);
console.log('Presigned URL:', url);