Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/dev-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -92,12 +92,12 @@ jobs:
run: |
aws s3 cp \
--region ap-northeast-2 \
./pawwithu-build.zip s3://pawwithu-bucket
./pawwithu-build.zip s3://pawwithu2-app-bucket

# CodeDeploy에 배포 요청
- name: Code Deploy Deployment Request
run: |
aws deploy create-deployment --application-name pawwithu \
aws deploy create-deployment --application-name pawwithu2 \
--deployment-config-name CodeDeployDefault.OneAtATime \
--deployment-group-name pawwithu \
--s3-location bucket=pawwithu-bucket,bundleType=zip,key=pawwithu-build.zip
--deployment-group-name pawwithu2 \
--s3-location bucket=pawwithu2-app-bucket,bundleType=zip,key=pawwithu-build.zip
4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM openjdk:17
FROM eclipse-temurin:17-jdk
ARG JAR_FILE=connectdog-0.0.1-SNAPSHOT.jar
COPY $JAR_FILE app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]
ENTRYPOINT ["java", "-jar", "/app.jar"]
8 changes: 4 additions & 4 deletions appspec.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,17 @@ version: 0.0
os: linux
files:
- source: /
destination: /home/ubuntu
destination: /home/ec2-user
overwrite: yes

permissions:
- object: /
pattern: "**"
owner: ubuntu
group: ubuntu
owner: ec2-user
group: ec2-user

hooks:
ApplicationStart:
- location: deploy.sh
timeout: 200
runas: ubuntu
runas: ec2-user
30 changes: 15 additions & 15 deletions scripts/deploy.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# 작업 디렉토리를 /home/ubuntu으로 변경
cd /home/ubuntu
# 작업 디렉토리를 /home/ec2-user으로 변경
cd /home/ec2-user

# 환경변수 DOCKER_APP_NAME을 connectdog으로 설정
DOCKER_APP_NAME=connectdog
Expand All @@ -9,14 +9,14 @@ DOCKER_APP_NAME=connectdog
EXIST_BLUE=$(sudo docker-compose -p ${DOCKER_APP_NAME}-blue -f docker-compose.blue.yml ps | grep Up)

# 배포 시작한 날짜와 시간을 기록
echo "배포 시작 일자 : $(date +%Y)-$(date +%m)-$(date +%d) $(date +%H):$(date +%M):$(date +%S)" >> /home/ubuntu/deploy.log
echo "배포 시작 일자 : $(date +%Y)-$(date +%m)-$(date +%d) $(date +%H):$(date +%M):$(date +%S)" >> /home/ec2-user/deploy.log

# green이 실행 중이면 blue up
# EXIST_BLUE 변수가 비어있는지 확인
if [ -z "$EXIST_BLUE" ]; then

# 로그 파일(/home/ubuntu/deploy.log)에 "blue up - blue 배포 : port:8081"이라는 내용을 추가
echo "blue 배포 시작 : $(date +%Y)-$(date +%m)-$(date +%d) $(date +%H):$(date +%M):$(date +%S)" >> /home/ubuntu/deploy.log
# 로그 파일(/home/ec2-user/deploy.log)에 "blue up - blue 배포 : port:8081"이라는 내용을 추가
echo "blue 배포 시작 : $(date +%Y)-$(date +%m)-$(date +%d) $(date +%H):$(date +%M):$(date +%S)" >> /home/ec2-user/deploy.log

# docker-compose.blue.yml 파일을 사용하여 connectdog-blue 프로젝트의 컨테이너를 빌드하고 실행
sudo docker-compose -p ${DOCKER_APP_NAME}-blue -f docker-compose.blue.yml up -d --build
Expand All @@ -34,21 +34,21 @@ if [ -z "$EXIST_BLUE" ]; then
# blue가 현재 실행되고 있는 경우에만 green을 종료
else

# /home/ubuntu/deploy.log: 로그 파일에 "green 중단 시작"이라는 내용을 추가
echo "green 중단 시작 : $(date +%Y)-$(date +%m)-$(date +%d) $(date +%H):$(date +%M):$(date +%S)" >> /home/ubuntu/deploy.log
# /home/ec2-user/deploy.log: 로그 파일에 "green 중단 시작"이라는 내용을 추가
echo "green 중단 시작 : $(date +%Y)-$(date +%m)-$(date +%d) $(date +%H):$(date +%M):$(date +%S)" >> /home/ec2-user/deploy.log

# docker-compose.green.yml 파일을 사용하여 connectdog-green 프로젝트의 컨테이너를 중지
sudo docker-compose -p ${DOCKER_APP_NAME}-green -f docker-compose.green.yml down

# 사용하지 않는 이미지 삭제
sudo docker image prune -af

echo "green 중단 완료 : $(date +%Y)-$(date +%m)-$(date +%d) $(date +%H):$(date +%M):$(date +%S)" >> /home/ubuntu/deploy.log
echo "green 중단 완료 : $(date +%Y)-$(date +%m)-$(date +%d) $(date +%H):$(date +%M):$(date +%S)" >> /home/ec2-user/deploy.log
fi

# blue가 실행중이면 green up
else
echo "green 배포 시작 : $(date +%Y)-$(date +%m)-$(date +%d) $(date +%H):$(date +%M):$(date +%S)" >> /home/ubuntu/deploy.log
echo "green 배포 시작 : $(date +%Y)-$(date +%m)-$(date +%d) $(date +%H):$(date +%M):$(date +%S)" >> /home/ec2-user/deploy.log
sudo docker-compose -p ${DOCKER_APP_NAME}-green -f docker-compose.green.yml up -d --build

sleep 30
Expand All @@ -61,20 +61,20 @@ else
sudo ./slack_green.sh
else

# /home/ubuntu/deploy.log: 로그 파일에 "blue 중단 시작"이라는 내용을 추가
echo "blue 중단 시작 : $(date +%Y)-$(date +%m)-$(date +%d) $(date +%H):$(date +%M):$(date +%S)" >> /home/ubuntu/deploy.log
# /home/ec2-user/deploy.log: 로그 파일에 "blue 중단 시작"이라는 내용을 추가
echo "blue 중단 시작 : $(date +%Y)-$(date +%m)-$(date +%d) $(date +%H):$(date +%M):$(date +%S)" >> /home/ec2-user/deploy.log

# docker-compose.blue.yml 파일을 사용하여 connectdog-green 프로젝트의 컨테이너를 중지
sudo docker-compose -p ${DOCKER_APP_NAME}-blue -f docker-compose.blue.yml down

# 사용하지 않는 이미지 삭제
sudo docker image prune -af

echo "blue 중단 완료 : $(date +%Y)-$(date +%m)-$(date +%d) $(date +%H):$(date +%M):$(date +%S)" >> /home/ubuntu/deploy.log
echo "blue 중단 완료 : $(date +%Y)-$(date +%m)-$(date +%d) $(date +%H):$(date +%M):$(date +%S)" >> /home/ec2-user/deploy.log
fi
fi

echo "배포 종료 : $(date +%Y)-$(date +%m)-$(date +%d) $(date +%H):$(date +%M):$(date +%S)" >> /home/ubuntu/deploy.log
echo "배포 종료 : $(date +%Y)-$(date +%m)-$(date +%d) $(date +%H):$(date +%M):$(date +%S)" >> /home/ec2-user/deploy.log

echo "===================== 배포 완료 =====================" >> /home/ubuntu/deploy.log
echo >> /home/ubuntu/deploy.log
echo "===================== 배포 완료 =====================" >> /home/ec2-user/deploy.log
echo >> /home/ec2-user/deploy.log
15 changes: 14 additions & 1 deletion src/main/java/com/pawwithu/connectdog/config/RedisConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,10 @@
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.connection.RedisConfiguration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
import org.springframework.data.redis.connection.lettuce.LettuceClientConfiguration;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.repository.configuration.EnableRedisRepositories;
Expand All @@ -31,9 +34,19 @@ public class RedisConfig extends CachingConfigurerSupport {
@Value("${spring.data.redis.host}")
private String host;

@Value("${spring.data.redis.ssl.enabled:false}")
private Boolean ssl;

@Bean
public RedisConnectionFactory redisConnectionFactory() {
return new LettuceConnectionFactory(host, port);
RedisConfiguration config = new RedisStandaloneConfiguration(host, port);
LettuceClientConfiguration.LettuceClientConfigurationBuilder clientConfigBuilder = LettuceClientConfiguration.builder();

if (Boolean.TRUE.equals(ssl)) {
clientConfigBuilder.useSsl();
}

return new LettuceConnectionFactory(config, clientConfigBuilder.build());
}

@Bean(name = "redisTemplate")
Expand Down
Loading
Loading