분류 전체보기 645

AWS CodeDeploy 생성

CodeDeploy는 애플리케이션 배포를 자동화하는 배포 서비스다. 나는 Amazon EC2 인스턴스에 CodeDeploy를 이용해서 배포를 자동화하였다. 1. 어플리케이션 생성을 클릭한다. 2. 애플리케이션을 생성한다. 컴퓨팅 플랫폼에는 EC2/온프레미스, AWS Lambda, Amazon ECS가 있다. 3. 애플리케이션 생성을 했다면, IAM에서 역할을 생성한다. CodeDeploy, EC2 각각에 역할을 생성한다. 🟢 CodeDeploy에 역할 부여 🟣 EC2에 역할 부여 EC2에 AmazonEC2RoleforAWSCodeDeploy 역할을 부여한다. 👆 생성한 IAM 역할을 EC2에 부여한다. 4. EC2에 태그 설정 EC2를 선택한다. > 작업 > 인스턴스 설정 > 태그 관리에 들어간다. 키 ..

DevOps/AWS 2023.12.08

AWS RDS 연결이 안 될때

Workbench로 RDS에 접속하려니까 갑자기 연결이 안 되었다. ✔️ 확인해야 할 것 두 가지를 점검해본다. RDS가 퍼플릭 엑세스 가능으로 설정되어있나? 인바운드 규칙 확인하기 나는 내 IP로 설정해주었다. 접속이 안 된 이유는 RDS를 생성할 때 다른 장소에서 했는데 다른 IP로 접속하려니 안 된거였다. 모든 IP를 허용하는 게 편하기는 하지만, 보안의 문제가 있다. 🤨 인바운드는 내가 AWS의 인스턴스에 접속하는거, 아웃바운드는 AWS 인스턴스에서 밖으로 나가는 거다. 참고 👇👇👇 https://www.inflearn.com/course/aws-2/dashboard [무료] 클라우드 서비스 AWS - 인프런 | 강의 이 수업은 클라우드 서비스인 AWS(Amazon Web Services)의 기본..

DevOps/AWS 2023.12.06

Nginx에 https 적용하기

certbot을 이용해서 배포한 서버에 https를 적용할 것이다.나는 Nginx를 Proxy server 용도로 사용하고 있다.공식 문서를 참고했는데 너무 간단하게 https를 적용할 수 있었다. (공식 문서 최고 🤗)   1. 사전 준비Software, System을 선택하면 그에 따른 설명을 보여준다.나는 Ubuntu 22 LTS를 사용하는데 저 선택 옵션에서는 Ubuntu 20까지밖에 없지만, 상관없다.  sudo apt-get remove certbotsudo dnf remove certbotsudo yum remove certbot apt / dnf / yum을 이용해서 Certbot을 설치했었다면, Certbot snap을 설치하기 전에 삭제해준다. sudo snap install --cl..

DevOps/AWS 2023.12.04

가비아에서 구입한 도메인을 Nginx 서버에 적용하기

가비아에서 구입한 도메인을 Nginx 서버에 적용할거다. 1. '레코드 수정'을 클릭한다. 2. '레코드 추가'를 클릭한 후 '호스트', '값/위치'를 입력한다. 값/위치는 EC2의 퍼플릭 IPv4 주소다. 호스트가 없으면 @를 입력한다. 이 경우 구입한 도메인이 test.shop이라면, http://test.shop http://www.test.shop로 접속하도록 만들고 싶으면 호스트에 www를 적어주면 된다. 3. nginx 설정을 변경한다. sudo vim /etc/nginx/sites-enabled/default i를 눌러서 insert 모드로 변경 후 servername 부분에 구입한 도메인명을 입력한다. 내 도메인은 비밀이다. 🐒🤫 저장할 때는 Esc 키를 누른 후 :wq를 입력하면, 저장과..

DevOps/AWS 2023.12.04

Permissions for '*.pem' are too open.

ssh 접속 시 키 파일이 공개적이면 이런 에러가 발생한다. 권한 설정을 해주면 된다. 해당 키 파일을 우클릭 속성 ➡️ 보안 탭 ➡️ 고급 3. '상속 사용 안 함'에서 '이 개체에서 상속된 사용 권한을 모두 제거합니다 '를 선택한다. 4. '추가' 버튼을 클릭한다. 5. '보안 주체 선택'을 클릭한다. 6. '고급'을 선택한다. 7. 내 계정을 찾아서 추가한다. 8. 권한 설정을 해준다.

DevOps/AWS 2023.12.03

AWS CloudFront

CloudFront Cache Server 전 세계 어디든지 빠르게 컨텐츠를 제공할 수 있는 CDN 🟡 CloudFront 생성 CloudFront와 S3를 연동해서 정적 리소스 파일 서빙용으로 사용할 것이다. 생성된 S3가 있다는 가정하에 CloudFront를 생성해보겠다. 추후에 https 적용 및 Route53 도메인 연결을 하면 좋을 것 같다 ! 원본 도메인에서 S3를 선택한다. 이름은 원본 도메인을 선택하면 자동으로 할당되길래 이걸로 사용했다. OAI 설정은 CloudFront를 통해서만 S3에 접속할 수 있도록 한다. 나는 AWS에서 권장한대로 CloudFront를 생성한 후 직접 버킷 정책을 수정하는 원본 엑세스 제어 설정(권장) 옵션을 선택했다. Legacy access Identities..

DevOps/AWS 2023.11.29

[MyBatis] 순서가 있는 답글

🟠 요구사항 답글은 최근에 등록된 것일수록 위에 있게 한다. 위의 이미지에서 18번 답글이 17번 답글보다 더 최신 답글이다. 16번 글은 18, 17번 답글의 부모 게시글이다. reboard 답글 테이블의 필드 article_no 답글이 달린 조상의 번호 depth 쉽게 생각하면, 들여쓰기 step 답글의 정렬 순서 parent_no 원글의 번호(누구의 답글인지?) => 내 바로 위 부모의 번호 🟢 MyBatis 및 서비스 1. 새 글을 작성했을 때 @Transactional @Override public void writeArticle(Reboard reboard) throws Exception { reboardMapper.writeArticle(reboard); reboardMapper.newRep..

Framework/MyBatis 2023.11.27

JSON 타입에서 값 추출해서 JOIN하기

-- attraction 필드 값 예시 [{"order": 1, "orderDate": 1, "attractionId": 1886054}, {"order": 2, "orderDate": 1, "attractionId": 1920563}, {"order": 1, "orderDate": 2, "attractionId": 136249}, {"order": 2, "orderDate": 2, "attractionId": 136310}] attraction_plan 테이블에 있는 attraction 필드는 JSON 타입이고, JSON 객체를 담고 있는 배열이다. attractionId와 관광지 테이블의 attraction_info 테이블의 content_id 필드의 값을 이용해서 조인을 했다. select attr..

DB/MySQL 2023.11.21

연관 관계에 있는 데이터 삭제

alter table user_plan add constraint foreign key (plan_idx) references plan(plan_idx) on delete cascade; alter table attraction_plan add constraint foreign key (plan_idx) references plan(plan_idx) on delete cascade; 부모 테이블의 데이터가 삭제되면 연관된 자식 테이블의 데이터도 같이 삭제되도록 할려고 delete cascade를 줬다. 하지만, 안 된다. ### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Cannot delete or..

DB/MySQL 2023.11.19