Skip to content

Commit 19091b4

Browse files
committed
⚡ MarkSphere v1.0.15
AWS EC2 -> OCI AWS RDS -> TiDB AWS S3 -> Cloudflare R2 AWS CloudFront -> Cloudflare CDN AWS Route 53 -> Cloudflare DNS 아키텍처 변경
1 parent c6fa741 commit 19091b4

3 files changed

Lines changed: 34 additions & 18 deletions

File tree

src/main/java/com/sonkim/bookmarking/common/config/S3Config.java

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,40 +11,53 @@
1111
import software.amazon.awssdk.services.s3.S3Client;
1212
import software.amazon.awssdk.services.s3.presigner.S3Presigner;
1313

14+
import java.net.URI;
15+
1416
@Configuration
1517
public class S3Config {
1618

17-
@Value("${aws.s3.accessKeyId}")
18-
private String accessKeyId;
19+
@Value("${cloud.r2.credentials.access-key}")
20+
private String r2AccessKey;
21+
22+
@Value("${cloud.r2.credentials.secret-key}")
23+
private String r2SecretKey;
24+
25+
@Value("${cloud.r2.endpoint}")
26+
private String endpoint;
1927

20-
@Value("${aws.s3.secretAccessKey}")
21-
private String secretAccessKey;
28+
@Value("${aws.lambda.access-key}")
29+
private String lambdaAccessKey;
30+
31+
@Value("${aws.lambda.scret-key}")
32+
private String lambdaSecretKey;
2233

2334
@Bean
2435
public S3Client s3Client() {
25-
AwsBasicCredentials credentials = AwsBasicCredentials.create(accessKeyId, secretAccessKey);
36+
AwsBasicCredentials credentials = AwsBasicCredentials.create(r2AccessKey, r2SecretKey);
2637
AwsCredentialsProvider provider = StaticCredentialsProvider.create(credentials);
2738

2839
return S3Client.builder()
29-
.region(Region.AP_NORTHEAST_2)
40+
.region(Region.of("auto"))
41+
.endpointOverride(URI.create(endpoint))
3042
.credentialsProvider(provider)
3143
.build();
3244
}
3345

3446
@Bean
3547
public S3Presigner s3Presigner() {
36-
AwsBasicCredentials credentials = AwsBasicCredentials.create(accessKeyId, secretAccessKey);
48+
AwsBasicCredentials credentials = AwsBasicCredentials.create(r2AccessKey, r2SecretKey);
3749
AwsCredentialsProvider provider = StaticCredentialsProvider.create(credentials);
3850

3951
return S3Presigner.builder()
40-
.region(Region.AP_NORTHEAST_2)
52+
.region(Region.of("auto"))
53+
.endpointOverride(URI.create(endpoint))
4154
.credentialsProvider(provider)
4255
.build();
4356
}
4457

4558
@Bean
4659
public LambdaClient lambdaClient() {
47-
AwsBasicCredentials credentials = AwsBasicCredentials.create(accessKeyId, secretAccessKey);
60+
AwsBasicCredentials credentials = AwsBasicCredentials.create(lambdaAccessKey, lambdaSecretKey);
4861
AwsCredentialsProvider provider = StaticCredentialsProvider.create(credentials);
4962

5063
return LambdaClient.builder()

src/main/java/com/sonkim/bookmarking/common/s3/service/S3Service.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,10 @@ public class S3Service {
3737
@Value("${aws.lambda.function-name}")
3838
private String lambdaFunctionName;
3939

40-
@Value("${aws.cloudfront.domain}")
40+
@Value("${cloudflare.cdn.domain}")
4141
private String cloudFrontDomain;
4242

43-
public S3Service(S3Client s3Client, @Value("${aws.s3.bucket-name}") String bucketName, S3Presigner s3Presigner, LambdaClient lambdaClient, ObjectMapper objectMapper) {
43+
public S3Service(S3Client s3Client, @Value("${cloud.r2.bucket}") String bucketName, S3Presigner s3Presigner, LambdaClient lambdaClient, ObjectMapper objectMapper) {
4444
this.s3Client = s3Client;
4545
this.bucketName = bucketName;
4646
this.s3Presigner = s3Presigner;

src/main/resources/application.properties

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ spring.profiles.active=local
55
spring.jpa.show-sql=true
66
spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect
77

8-
# MySQL
8+
# DB Config
99
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
1010
spring.datasource.url=${DB_URL}
1111
spring.datasource.username=${DB_USERNAME}
@@ -19,16 +19,19 @@ spring.jwt.refresh-token-expiration-ms=604800000
1919
# YouTube Data API Key
2020
google.youtube.api.key=${YOUTUBE_API_KEY}
2121

22-
# S3
23-
aws.s3.accessKeyId=${AWS_ACCESS_KEY}
24-
aws.s3.secretAccessKey=${AWS_SECRET_KEY}
25-
aws.s3.bucket-name=socialbookmarking-bucket
22+
# R2 Config
23+
cloud.r2.credentials.access-key=${R2_ACCESS_KEY_ID}
24+
cloud.r2.credentials.secret-key=${R2_SECRET_ACCESS_KEY}
25+
cloud.r2.bucket=marksphere-storage
26+
cloud.r2.endpoint=${R2_ENDPOINT}
2627

2728
# AWS Lambda
29+
aws.lambda.access-key=${AWS_ACCESS_KEY}
30+
aws.lambda.scret-key=${AWS_SECRET_KEY}
2831
aws.lambda.function-name=${LAMBDA_FUNCTION_NAME}
2932

30-
# AWS CloudFront
31-
aws.cloudfront.domain=${AWS_CLOUDFRONT_DOMAIN}
33+
# Cloudflare CDN
34+
cloudflare.cdn.domain=${CLOUDFLARE_CDN_DOMAIN}
3235

3336
spring.data.redis.host=${REDIS_HOST}
3437
spring.data.redis.port=6379

0 commit comments

Comments
 (0)