오늘의 코딩순서
1. 도커 설치
2. 오라클 이미지 설치 및 연결
3. 리눅스 설치 + 폴더 만들기
오늘의 코딩 포인트
1. 도커 설치
1. 도커 사이트에서 다운받고 설치하기
https://docs.docker.com/desktop/install/windows-install/
2. 바탕화면에 깔린 도커 열고 세팅 완료하기
3. 이메일로 계정 가입
2. 오라클 이미지 설치 및 연결
1. 상단의 검색창에서 oracle11g 검색해서 Pull 버튼 눌러서 다운
2. Pull이 완료되면 Run을 눌러서 이름과 포트번호 0으로 설정
3. 컨테이너에 생성된 이미지와 포트번호 확인 (여기서는 32768)
4. CMD창 켜서 명령어 수행
https://stricky.tistory.com/396
1) 도커 컨테이너에 접속하기
docker exec -it 컨테이너 이름 bash
2) 8080 웹 port와 오라클 port로 설정한 1521 포트가 잘 열려 있는지 확인
netstat -nlpt
3) 오라클 접속을 위해서 os 계정을 oracle로 변경
su oracle
4) ORACLE_HOME 디렉토리가 잘 설정이 되어 있는지, 확인도 할겸 ORACLE_HOME 디렉토리로 이동
cd $ORACLE_HOME
5) sqlplus를 이용해서 설치한 오라클 서버에 접속하기
bin/sqlplus / as sysdba
6) 오라클 database가 잘 열려있는지 확인하기 위해 SQL 명령어 입력하기
SELECT status FROM v$instance;
7) 오라클에 사용자 계정 추가하기
create user scott identified by "tiger";
8) 오라클 DB 계정에 dba 권한을 부여하기
GRANT DBA to scott;
5. 오라클에서 새 접속 설정한 후 권한 주기
CREATE user scott IDENTIFIED BY tiger;
GRANT DBA to scott
6. dScott 접속해서 아래 SQL문 실행하여 테이블 만들기
7. obootMybatis 폴더에서 application.yml파일 수정한 뒤 실행하고 접속하여 확인
server:
port: 8387
# Oracle Connect
spring:
#File Size
servlet:
multipart:
max-file-size: 10MB
max-request-size: 10MB
datasource:
driver-class-name: oracle.jdbc.OracleDriver
url: jdbc:oracle:thin:@localhost:32768/xe
username: scott
password: tiger
#JPA Setting
jpa:
show-sql: true
hibernate:
ddl-auto: none
# View Resolver
mvc:
view:
prefix: /WEB-INF/views/
suffix: .jsp
# gmail Transfer
mail:
host: smtp.gmail.com
port: 587
username: rollout147@gmail.com
password: bbwt lmdi vhew burk
properties:
mail:
smtp:
auth: true
starttls.enable: true
# Mybatis
mybatis:
config-location: classpath:configuration.xml
mapper-locations: classpath:mappers/*.xml
3. 리눅스 설치 + 폴더 만들기
1. linux 검색해서 ubuntu로 설치(pull)하기
2. 이름 설정하고 설치된거 확인하기
3. 혹은 cmd 창에서 설치하기
docker create -it --name ubuntu_ktg ubuntu
4. cmd 창 열고 명령어 입력하여 도커 설치와 정보 확인
docker ps -a
5. CMD 창에 뜬 CONTAINER ID (여기서는 4b47e1fc1e4b) 입력하여 RUN 하기
docker start 4b47e1fc1e4b
6. docker attach와 함께 CONTAINER ID (4b47e1fc1e4b) 입력
docker attach 4b47e1fc1e4b
질문목록
수업교재
1. MSA
1. Cloud Native Architecture 개념
- 확장성
- System 수평적 확장 유연, 부하 분산, 가용성
- Scale up: 하나의 Server 사양 Upgrade
- Scale out: 같은 혹은 비슷한 사양의 Server 여러 대 배치
- 탄력적
- Service 생성 => 통합 => 배포 Business 변화 대응시간 단축
- Service 분할, 추가, 삭제 자동 감지
- Fault Isolation: 특정 Service, 다른 Service 영향 없음
2. Cloud Native Architecture 특징
- CI / CD: Source 관리 빌드 도구
- Continuous Integration: 지속적 통합
- Continuous Develivery: 지속적 배포
- DEVOPS⭐: 품질 보증팀과 보안팀 또한 애플리케이션 수명 주기에 걸쳐 개발 및 운영과 좀 더 긴밀하게 통합 애플리케이션과 서비스를 빠른 속도로 제공할 수 있도록 조직의 역량을 향상시키는 문화 철학, 방식 및 도구의 조합
- MSA: 마이크로 서비스를 사용하여 탄력성을 높이고 자동 스케일링을 제공
- Container 단위 관리: 구동되는 애플리케이션은 독립적인 배포 단위인 동시에 독립적인 자원관리 단위 코드와 컴포넌트 재사용 가능
2. 도커
1. 도커의 개념
- 도커는 컨테이너 기반의 오픈소스 가상화 플랫폼
- 컨테이너: 격리된 환경에서 작동하는 프로세스
- 컨테이너(Container) 이동을 주도하는 회사, 하이브리드 클라우드의 모든 애플리케이션을 처리할 수 있는 유일한 컨테이너 플랫폼 제공 업체
2. 특징
- 특징
- 빠르고 가벼운 가상화 솔루션(도커가 설치되어 있다면 어디서든 컨테이너 실행 )
- 특정 회사나 서비스에 종속적이지 않음 (컨테이너라는 표준으로 서버를 배포하므로 모든 서비스들의 배포과정 동일)
- 애플리케이션은 이동성이 뛰어나며 어디서나 실행
- 이미지에서 컨테이너를 생성하기 때문에 반드시 이미지를 만드는 과정이 필요
- 도커 이미지
- 이미지에서 컨테이너를 생성하기 때문에 반드시 이미지를 만드는 과정 필요
- Dockerfile을 이용하여 이미지를 만들고 처음부터 재현 가능
- 빌드 서버에서 이미지를 만들면 해당 이미지를 이미지 저장소에 저장하고 운영서버에서 이미지를 불러옴
- 도커 설정관리
- 설정은 보통 환경변수로 제어
- MYSQL_PASS=password와 같이 컨테이너를 띄울때 환경변수를 같이 지정
- 하나의 이미지가 환경변수에 따라 동적으로 설정파일을 생성하도록 만들어져야함
- 도커 자원관리
- 컨테이너는 삭제 후 새로 만들면 모든 데이터가 초기화
- UpLoad 파일을 외부 스토리지와 Link하여 사용하거나 S3같은 별도의 저장소가 필요
- 세션이나 캐시를 memcached나 redis와 같은 외부로 분리
- Docker 적용효과
- 클라우드 이미지보다 관리하기 쉬움
- 다른 프로세스와 격리되어 가상머신처럼 사용하지만 성능저하 (거의) 없음
- 복잡한 기술(namespace, cgroups, network, ...)을 몰라도 사용할 수 있음
- 이미지 빌드 기록이 남음 - 코드와 설정으로 관리 > 재현 및 수정 가능
- 오픈소스 특정 회사 기술에 종속적이지 않음
3. 컨테이너 활용
- scheduling
- 컨테이너를 적당한 서버에 배포해 주는 작업
- 여러 대의 서버 중 가장 할일 없는 서버에 배포하거나 그냥 차례대로 배포 또는 아예 랜덤하게 배포
- 컨테이너 개수를 여러 개로 늘리면 적당히 나눠서 배포하고 서버가 죽으면 실행 중 이던 컨테이너를 다른 서버에 띄워줌
- Clustering
- 여러 개의 서버를 하나의 서버처럼 사용
- 작게는 몇 개 안 되는 서버부터 많게는 수천 대의 서버를 하나의 클러스터로 여기저기 흩어져 있는 컨테이너도 가상 네트워크를 이용하여 마치 같은 서버에 있는것처럼 쉽게 통신
- Service Discovery
- 서비스를 찾아주는 기능
- 클러스터 환경에서 컨테이너는 어느 서버에 생성될지 알 수 없고 다른 서버로 이동 할 수도 있음
- 따라서 컨테이너와 통신을 하기 위해서 어느 서버에서 실행 중인지 알아야 하고 컨테이너가 생성되고 중지될 때 어딘가에 IP와 Port같은 정보를 업데이트해줘야 함
- 키-벨류 스토리지에 정보를 저장할 수도 있고 내부 DNS 서버를 이용
오늘의 숙제
'Cloud&etc' 카테고리의 다른 글
2024_09_09_월_클라우드 시험(클라우드 플랫폼 기반 서비스 운영 실습) (0) | 2024.09.09 |
---|---|
2024_09_06_금 (0) | 2024.09.06 |
2024_08_23_금 (0) | 2024.08.23 |