Oracle Java Cloud Serviceインスタンスを作ってみた（WebLogic Server 12cR2 Enterprise Edition）


# 概要
Oracle Cloudのトライアル環境を申し込めば、すぐにOracle Cloud上の各種クラウド・サービスが利用できるようになります。

- [Oracle Cloudのトライアル環境を申し込んでみた](http://qiita.com/shinyay/items/c2739190a60cb5126a9d)

その中から、**Java Cloud Service**のインスタンスを作成してみます。
今回は、WebLogic Server 12c Relase2 のEnterprise Edition環境を作成します。

### 前提
Java Cloud Serviceはデータ・リポジトリとしてDatabase Cloud Serviceを使用します。
そのため、事前にDatabase Cloud Serviceインスタンスの作製が必要になります。

以下の手順を参考にDatabase Cloud Serviceを作成してください。

- [Oracle CloudでDatabase Cloud Serviceインスタンスを作ってみた](http://qiita.com/shinyay/items/2e7de9c1c3be3428818b)

## Java Cloud Service 概要
![JCS-home](https://bytebucket.org/shinyay/images-for-blog/raw/df6a2c0fe66c7a25281376aa6000745aa32558ff/qiita/160823_jcs-instance-creation/jcs.png)

Java Cloud Serviceは、Java EE アプリケーションサーバ環境を提供するクラウド・サービスです。
提供するアプリケーションサーバは、**Oracle WebLogic Server**で、構成済みの環境を提供するOracle CloudのPlatform as a Service (PaaS)です。

Oracle WebLogic ServerをPaaSとしてで使う事のメリットとして次のような事があります。

- **迅速な環境構築**
    - WebLogic ServerやCoherenceの実行環境を簡単かつ短時間で構築可能です。
- **オープンスタンダード技術ベース**
    - 標準技術に基づいた技術で構築されているので、一般的な手順で簡単にJavaアプリケーションのデプロイや管理を行う事が可能です。
- **エンタープライズ品質**
    - エンタープライズ環境を支えてきたWebLogic Serverを提供するPaaS環境です。エンタープライズ・レベル、そしてクラウド・レベルの高可用性、セキュリティ、性能を提供します。
- **選択の自由**
    - WebLogic Serverのバージョンやエディション、また構成や運用ツールの有無など柔軟にクラウド環境の選択が可能です。

# Java Cloud Serviceのインスタンス作成手順
Java Cloud Service環境の利用手順を説明します。
流れは以下のようになります。

1. Oracle Cloudへログインしダッシュボード画面へアクセス
2. Java Cloud Serviceの作成メニューを選択
3. WebLogic Serverのタイプを選択
    - サービス・レベル
    - バージョン/エディション
4. WebLogic Serverの構成情報を入力
5. 作成開始
6. 作成完了

## 1. Oracle Cloudへログインしダッシュボード画面へアクセス
Oracle Cloudのトライアル環境の申込み方を説明した次の投稿の中でも説明していますが、Oracle Cloudのサインインページからログインが行えます。

- [以前の投稿内容：Oracle Cloudへログイン](http://qiita.com/shinyay/items/c2739190a60cb5126a9d#6-oracle-cloud%E3%81%B8%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3)
- [Oracle Cloudのサインインページ：<br>https://cloud.oracle.com/ja_JP/sign-in](https://cloud.oracle.com/ja_JP/sign-in)

ログインすると次のようなダッシュボード画面が表示されます。

![Dashboard](https://bytebucket.org/shinyay/images-for-blog/raw/df6a2c0fe66c7a25281376aa6000745aa32558ff/qiita/160823_jcs-instance-creation/myservices.us.oraclecloud.com_2016-08-15_13-05-23.png)

この画面がOracle Cloudの各種クラウド・サービスの操作や管理をするためのポータルになります。

## 2. Java Cloud Serviceの作成メニューを選択
ダッシュボード画面上の中央部にある「**インスタンスの作成**」プルダウンを押し、「**Java**」を選択します。

![Menu-JCS](https://bytebucket.org/shinyay/images-for-blog/raw/df6a2c0fe66c7a25281376aa6000745aa32558ff/qiita/160823_jcs-instance-creation/myservices.us.oraclecloud.com_2016-08-15_14-31-01.png)

このインスタンスの作製メニューから各サービスのインスタンス作成操作に入れます。
表示された画面上の「**サービスの作成**」を選択します。
![Create-Service](https://bytebucket.org/shinyay/images-for-blog/raw/df6a2c0fe66c7a25281376aa6000745aa32558ff/qiita/160823_jcs-instance-creation/jaas.oraclecloud.com_2016-08-15_14-31-44.png)

## 3. WebLogic Serverのタイプを選択 - サービス・レベル
まず、「サービス・レベル」を選択します。
![ServiceLevel](https://bytebucket.org/shinyay/images-for-blog/raw/df6a2c0fe66c7a25281376aa6000745aa32558ff/qiita/160823_jcs-instance-creation/jaas.oraclecloud.com_2016-08-15_14-35-18.png)

以下の「サービス・レベル」には選択肢があります。

- Oracle Java Cloud Service
- Oracle Java Cloud Service - Virtural Image

|-|Oracle Java Cloud Service|Oracle Java Cloud Service<br>Virtural Image|
|---|:---:|:---:|
|WebLogicインストール|インストール済み|インストール済み|
|WebLogicインスタンス構成|構成済み|構成済み|
|運用ツール<br>パッチ適用やバックアップ|**使用可能**|*使用不可*|

サービス・レベルの差異は、運用ツールの有無です。
よって次のように考えられます。

- Oracle Java Cloud Serviceは、PaaSタイプのクラウド・サービス
    - クラウド環境上でのサービス運用を想定
    - 構成した環境をパッチ適用したり、スケールしたり、またバックアップ・リカバリしたりなど構成変更が発生するような使用
- Oracle Java Cloud Service - Virtural Image
    - WebLogic Serverの機能を確認したい
    - Java アプリケーションの動作確認をしたい
    - バックアップは不要

Java Cloud Serviceのバックアップは、WebLogic Serverの構成とアプリケーション、Databaseも含めて取得管理ができるので、アプリケーションの動作確認のみが目的でも、運用ツールでバックアップがとれるほうが便利かもしれません。

なお、トライアル環境なので、請求頻度はいずれを選択しても問題ありません。

- 時間課金
- 月次課金

## 3. WebLogic Serverのタイプを選択 - バージョン/エディション
次にWebLogic Serverのバージョンを選択します。
![Version](https://bytebucket.org/shinyay/images-for-blog/raw/df6a2c0fe66c7a25281376aa6000745aa32558ff/qiita/160823_jcs-instance-creation/jaas.oraclecloud.com_2016-08-15_14-42-46.png)

選択できるバージョンは、以下の11g、12cR1、12cE2の3バージョンとなります。

|ソフトウェア・リリース|バージョン(as of 2016/08/23)|
|:---:|:---:|
|WebLogic Server 11g|10.3.6.0.160419|
|WebLogic Server 12c Release1|12.1.3.0.160419|
|WebLogic Server 12c Release2|12.2.1.0.160419|

- ※ 8/23時点で提供されるイメージは、PSU XXX.160419の2016年4月時点があたっているものになります。

![Edition](https://bytebucket.org/shinyay/images-for-blog/raw/df6a2c0fe66c7a25281376aa6000745aa32558ff/qiita/160823_jcs-instance-creation/jaas.oraclecloud.com_2016-08-15_14-44-20.png)

エディションは、以下の3種類からの選択です。

- Standard Edition
- Enterprise Edition
- Enterprise Edition with Coherence

各エディションについては、以下のドキュメントにまとまっています。

- [Oracle Java Cloud Serviceで使用可能なOracle WebLogic Serverのエディションについて](http://docs.oracle.com/cd/E60665_01/jcs_gs/JSCUG/GUID-35AC2310-F95C-46F7-AF22-C198C0DBF8A2.htm#JSCUG-GUID-5BEB5C7A-DAEE-40C6-BDE0-819E10D62848)

上記ドキュメントから要点を抜粋してみました。

|WebLogic Server エディション|説明|
|---|---|
|Standard Edition|- Oracle WebLogic Serverコア機能<br>- Oracle Traffic Director
|Enterprise Edition|- Standard Edition全機能<br>- クラスタ機能<br>- Flight Recorder|
|Enterprise Edition with Coherence|-Enterprise Editionの全機能<br>- Oracle Coherence Enterprise Editionデータ・グリッド|

## 4. WebLogic Serverの構成情報を入力
![ServiceDetail](https://bytebucket.org/shinyay/images-for-blog/raw/df6a2c0fe66c7a25281376aa6000745aa32558ff/qiita/160823_jcs-instance-creation/jaas.oraclecloud.com_2016-08-15_14-46-01.png)

以下の項目を入力します。

- サービス構成
- WebLogic
- データベース構成
- ロードバランサ
- バックアップおよびリカバリ構成

### サービス構成
Java Cloud Serviceの環境構成に関する情報を入力します。

#### サービス名
サービス・インスタンス名です。
利用しているIdentity Domain内で一意になるように名前をつけます。

#### クラスタ・サイズ
(Enterprise Edition / with Coherenceで選択可能)

WebLogic クラスタの初期サイズを設定します。
設定できるサイズは以下の３種類です。

- 1
- 2
- 4

1管理対象サーバ / 1VMという構成になります。

#### ドメイン・パーティション
(WebLogic Server 12c Relase2で選択可能)
(Enterprise Edition / with Coherenceで選択可能)

WebLogic 12c Relase2の新機能であるマルチテナントが提供する新しい構成要素です。
WebLogicドメインを論理的に分割して、仮想的なドメイン環境を提供する構成要素です。
オラクル掲示の資料の中から抜粋したスライドを参照ください。

- [Slideshare:WebLogic Server マルチテナントより抜粋]
![Multitenant](http://image.slidesharecdn.com/wlsmt-in-action-160805015621/95/oracle-weblogic-server-4-638.jpg?cb=1470362298)

設定可能なパーティション・サイズを設定します。
設定できるサイズは以下の３種類です。

- 0 (パーティションなし) 
- 1
- 2
- 4

#### シェイプ
サービス構成の中で設定する**シェイプ**という項目があります。
この**シェイプ**とは、クラウド環境のインスタンスに割り当てられるCPUの数とメモリ容量をを示すプロファイルです。

シェイプを選択すると対応するOCPU (Oracle Compute Units)が割り当てられます。

- OCPU
        - OCPUとは、ハイパースレッドを有効にしたIntel Xeonプロセッサの物理コアと同等のCPU性能を提供しています。

次のようなパターンがあります。

|シェイプ|OCPUの数|メモリー(GB)|
|:---:|:---:|:---:|
|OC3|1|7.5|
|OC4|2|15|
|OC5|4|30|
|OC6|8|60|
|OC7|16|120|
|OC1M|1|15|
|OC2M|2|30|
|OC3M|4|60|
|OC4M|8|120|
|OC5M|16|240|

#### SSH公開鍵
WebLogic Serverが稼働しているOSレベル(IaaSレベル)である、Compute Cloudにリモートアクセスするために必要になります。

SSH公開鍵はSSK鍵ペアとして秘密鍵と公開鍵で作る必要がありますが、準備の方法としては大きく２つあります。

1. 事前にssh-keygenなどで作成しておく
    - Linux環境などを主に扱っている基盤担当の人向け
2.  Java Cloud Serviceの作成メニュー上で作成されるものを使用
    - JAva Cloud Serviceを利用始めたい人向け

事前にSSH鍵を作成した場合は、公開鍵をアップロードする事で登録できます。
今回は、Java Cloud Serviceのメニューの中でSSH鍵ペアを作成してみます。

以下の図のように、SSH公開鍵の「編集」ボタンをクリックすると、公開鍵の入力メニューが表示されます。
そこで、「**Create a New Key**」を選択して、「入力」をクリックします。

![SSK-public-key](https://bytebucket.org/shinyay/images-for-blog/raw/df6a2c0fe66c7a25281376aa6000745aa32558ff/qiita/160823_jcs-instance-creation/jaas.oraclecloud.com_2016-08-15_14-46-38.png)

作成できたSSH鍵ペアをダウンロードできるので、ダウンロードし保存しておきます。
この時に作成されたSSH鍵ペアのうち、Java Cloud Serviceの作成メニューに登録されている状態になっています。

![SSK-key-download](https://bytebucket.org/shinyay/images-for-blog/raw/df6a2c0fe66c7a25281376aa6000745aa32558ff/qiita/160823_jcs-instance-creation/jaas.oraclecloud.com_2016-08-15_14-46-56.png)

#### Enable access to Administration Console
WebLogic Serverの管理コンソールへのアクセスを有効化する設定です。

![enable-admin](https://bytebucket.org/shinyay/images-for-blog/raw/df6a2c0fe66c7a25281376aa6000745aa32558ff/qiita/160823_jcs-instance-creation/jaas.oraclecloud.com_2016-08-15_14-48-06.png)

WebLogic Serverの管理コンソールは通常7002番ポートでListenしています。
Java Cloud Serviceでは、デフォルトでネットワークのアクセス制御により7002番ポートアクセスを拒否するようにセキュリティ強化のため構成しています。
このポートアクセスをインスタンス構成時点で有効化しておく設定が、このチェックボックスです。

※ネットワーク設定により、後で設定変更も可能です。

### WebLogic
#### ユーザ名 / パスワード
管理コンソールのアクセスユーザ、アクセスパスワードです。

#### サンプル・アプリケーションのデプロイ
正常アクセス確認を行う用途のサンプルアプリケーション

### データベース構成
#### For Oracle Required Schema
WebLogicが使用するメタデータのリポジトリ用途のDatabase設定です。

![req-schema](https://bytebucket.org/shinyay/images-for-blog/raw/df6a2c0fe66c7a25281376aa6000745aa32558ff/qiita/160823_jcs-instance-creation/jaas.oraclecloud.com_2016-08-15_14-50-31.png)

ここで入力したDatabaseに対するデータソースがサービス・インスタンス作成と同時に構成されます。

#### For Application Schema
WebLogic上にデプロイされるアプリケーションが使用するDatabase設定です。

![app-schema](https://bytebucket.org/shinyay/images-for-blog/raw/df6a2c0fe66c7a25281376aa6000745aa32558ff/qiita/160823_jcs-instance-creation/jaas.oraclecloud.com_2016-08-15_14-52-20.png)

リポジトリ用のデータソースとは別にデータソースが作成される。

### ロード・バランサ
ロード・バランサとして提供するOracle Traffic Directorの構成に関する設置です。

#### ロード・バランサのプロビジョニング
「はい」を選択するとロードバランサが使用可能。

#### ロード・バランサ・ポリシー
以下、3種類のポリシーが選択可能です。

|ポリシー|説明|
|---|---|
|最小接続件数|各新規リクエストを管理対象サーバーに最小接続数で分配 <br>管理対象サーバーが完全に停止したときに配布を平滑化する場合に有用|
|最小レスポンス時間|最速のレスポンス時間で、管理対象サーバーに新しいリクエストを分配<br>管理対象サーバーがネットワーク間で分散している場合に有用|
|ラウンド・ロビン|すべての管理対象サーバーに対して均等にリクエストを分配|

#### 別のアクティブなOTDノードの追加
ロードバランサの冗長構成化をする

### バックアップおよびリカバリ構成
Java Cloud Serviceで提供するOracle Databaseのバックアップ先に関する情報を入力します。

バックアップ先として指定できる環境は以下の2種類あります。

- クラウド・ストレージ
    - オブジェクト・ストレージを提供しているOracle Cloudを利用
- ローカル・ストレージ
    - ブロック・ストレージとして構成されているWebLoficが稼働している環境を利用

#### バックアップの保存先

|保存先|説明|
|---|---|
|クラウド・ストレージとローカル・ストレージ両方|DBが稼働している環境のローカル領域と<br>オブジェクトストレージ(Storage Cloud Service)の両方|
|クラウド・ストレージのみ|オブジェクト・ストレージ(Storage Cloud Service)|
|なし|バックアップをとらない|

#### クラウド・ストレージ・コンテナ
Storage Cloud Service上のオブジェクト・ストレージ・コンテナの名称を入力

コンテナ名の入力フォーマット

```
Storage-<IdentityDomain名>/<コンテナ名>
```

設定するコンテナは以下の2つの方法のうちのいずれかを選択

1. 事前にStorage Cloud Service上に作成したコンテナを選択
2. 新規に作成するコンテナ名を入力。新規に作成する場合は、この後のチェックボックスの**[Create Cloud Storage Container]**を選択する必要あり

#### クラウド・ストレージ・ユーザ名 / パスワード
Storage Cloud Serviceの捜査権限をもつユーザ名とパスワード

#### Create Cloud Storage Container
新規にStorage Cloud Service上にコンテナを作成する場合、このチェックボックスを選択する

Java Cloud Serviceの作成に関係なく、事前にStorage Cloud Service上にコンテナを作成するには、Storage Cloud Serviceが提供するREST APIを利用して作成を行う

- [Create container](http://docs.oracle.com/cloud/latest/storagecs_common/ASAPI/op-v1-%7Baccount%7D-%7Bcontainer%7D-put.html)


## 5. 作成開始
構成内容を確認して、「作成」をクリックします。
![confirmation](https://bytebucket.org/shinyay/images-for-blog/raw/df6a2c0fe66c7a25281376aa6000745aa32558ff/qiita/160823_jcs-instance-creation/jaas.oraclecloud.com_2016-08-15_14-54-45.png)

作成中は、以下のようにステータスが**In Progress**となり、アイコンに**砂時計**がつきます。
![in-progress](https://bytebucket.org/shinyay/images-for-blog/raw/df6a2c0fe66c7a25281376aa6000745aa32558ff/qiita/160823_jcs-instance-creation/jaas.oraclecloud.com_2016-08-15_14-56-18.png)

## 6. 作成完了
大体30分程度で作成が完了します。
![complete](https://bytebucket.org/shinyay/images-for-blog/raw/df6a2c0fe66c7a25281376aa6000745aa32558ff/qiita/160823_jcs-instance-creation/jaas.oraclecloud.com_2016-08-21_22-07-47.png)

# まとめ
Oracle CloudのJava Cloud Serviceを利用してWebLogic Server環境を作成してみました。
WebLogic ServerがPaaSとして提供されているメリットの通り、数手順のみでWebLogic環境が作成できてしまいました。

インストールや環境構成作業がない事がどれだけシンプルなのか実感できると思います。