AWS Secrets Manager 개념 및 테스트
비밀값 관리 대부분 어플리케이션은 외부에 노출돼서는 안되는 비밀값을 갖고 있음(ex. 데이터베이스 접속정보, 서드파티 서비스 호출을 위한 액세스 키 등) 비밀값 관리 원칙 비밀값 유출가능성으로 비밀값은 버전 관리 시스템에 업로드되면 안됨 비밀값은 최소한의 인원만 알고 있어야 함 비밀값과 아닌 값은 분리해서 관리 필요 비밀값 관리 방법 배포 자동화 툴 - Jenkins, Chef, Ansible 같은 배포 자동화 툴들은 배포 시 서버 내 암호화된 값을 어플리케이션이 사용할 수 있게 저장할 수 있음 Vault(오픈소스) - 비밀값 암호화, API 접속을 위한 임시 토큰 발급, 키 롤링, 외부서비스(IAM, SSH, DB 등)에서 사용하는 권한 시스템 사용, 기록 감사, 암복호화 API 등 제공 - 어플리케이..
2022. 3. 11.
AWS CodeDeploy로 EC2 Auto Scaling Group 배포(java)
CodeDeploy 클라우드 기반 배포 자동화를 위한 CD(Continuous Deploy) 도구 AWS EC2, ECS, Lambda 및 온프레미스 서버에도 배포 가능 S3, CodeCommit, CodePipeline, Git, ELB, Auto-Scaling 등과 통합 CodeDeploy 주요 구성 요소 AppSpec 파일: 배포할 어플리케이션에 대한 정보를 설정(yml or json) 배포 구성: CodeDeploy에서 사용하는 배포규칙,배포성공/실패 조건 세트 - EC2/온프레미스 인스턴스의 최소개수지정, Lambda함수 버전으로 특정 트래픽 라우팅 방식(Canary, Linear, All-at-Once) 등 배포그룹: 개별 인스턴스들의 세트, 특정 태그가 지정된 인스턴스 or ASG에 포함된 ..
2022. 2. 27.
Java List removeIf(), 안전한 List 루프 Item Remove
java List객체에서 조건에 해당하는 아이템을 list에서 제거할 때 일반적으로 생각할 수 있는게 List를 루프 돌면서 해당 아이템에 대해 remove() 처리를 하는 것이다. 그러나 다음 코드와 같이 실행했을 때 아래와 같은 에러 등이 발생한다. 각 아이템을 List에서 제거하면서 List 내부조정에 따른 아이템의 인덱스 등이 달라지기 때문이다 public static void main(String[] args){ ArrayList numbers = new ArrayList( Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)); for (Integer num: numbers){ if(num % 2 ==0){ numbers.remove(num); } } } java 8..
2022. 2. 15.