전체 글 468

(AWS) CloudFormatoin의 Parameter-SSM, Public Parameter-SSM, DependsOn 이란?

Parameter-SSM이란? AWS System Manager의 Parameter저장소를 CF에 연결해보자. SSM을 이용한 Parameter관리는 중앙집중식으로 관리하는데 유용하다. 많은 리소스들이 공통으로 사용하는 Parameter가 있다면 이것을 SSM에 등록해서 일괄 관리하는것은 효율적이다. 사용법 1. SSM Parameter적용된 Template 준비 Parameters: InstanceType: Type: 'AWS::SSM::Parameter::Value' Default: /EC2/InstanceType ImageId: Type: 'AWS::SSM::Parameter::Value' Default: /EC2/AMI_ID 2. [AWS System Manager]-[Parameter Store..

(AWS) CloudFormation의 ChangeSet, DeletionPolicy

ChangeSet ChangeSet은 Stack을 업데이트 하기 전 무엇이 변경되는지 사전에 체크해보기 위해 사용한다. 하지만 이 과정이 Update성공여부를 확인시켜주지는 않는다. 사용법 1. 업데이트 대상 Stack의 [ChangeSets] 메뉴로 들어간다. 2. 'Create Change Set'을 클릭한다. 3. 어떤 Template을 적용할 것인지에 대한 선택지가 나오는데, 필자는 새로운 Template을 적용할 것이므로 'Replace current Template'을 클릭한다. 4. Template을 S3에서 업로드 해도 되고, 직접 Template을 업로드해도 된다. 5. 설정이 완료되면 변경사항이 표시된다. 하단에 내려보면 어떤 변경사항이 발생하는지 요약되어 있다. 6. 'Execute'..

(RDBMS) 인덱스에 대해서

인덱스는 이름 그대로 무언가를 빠르게 찾기 위한 색인이다. 즉 테이블 내에서 특정 조건에 대한 검색을 속도를 향상시킨다. Full Scan을 방지하기 위해 사전에 색인하는 것이라보면 되겠다. 다만, 인덱스도 하나의 테이블이기 때문에 인덱스 테이블 스페이스가 필요하다(용량이 소모됨) 우선 Index 방식이 유용한 때와 그렇지 않은 때를 구분하자. Index 방식이 유용한 경우 Row수가 매우 긴 경우 PK, FK 등 완전히 Unique하거나, 값의 분포도가 고른 컬럼이 존재하는 테이블 쿼리의 WHERE 조건에서 자주 참조되는 테이블 큰 테이블에서 적은 데이터 참조가 자주 발생할때 (예, 재직구분에서 휴가 중인 사람을 검색) 다른 테이블과 순차적 JOIN(Nested Join)이 발생하는 경우 랜덤방식의 테..

PaaS/Data 2022.01.25

(JAVA-Jenkins) Java SpringFrameWork Jenkins 파이프라인 With Nexacro

일반 파이프라인 STAGE 1. Maven 빌드 2. War파일(Artifact) WAS 전송 3. Java 컨테이너 Restart Nexacro 추가된 파이프라인 STAGE 1. Nexacro 빌드 2. Maven 빌드 3. War파일(Artifact) WAS전송 4. Nexacro 소스파일 WAS 전송 5. Nexacro 소스파일 Unzip 6. JAVA 컨테이너 Restart 1. Nexacro Generator를 통한 UI소스 Build 및 Nexacro Deploy Server에 업로드* - Gitlab → Nexacro Deploy Server ※ Nexacro Build 스크립트 예시 echo "NEXABUILD START!!!" set PROJECT_NM=armyost_project set..

PaaS/CI CD 2022.01.24

(JAVA, Gitlab) Git Submodule을 사용하여 멀티프로젝트를 진행해보자

Submodule을 가지는 프로젝트 구조의 장점 시스템 개발의 단위(형상)를 분리하여 빌드 및 배포가 용이하고, 모듈별로 레포지토리가 생겨 프로젝트별로 추적이 용이하다는 장점이 있다. Submodule 구조를 위한 Gitlab Repository 생성 및 Client 작업 Main, Sub 레파지토리 만들기 Main Project Repo https://myrepo.gitlab.com/mainproject.git 부모프로젝트로써 Domain의 시작. 전체 모듈의 구조 정의 Common Project Repo https://myrepo.gitlab.com/commonproject.git Sub Project 중 하나로 대부분 모듈에서 사용되는 것들의 집합. 얇은 의존성을 위해 프로젝트 내 기타모듈 참조 없..

Programming/Java 2022.01.21

(SpringFrameWork) Dependency 오류 시 봐야할것. dependencies could not be resolved

늘 사용하던 환경이 아닌 새로운 환경에서 SpringFramework 세팅을 하다보면 여러 난관에 봉착한다. 회사마다 특정 Private Nexus Central Repository에 연동하는 경우도 많고 보안적인 이유때문에 인증서관련 네트워크 문제도 있다. 이럴때 우선 하나하나 체크해가며 확인해보자. 참고로 Maven Build를 기준하여 설명한다. [Run As]-[Maven Clean]을 하고 [Maven Build]를 하자. 만약 Dependency문제가 있으면 'dependencies could not be resolved...' 라고 뜰것이다. 1. Maven settings.xml 확인 ~/maven/conf/settings.xml 을 에디터로 열어 Central Repository가 어디인..

Programming/Java 2022.01.20

(AWS) CloudFormation Rollback, Nested Stack

Rollback이란? CF템플릿 실행중에 Fail발생시 진행되는 프로세스로 Rollback을 수행하게 되면 동일 템플릿 내 Resource는 모두 삭제된다. Stack Creation Fails 옵션(CF API) Default : 모든것이 삭제(Rollback)됨 로그는 확인가능 OnFailure=ROLLBACK TroubleShoot: Rollback을 비활성화 하고 수동적으로 TroubleShooting OnFailure=DO_NOTHING Delete: Stack 전체 삭제. 어떤것도 유지하지 않음 OnFailure=DELETE Nested Stack 이란? 다른 Stack의 일부로 생성된 Stack입니다. AWS::CloudFormation::Stack리소스를 사용하여 다른 스택 내에 중첩 스택..

(AWS) CloudFormation UserData, cfn-init, cfn-signal 에 대해

UserData 란? AWS 콘솔을 통해 User Data를 EC2 시작시에 적용할 수 있다. 또한 CF를 통해 포함시켜 적용할 수 있다. 중요한것은 모든 Script는 Fn::Base64를 통해서 통과한다는 것이다. UserData는 /var/log/cloud-init-output.log에 로깅된다 사용법 Resources: MyInstances: Properties: AvailabilityZone: us-east-1a UserData: Fn::Base64: | #!/bin/bash -xe yum update -y yum install -y httpd systemctl start httpd systemctl enable httpd echo "Hello world! from user data" ? /va..

(AWS) CloudFormation Output, Condition 에 대해

Output 이란? Output section은 다른 Stack에서 사용할 수 있도록 값을 공유하는 것이다. AWS CLI나 AWS Console 등을 통해서도 Output을 볼 수 있다. 네트워크를 CF로 정의했을 경우 VPC ID나 Subnet ID를 공유하는데 유용하다 Output이 다른 Stack에서 참조되고 있으면 지울 수 없다. 사용법 Export Outpus: StackSSHSecurityGroup: Description: The SSH Security Group for our Company Value: !Ref MyCompanyWideSSHSecurityGroup Export: Name: SSHSecurityGroup Import Resources: MySecureInstance: Type..

(AWS) CloudFormation Resource, Parameter, Mapping에 대해

Parameter 사용하기 Parameter는 AWS CloudFormation template에 입력값을 제공하는 방법이다. 당신이 여러 사이트에서 해당 템플릿을 재사용하고 싶을때 사용한다. Parameters: SecurityGroupDescription: Description: Security Group Description Type: String Parameter는 아래와 같은 세팅으로 컨트롤 된다. Type Type String Number CommaDelimitedList List AWS Parameter (to help catch invalid values - match against existing values in the AWS Account) Description Constraints ..