반응형
AMI(Amazon Machine Image): 아마존 머신 이미지는 인스턴스를 시작하는 데 필요한 정보를 제공한다.
인스턴스를 시작할 때 AMI를 지정 해야하고, 동일한 구성의 인스턴스가 여러 개 필요할 때는 한 AMI 에서 여러 인스턴스를 시작할 수도 있다.
AMI 의 구성요소
- 1개 이상의 AmazonEBS 스냅샷 또는, 인스턴스 스토어 기반 AMI의 경우. 인스턴스의 루트 볼륨에 대한 템플릿
- AMI를 사용하여 인스턴스를 시작할 수 있는 AWS 계정을 제어하는 시작 권한
- 시작될 때 인스턴스에 연결할 볼륨을 지정하는 블록 디바이스 매핑
* AmazonEBS: EC2에서 사용하도록 설계된 사용하기 쉬운 고성능 블록 스토리지 서비스.
* 블록 스토리지 : 데이터를 소프트웨어 애플리케이션과 가상머신이 빠르고 효율적으로 액세스할 수 있는 블록 형태로 저장합니다 (가상의 하드디스크)
실습 (EC2 인스턴스 두개(tomcat, db)를 연동 시켜 웹프로젝트를 실행 시키고, 웹서버 구성 인스턴스를 AMI로 만들기)
1. EC2 2개 생성 (프리티어) - Centos7 기반
2. Putty로 원격 접속
marketplace에 있는 centos를 사용하여 생성 했을 경우, 초기 로그인은 centos로 해야한다.
여기 까지는 두개의 인스턴스 모두 공통적으로 진행해야 할 과정이고 이제 부턴 tomcat 인스턴스, mysql 인스턴스 둘로 나눠서 진행하도록 하겠다.
1) Tomcat 인스턴스
- Tomcat 설치 wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.46/bin/apache-tomcat-9.0.46.tar.gz
- 압축 해제(tar xvfz) 후 apache-tomcat-9.0.46 > tomcat 으로 이름 변경 후 /usr/local/로 이동.
- Java 설치 Spring 웹 프로젝트를 java 11.0.11 버전으로 작성 하였기 때문에 java11버전 다운로드
- yum -y install java-11-openjdk java-11-openjdk-devel
- java 환경변수 등록
- alternatives --config java (11버전 선택)
- cat > /etc/profile.d/java11.sh << EOF
- export PATH=\$PATH:\$JAVA_HOME/bin
- export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.11.0.9-1.el7_9.x86_64
- EOF
- DB와 연결해야 하기 때문에 mysql-connector 다운로드, mysql client server 도 다운로드(원격 접속을 위한)
- yum install mysql
- wget https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-java-8.0.24.tar.gz
- 압축 해제 후 mysql-connector.jar 파일 /usr/local/tomcat/lib/ 디렉토리로 이동. (mv)
- war 파일 옮기기. (winscp를 사용)
- Permisiion denied가 뜰 경우 일시적으로 권한 777 허용.
- war파일 /usr/local/tomcat/webapps/ 로 옮긴 후 tomcat 서버 실행(usr/local/tomcat/bin/catalina.sh run하면 자동으로 war 압축해제가 진행 하면서 실행 로그를 보여줌.
2) DB 인스턴스
- mysql 설치
- wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
- sudo rpm -ivh mysql57-community-release-el7-11.noarch.rpm
- yum install mysql-community-server mysql mysql-libs mysql-devel mysql-server
- cat /var/log/mysqld.log | grep 'password' // 초기 비밀번호 확인 (mysqld 실행 후)
- mysql_secure_installation 으로 비밀번호 설정.
- 웹 프로젝트와 연동되는 DB 생성 , 원격접속이 가능한 유저 생성, db에 모든권한 원격 접속 유저에 주기.
- CREATE DATABASE [DB명]; CREATE USER '[아이디]'@'%' IDENTIFIED BY '[PASSWORD]';
- GRANT ALL PRIVILEGES ON *.* TO '[아이디]'@'%' identified by '[PASSWORD]';
- FLUSH PRIVILEGES; // 설정 적용
이렇게 설정 해 놓은 인스턴스를 AMI로 나만의 이미지로 만든 다음 새로운 인스턴스를 생성할 때 저 이미지 파일을 쓰려고 한다.
AMI 생성
이미지 생성 클릭 하고 이름을 정해준다면 AMI에 등록이 완료 된다.
반응형
'AWS' 카테고리의 다른 글
AWS - 서버리스 아키텍처(Lambda 활용) (0) | 2021.06.11 |
---|---|
AWS - S3 (EC2 마운트) (0) | 2021.06.11 |
AWS - EBS 활용하기 (수정, 마운트) (0) | 2021.06.11 |
RDS 활용 DB 이중화 (마스터 = Onpremiss 슬레이브 = AWS) (0) | 2021.06.10 |
AWS 기본 개념 (리전, 가용영역, VPC) (0) | 2021.06.09 |