Weblogic 사용법 - Weblogic sayongbeob

  • 접근성 정책을 보려면 클릭하세요
  • 콘텐츠로 건너뛰기

  1. Oracle 대한민국
  2. 애플리케이션 개발
  3. Java

Oracle WebLogic Server

Oracle WebLogic Server는 온프레미스 및 클라우드에서 Java와 같은 엔터프라이즈 애플리케이션을 개발, 배포 및 실행하기 위한 통합되고 확장 가능한 플랫폼입니다. Weblogic 서버는 Java Oracle Coherence(EE) 및 Jakarta EE의 강력하고 성숙하며 확장 가능한 구현을 제공합니다.

Weblogic 사용법 - Weblogic sayongbeob

Kubernetes의 WebLogic 서버

Oracle WebLogic Server는 Kubernetes에서 완벽하게 지원되며 사용자가 포괄적인 Java 서비스로 최신 컨테이너 앱을 마이그레이션하고 효율적으로 빌드할 수 있도록 합니다. Kubernetes, 온프레미스 또는 클라우드에서 실행을 단순화하는 완전한 오픈 소스 도구 세트인 WebLogic Kubernetes ToolKit을 확인하세요.

클라우드에서 WebLogic 애플리케이션 실행

신속한 프로비저닝과 인프라 및 가격 선택을 통해 오라클 클라우드 인프라스트럭쳐(OCI)용 Oracle WebLogic Server는 클라우드에서 Java EE 애플리케이션을 실행할 수 있는 완전한 지원을 제공합니다.

Oracle WebLogic Server로 빌드하는 이유는 무엇입니까?

엔터프라이즈 애플리케이션용 Oracle의 클라우드 네이티브 Java

세계 최고의 Java EE 및 Jakarta EE 애플리케이션 서버

단일 통합 애플리케이션 서버에서 탁월한 성능, 확장성 및 관리 용이성을 확보하십시오. Weblogic 서버는 온프레미스 및 클라우드 애플리케이션을 위한 Java EE 및 Jakarta EE 플랫폼의 초석입니다.

특징
  • 표준 기반 애플리케이션 개발을 위한 완전한 Java EE 및 Jakarta EE 지원
  • 운영 자동화를 위한 풍부한 관리 도구 및 API
  • 고가용성을 위해 실패한 노드의 자동 확장 및 자동 재시작
  • Kubernetes 배포 및 관리 도구
  • 더 높은 성능과 가용성을 위해 Oracle Real Application Clusters(RAC)와의 연결을 위한 Active GridLink
  • 고성능 JMS 메시징
  • 오라클 데이터베이스 및 미들웨어와 통합

온프레미스 및 클라우드 전반에서 선도적인 분산 캐싱 솔루션

Oracle Coherence는 애플리케이션을 위한 고가용성, 확장성 및 낮은 대기 시간, 처리량 및 성능을 제공하는 선도적인 Java 기반 분산 캐시 및 인 메모리 데이터 그리드입니다.

특징
  • 엔터프라이즈 애플리케이션을 위한 확장 가능한 성능
  • 키-값 개체 및 문서 저장소
  • 디스크 지속성이 있는 클러스터형 캐싱
  • 내결함성, 자동 샤딩
  • REST, Java, .NET 및 C++ 인터페이스
  • 고속 쿼리 및 이벤트 처리 트랜잭션
  • 내부 분산 처리
  • 실시간 데이터베이스 새로 고침을 위한 핫 캐시
  • 다중 사이트 데이터 연합
  • 다중 언어 프로그래밍에 대한 GraalVM 지원
  • Kubernetes에 대한 도구 지원
  • 데이터 일관성 보장

오라클 클라우드에서 Oracle WebLogic Server의 빠른 프로비저닝

신속한 구현과 유연한 가격 옵션을 제공하는 Oracle Cloud Infrastructure용 Oracle WebLogic Server는 클라우드에서 엔터프라이즈 Java 어플리케이션을 실행하는 데 권장되는 방법입니다.

특징
  • 빠른 프로비저닝
  • 유연한 구독 기반 가격
  • Oracle Autonomous Database를 통한 고가용성 및 손쉬운 연결
  • 자동화된 배포 및 전체 API 액세스
  • 지원되는 버전 및 에디션 선택
  • 도구 및 인프라 지원을 통한 단순화된 마이그레이션

고객 성공 사례 모두 보기

Weblogic 사용법 - Weblogic sayongbeob

E-Business Suite를 Oracle Cloud Infrastructure로 이동하고 성능을 10배 향상

Oracle WebLogic Server의 사용 사례

  • Java EE 애플리케이션 현대화

    Weblogic 서버를 사용하면 Docker 프로비저닝 지원을 제공하는 도구를 배포하고 운영자는 Kubernetes 관리 기능을 제공합니다.

    아키텍처 보기

  • 클라우드에서 Java 애플리케이션 실행

    저렴한 비용으로 더 나은 성능을 위해 Oracle Cloud Infrastructure에 Oracle WebLogic Server를 사용하여 기존 온프레미스 Java 애플리케이션을 클라우드로 이동합니다.

  • Java 마이크로서비스 빌드

    Helidon은 표준 기반 MicroProfile API를 기능 프로그래밍을 사용하여 최신 클라우드 네이티브 Java 애플리케이션에 활용합니다.

2020년 3월 30일

Oracle WebLogic Server 14.1.1 발표

Will Lyons, 제품 관리 수석 이사

Oracle WebLogic Server 14.1.1은 Java Platform, Enterprise Edition(EE) 8 및 Java SE 8 및 11에 대한 지원을 추가하는 새로운 주요 버전입니다. 컨테이너 및 Kubernetes에서 Oracle WebLogic Server를 실행하기 위한 지원 및 도구와 오라클 클라우드에서 인증을 포함하여 온프레미스 및 클라우드에서 지원됩니다.

전체 게시물 읽기

지금 Java 애플리케이션 빌드 시작

Oracle Cloud Free Tier 체험하기

Oracle Cloud Infrastructure용 Oracle WebLogic Server에 30일 동안 무료로 액세스할 수 있습니다.

클라우드 마이그레이션 데모 보기

온프레미스 앱이 Oracle Autonomous Database에서 실행되는 오라클 클라우드로 얼마나 쉽게 이동하는지 확인하세요.

헬프 센터 방문하기

여기에서 시작하여 Weblogic 서버에서 샘플 Java 앱을 프로비저닝할 수 있습니다.

Helidon에 대한 도움 받기

Helidon 앱을 만들기 위한 리소스와 가이드를 5분 이내에 찾아보세요.

알아보기

  • 클라우드 컴퓨팅이란?
  • CRM이란?
  • Docker란?
  • Kubernetes란?
  • Python이란?
  • SaaS란?

새로운 소식

  • 뉴스
  • Oracle CloudWorld
  • Oracle과 Premier League
  • Oracle Red Bull Racing
  • Oracle 지속가능성
  • 직원 경험 플랫폼

문의하기

  • 영업 팀: 080-2194-114
  • 어떻게 도와드릴까요?
  • 이메일로 구독하기
  • 이벤트
  • 블로그

    • © 2022 Oracle
    • 이용 약관 및 개인 정보 처리 방침
    • 광고 선택
    • 채용
    • Facebook
    • LinkedIn
    • YouTube

    Oracle WebLogic Server 12c 버전 부터 Kubernetes Cluster에 WebLogic Domain을 쉽게 올릴 수 있도록 하는 WebLogic Operator를 지원하고 있다.

    이 문서에서는 Managed Kubernetes Cloud 서비스인 Oracle Kubernetes Engine(OKE)WebLogic Operator를 사용하여 웹로직 도메인을 Provision하는 방법에 대해서 다룰 것이다.

    Architecture

    Weblogic 사용법 - Weblogic sayongbeob

    Prerequistes

    • Oracle Kubernetes Engine(OKE) : 여기에서는 OKE를 Provision하는 방법에 대해서 다루지 않을 것이다. OKE 프로비전 과정은 다음 문서를 참고한다.

      • Creating a Cluster with Oracle Cloud Infrastructure Container Engine for Kubernetes

    OKE 접속 확인하기

    위 과정을 따라 OKE를 생성하고 Kubeconfig까지 설정하였다고 하면 kubectl을 통해 worker node의 상태를 확인해 본다.

    Weblogic 사용법 - Weblogic sayongbeob

    OKE를 통해 Kubernetes Cluster를 기본 설정으로 구성하면 Private Subnet 안에 Worker Node가 구성되므로 Node IP가 Private IP로 할당된다.

    WebLogic Operator는 helm을 통해 설치 된다. 먼저 WebLogic Operator를 위한 Repository를 추가해 준다.

    helm repo add weblogic-operator https://oracle.github.io/weblogic-kubernetes-operator/charts
    

    잘 추가되었는지 확인해 본다.

    Weblogic 사용법 - Weblogic sayongbeob

    helm을 통해 weblogic-operator를 설치한다 default 설정으로 설치하면 defaut namespace에 설치된다.

    helm install weblogic-operator/weblogic-operator --name weblogic-operator --wait
    

    Weblogic 사용법 - Weblogic sayongbeob

    WebLogic Image 준비

    WebLogic Domain을 생성하기 위해서는 WebLogic Server Image가 필요하다. Dockerhub에서 Oracle Certified WebLogic Server Image를 다운 받을 수 있다. 이 이미지를 사용하려면 License Agreement를 Accept 해야 한다. 이 과정을 거치면 이미지를 다운 받는 방법이 보여진다.

    • Oracle WebLogic Server Docker Image

    > docker login 
    
    > docker pull store/oracle/weblogic:12.2.1.3
    

    Weblogic 사용법 - Weblogic sayongbeob

    WebLogic Domain 준비

    WebLogic Operator를 사용하여 원하는 형태의 WebLogic Domain을 만들어 프로비전 하려면 관련 Kubernetes Configuration File(YAML)이 필요하다.

    WebLogic Operator 사이트에서 몇가지 샘플을 제공하고 있다. 다음을 통해 소스를 받아온다.

    git clone https://github.com/oracle/weblogic-kubernetes-operator.git
    

    weblogic-kubernetes-operator/kubernetes/samples/scripts에 필요한 Script들이 존재하고 이 스크립트를 통해서 Kubernates configuration 파일을 생성시킬 것이다.

    먼저 도메인 구성에 필요한 credential을 생성한다. 제공된 create-weblogic-credentials.sh을 통해 생성하면 된다. 사용법은 다음과 같다.

    ./create-weblogic-credentials.sh -h
    usage: ./create-weblogic-credentials.sh -u username -p password [-d domainUID] [-n namespace] [-s secretName] [-h]
      -u username, must be specified.
      -p password, must be specified.
      -d domainUID, optional. The default value is domain1. If specified, the secret will be labeled with the domainUID unless the given value is an empty string.
    

    > cd scripts/create-weblogic-domain-credentials
    > ./create-weblogic-credentials.sh \
       -u weblogic -p welcome1 \
       -d domain1 -n default  \
       -s domain1-weblogic-credentials
    

    다음과 같이 생성 된다.

    Weblogic 사용법 - Weblogic sayongbeob

    kubectl로 생성된 secret 정보를 확인해 볼 수 있다.

    Weblogic 사용법 - Weblogic sayongbeob

    이제 Domain 생성에 필요한 구성 파일들을 생성할 단계가 되었다.

    여러가지 샘플들 중에서 구성이 가장 간단한 Domain in a Docker image Model를 먼저 사용해 볼 것이다. 해당 디렉토리로 이동하여 create-domain.sh를 수행한다. 사용법은 다음과 같다.

    > cd weblogic-kubernetes-operator/kubernetes/samples/scripts/create-weblogic-domain/domain-home-in-image
    > ./create-domain.sh \
      -u username \
      -p password \
      -i create-domain-inputs.yaml \
      -o /path/to/output-directory
    
    

    Weblogic 사용법 - Weblogic sayongbeob

    진행 사항이 계속 보이고 마지막에 생성된 산출물들의 위치가 표시된다.

    Weblogic 사용법 - Weblogic sayongbeob

    해당 디렉토리로 이동하여 생성된 산출물의 내용을 한번 확인해 보자

    두개의 파일과 Docker Image가 생성된 것을 볼 수 있다.

    Weblogic 사용법 - Weblogic sayongbeob

    domain.yaml 내용

    # Copyright 2017, 2019, Oracle Corporation and/or its affiliates. All rights reserved.
    # Licensed under the Universal Permissive License v 1.0 as shown at http://oss.oracle.com/licenses/upl.
    #
    # This is an example of how to define a Domain resource.
    #
    apiVersion: "weblogic.oracle/v3"
    kind: Domain
    metadata:
      name: domain1
      namespace: default
      labels:
        weblogic.resourceVersion: domain-v2
        weblogic.domainUID: domain1
    spec:
      # The WebLogic Domain Home
      domainHome: /u01/oracle/user_projects/domains/domain1
      # If the domain home is in the image
      domainHomeInImage: true
      # The WebLogic Server Docker image that the Operator uses to start the domain
      image: "domain-home-in-image:12.2.1.3"
      # imagePullPolicy defaults to "Always" if image version is :latest
      imagePullPolicy: "IfNotPresent"
      # Identify which Secret contains the credentials for pulling an image
      #imagePullSecrets:
      #- name: 
      # Identify which Secret contains the WebLogic Admin credentials (note that there is an example of
      # how to create that Secret at the end of this file)
      webLogicCredentialsSecret: 
        name: domain1-weblogic-credentials
      # Whether to include the server out file into the pod's stdout, default is true
      includeServerOutInPodLog: true
      # Whether to enable log home
      # logHomeEnabled: false
      # The in-pod location for domain log, server logs, server out, and Node Manager log files
      # logHome: /shared/logs/domain1
      # serverStartPolicy legal values are "NEVER", "IF_NEEDED", or "ADMIN_ONLY"
      # This determines which WebLogic Servers the Operator will start up when it discovers this Domain
      # - "NEVER" will not start any server in the domain
      # - "ADMIN_ONLY" will start up only the administration server (no managed servers will be started)
      # - "IF_NEEDED" will start all non-clustered servers, including the administration server and clustered servers up to the replica count
      serverStartPolicy: "IF_NEEDED"
      serverPod:
        # an (optional) list of environment variable to be set on the servers
        env:
        - name: JAVA_OPTIONS
          value: "-Dweblogic.StdoutDebugEnabled=false"
        - name: USER_MEM_ARGS
          value: "-Djava.security.egd=file:/dev/./urandom -Xms64m -Xmx256m "
        # volumes:
        # - name: weblogic-domain-storage-volume
        #   persistentVolumeClaim:
        #     claimName: domain1-weblogic-sample-pvc
        # volumeMounts:
        # - mountPath: /shared
        #   name: weblogic-domain-storage-volume
      # adminServer is used to configure the desired behavior for starting the administration server.
      adminServer:
        # serverStartState legal values are "RUNNING" or "ADMIN"
        # "RUNNING" means the listed server will be started up to "RUNNING" mode
        # "ADMIN" means the listed server will be start up to "ADMIN" mode
        serverStartState: "RUNNING"
        # adminService:
        #   channels:
        # The Admin Server's NodePort
        #    - channelName: default
        #      nodePort: 30701
        # Uncomment to export the T3Channel as a service
        #    - channelName: T3Channel
      # clusters is used to configure the desired behavior for starting member servers of a cluster.  
      # If you use this entry, then the rules will be applied to ALL servers that are members of the named clusters.
      clusters:
      - clusterName: cluster-1
        serverStartState: "RUNNING"
        replicas: 2
      # The number of managed servers to start for unlisted clusters
      # replicas: 1
    

    위 파일에서 image 부분을 수정해 줄 것이다. 현재 Domain Image는 Local Repository에 존재하는데 Cloud의 OKE에서는 내 Local Repository에 접근할 수 없기 때문에, 이 이미지를 Docker Hub에 올려준 후 docker hub의 이미지를 참조하도록 할 것이다.

    먼저 domain.yaml 파일을 수정해 준다.

    # Before
      image: "domain-home-in-image:12.2.1.3"
    
    # After
    # image: "[dockerhub repository name]/domain-home-in-image:12.2.1.3"
      image: "mnlee30/domain-home-in-image:12.2.1.3"
    
    

    Domain Image를 Dockerhub에 push 하기 위해 tag를 변경해 준다.

    docker tag domain-home-in-image:12.2.1.3 mnlee30/domain-home-in-image:12.2.1.3
    

    Weblogic 사용법 - Weblogic sayongbeob

    image를 docker hub에 push 한다

    docker push mnlee30/domain-home-in-image:12.2.1.3
    

    Weblogic 사용법 - Weblogic sayongbeob

    이제 domain.yaml을 배포할 준비가 모두 완료되었다. 다음을 수행한다.

    kubectl apply -f domain.yaml
    

    kubectl 명령어를 통해 domain이 잘 생성되고 있음을 확인 할 수 있다.

    Weblogic 사용법 - Weblogic sayongbeob

    Admin Server 1개와 Managed Server 2개로 구성된 도메인이 생성되었음을 확인할 수 있다.

    Weblogic 사용법 - Weblogic sayongbeob

    service 정보를 확인해 보자. 앞서서 OKE의 Worker Node가 Private Subnet에 생성되었다고 설명하였다. 따라서 WebLogic Instance들을 Node IP로는 접근할 수가 없다.

    Weblogic 사용법 - Weblogic sayongbeob

    이 서비스들을 Load Balancer를 통해 서비스 될 수 있도록 LoadBalancer Type을 사용하는 서비스를 추가해 줄 것이다. Admin Server(domain1-admin-server)의 콘솔에 접근하기 위한 서비스와 Cluster(domain1-cluster-cluster-1)에 접근하는 서비스가 필요하다.

    Admin Server용 서비스

    service-admin-lb.yaml 파일을 생성해 준다

    apiVersion: v1
    kind: Service
    metadata:
      name: domain1-admin-lb-ext
      namespace: default
      labels:
        app: domain1-admin
      annotations:
        service.beta.kubernetes.io/oci-load-balancer-shape: "100Mbps"
        service.beta.kubernetes.io/oci-load-balancer-backend-protocol: "HTTP"
    spec:
      type: LoadBalancer
      ports:
      - name: http
        port: 6001
        targetPort: 7001
      selector:
        weblogic.serverName: admin-server
        weblogic.domainUID: domain1
    

    생성된 파일을 적용한다.

    kubectl apply -f service-admin-lb.yaml
    

    서비스가 생성되고 EXTERNAL-IP가 할당된 것을 볼 수 있다.

    Weblogic 사용법 - Weblogic sayongbeob

    이 IP를 이용하여 WebLogic Console에 접근해 본다.

    Weblogic 사용법 - Weblogic sayongbeob

    다음과 같이 WebLogic Managed Sever들이 Running 중 임을 볼 수 있다.

    Weblogic 사용법 - Weblogic sayongbeob

    이 도메인에는 어떤 애플리케이션도 배포되어 있지 않기 때문에 Sample Application을 WebLogic Console을 통해 배포 한다.

    배포 과정은 여기서는 생략 한다. 배포된 후의 모습은 다음과 같다.

    Weblogic 사용법 - Weblogic sayongbeob

    Cluster용 서비스

    위에서 배포한 애플리케이션을 테스트 해보기 위해서는 weblogic cluster 서비스에 접근해야 한다. 이를 위해 LoadBalancer Type의 서비스를 하나 더 추가해 준다.

    service-cluster-lb.yaml 파일을 생성해 준다

    apiVersion: v1
    kind: Service
    metadata:
      name: domain1-cluster1-lb-ext
      namespace: default
      labels:
        app: domain1-cluster1
      annotations:
        service.beta.kubernetes.io/oci-load-balancer-shape: "100Mbps"
        service.beta.kubernetes.io/oci-load-balancer-backend-protocol: "HTTP"
    spec:
      type: LoadBalancer
      ports:
      - name: http
        port: 80
        targetPort: 8001
      selector:
        weblogic.clusterName: cluster-1
        weblogic.domainUID: domain1
    

    생성된 파일을 적용한다.

    kubectl apply -f service-cluster-lb.yaml
    

    Weblogic 사용법 - Weblogic sayongbeob

    서비스가 생성되고 EXTERNAL-IP가 할당된 것을 볼 수 있다.

    위 IP를 통해서 애플리케이션에 접속해 본다. 샘플 애플리케이션을 통해 WebLogic Managed Server 명과 구동되고 있는 Pod의 Hostname을 볼수 있다.

    제공된 Session Insert / Update 기능을 통해 세션도 추가해 본다.

    Weblogic 사용법 - Weblogic sayongbeob

    브라우저를 새로 열어 다른 Managed Server에 연결되게 해본다. 라운드 로빈에 의해서 다른 서버에서 요청이 처리되는 것을 볼 수 있다.

    Weblogic 사용법 - Weblogic sayongbeob

    Saling Up / Down은 다음 글에서 다룰 예정이다.

    참고 자료

    • Oracle WebLogic Server Kubernetes Operator