言葉にできるは武器なるらしい

言葉に文字に残していきます何事も。いつかきっと誰かの役に立つはずだから。

OracleCloud WAFの説明

まずはWAFの課金体系

クラウドなので、基本亭には使った分だけ課金されます。 課金対象は下記の3パターンなのでいろいろWAFポリシーを多く設定すればするほど課金も高くなってきます。とはいえ、自分のサーバが従来どのくらい攻撃されてたかなんて把握してない人が多いので、実際は毎月試しながら、どのくらいのリクエスト量なのかBOT検知してるのか、などを見ていけばいいと思います。

ラククラウドサービスの中のWAF(Web Application Firewall)は種類が3つあります。

  • WAF 1,000,000 incomingリクエス

        入ってこようとしたリクエスト全部に対してチェックする

  • WAF GB of Good Traffic

        上のチェックに加えて、通過させた分のトラフィック量に足しても課金が発生する

  • WAF Bot Management 1,000,000インカムリクエス

        ボットのチェックは別料金となって、高額な単価で課金がかかる。         この機能を使うかどうかは選べるはず。

ボット対策とは:インターネット上では、ボットによるトラフィックは人間によるそれよりも多くなっています。ボットの大半は悪意のないものですが、しかしそれゆえ単にボットを全てブロックしてしまうということもできません。JavaScriptチャレンジ、CAPTCHAチャレンジ、ホワイトリスト機能をWAFルールセットと併せて用いることで、良性ボットをとおして悪性ボットをブロックすることが可能です。

そもそもOCI WAFの機能の整理

端的にまとめるとこの5つくらいです。 ホワイトペーパーを見てみると他にもインテリジェンスチームが24時間体制で監視してまっせみたいなことも書いてあるけど、機能っぽくないので却下しましたw

  1. 250 を超える定義済みのルール 250以上のルールセットとOWASPルールセットをサポートし、SQLインジェクションクロスサイトスクリプティング、HTMLインジェクションなどの脅威から保護します。
  2. BOT 検知 JavaScriptCAPTCHA、ホワイトライティング機能により、悪意あるボットを検出し、トラフィックへのアクセスを制御します。
  3. IP アドレスによるホワイトリストブラックリスト制御 国、IPアドレス、URL、およびその他の要求属性に基づいてユーザーアクセス制御を構成し、危険なトラフィックを禁止できます。
  4. オンプレミス、マルチクラウド環境を保護 あらゆる環境において(OCI、オンプレミス、マルチクラウド)、インターネットに接続するすべてのアプリケーションを保護できます。
  5. APISDK を用いて管理できる すべての操作に対してAPISDK、Terraformをサポートしており、他のOCIサービスと統合できます。

基本動作としては、

まずWAFを作る前に外部公開用のDNSレコードを作成しておき 、それを守りたいwebサーバのCNAMEとしてDNSに登録することで、トラフィックをWAF経由に設定することができる

f:id:rodeeeen:20200518102702p:plain WAFを作成したら WAFポリシーやBOT検知をするかどうかの設定を追加していきます。 WAFを作成しても何もポリシーの設定をしなければ、ザル状態で言わば課金もされません。何も検知しないから。 オラクルが事前に準備している250以上のルール(ポリシー)はオンオフを選ぶだけで適用できるようになっています。 ちなみにこれらの250といってるルールはOWASPのTOP10に挙げられているようなリスクに対応できるようにと設計されている。らしい https://owasp.org/www-project-top-ten/?gclid=EAIaIQobChMIiJu7t4v76AIV8Z7CCh1xbgcCEAAYASABEgLOWPD_BwE

WAFで防御できる攻撃の例

オワスプTOP10って何よ?てかWAFで具体的にどんな攻撃防げるの?と言われたら 一旦下記で答えよう。オワスプ10にはもっともっと載ってるが、具体的な攻撃名とかでない項目もあるので、皆がイメージしやすいのはこんな感じかなと。 DDoS攻撃 ボット攻撃 SQLインジェクション HTMLインジェクション クロスサイトスクリプティング など

WAF設定方法

ラクルが出しているチュートリアルを見ると設定の仕方が分かりやすく乗っている https://community.oracle.com/docs/DOC-1030654

最後にOCIWAFの情報はなかなか少ないのでホワイトペーパーを見ておくこともおススメだ https://www.oracle.com/jp/a/ocom/docs/oracle-cloud-infrastructure-waf-data-sheet.pdf

【OCI】windowsインスタンスにブロックボリュームをアタッチする

なかなかドキュメントはわかりづらいのでメモメモ やることはカンタンにまとめると

  1. インスタンスの作成
  2. ブロックボリュームの作成
  3. アタッチメント
  4. インスタンスサーバにログインしてiSCSIで設定

一応ドキュメントはこれね https://docs.oracle.com/cd/E97706_01/Content/GSG/Tasks/addingstorageForWindows.htm

1.2は余裕でできるので省略、アタッチのところから解説します

インスタンスで下の方を見ると「アタッチされたブロックボリューム」があるのでクリック f:id:rodeeeen:20200427173215p:plain

ブロックボリュームのアタッチをクリック

f:id:rodeeeen:20200427173307p:plain

アタッチするボリュームを選択し、それ以外はデフォルトのままでOK、そのまま「アタッチ」をクリック

f:id:rodeeeen:20200427173319p:plain

下記画面になり、1分くらいするとアタッチが完了する

f:id:rodeeeen:20200427173334p:plain

右側にある点3つのアイコンクリックし、「iSCSIコマンドおよび情報」をクリック

f:id:rodeeeen:20200427173347p:plain

するとIPなどの情報が出てきます。 ここのIPとポート情報は後ほど使うのでメモしておく。

f:id:rodeeeen:20200427173403p:plain

windowsインスタンスにRDPで接続するためVCNのセキュリティリストにRDPのポート許可をしておくことをお忘れなく。 個の設定方法は別途情報いろいろでてるので、ここでは省略します。

f:id:rodeeeen:20200427173428p:plain

RDP接続

WindowsサーバにRDP接続したら サーバーマネージャーを開き「ツール」から「iSCSIイニシエーター」をクリック

f:id:rodeeeen:20200427173449p:plain 検出タブから「ポータルを検出」をクリック

f:id:rodeeeen:20200427173504p:plain 先ほどメモしたブロックボリュームのIPとポートを入力し「OK」をクリック

f:id:rodeeeen:20200427173519p:plain

ターゲットタブを開くと「検出されたターゲット」に表示されたブロックボリュームを選択し、「接続」をクリック

f:id:rodeeeen:20200427173535p:plain

そのまま「OK」をクリック

f:id:rodeeeen:20200427173548p:plain

サーバーマネージャーの「サーバ」>「ディスク」を確認するとアタッチしたブロックボリュームが確認できます。

f:id:rodeeeen:20200427173606p:plain これをDドライブとかEドライブにするには、 ボリュームの中で右クリックし「新しいボリューム」を選びます

f:id:rodeeeen:20200427173621p:plain そのまま「次へ」

f:id:rodeeeen:20200427173635p:plain サーバとディスクで、先ほどアタッチしておいたディスクを選択し、「次へ」 をクリックすると確認がポップアップされますがそのまま「OK」 f:id:rodeeeen:20200427173650p:plain ディスク容量のうち何GBを利用するか聞かれるので設定します。 ここでは2TBアタッチしたディスク全部をEドライブにするつもりなので このまま「次へ」をクリック

f:id:rodeeeen:20200427173704p:plain

何ドライブにするかを聞かれるので ここでは既にDドライブは作っているので、そのままEドライブとしちゃいます なので特に何も変えず「次へ」をクリック

f:id:rodeeeen:20200427173716p:plain ファイルシステムの設定もそのまま「次へ」 最後に確認画面が表示されるので「作成」をクリックします

f:id:rodeeeen:20200427173735p:plain

f:id:rodeeeen:20200427173747p:plain

すべて完了したら、「閉じる」をクリック

すると このようにEドライブとしてエクスプローラーに表示されるようになりました

f:id:rodeeeen:20200427173757p:plain

以上!!!

OACの数値予測のトレーニングの理解

Oracle Analytics Cloud(OAC)のデータフローで取り込んだデータに対して
レーニングモデルを作成したい際にはこんな感じでやっていきますが

f:id:rodeeeen:20200422012413p:plain

数値予測のトレーニングの項目を見ると
英語だしなんだか分かりづらいのでここで解説します。

f:id:rodeeeen:20200422012502p:plain

Target

これは簡単で、モデルを作りたい項目はどれかを選べばいいだけです。

Regression Method

回帰の種類を選択します。

  • Lasso回帰
  • リッジ回帰
  • Ordinary Least Squares(最小二乗回帰)
Regularization Weight

正則化の重みを1~100で選びます。
Regularization Weight(L1 ratio or L2ratio)
Please enter 0 if it is ordinary least squares linear regression

Categorical Column Imputation

属性データにおいて、もしNA(該当なし)のデータが出たときに
一番頻出する値を代入するのか一番頻出しない値か。
デフォルトでは最多頻出値となってます。

  • Most frequent
  • Least frequent

the mode method for categorical features to fill NA.
Two options: most frequent and least frequent .
default is most frequent.

Numerical Column Imputation

数値データにおいて、もしNA(該当なし)のデータが出たときに
平均値か最大値か最小値か中央値どれを代入するか。
-Mean
-Maximum
-Minimum
-Median

Categorical Encoding Method

カテゴリ変数のエンコーディング
(文字列を数値として持ち直す的な。例えば曜日で「日→0、月→1、、、」)
の手法を選択
Indexerエンコーディング
Onehotエンコーディング

Maximum Null Value Percent

Null値を最大何%許容するか

Train Partition Percent

読み込んだデータのうち、何割を学習に使うか。

Standardization

True
False
学習前に標準化するかしないか。する場合はTrue。
機械学習では学習する前に生データをスケーリングする場合が多々あります。
https://qiita.com/ttskng/items/2a33c1ca925e4501e609

 

 

オラクルクラウドだと予算オーバーしない3つ理由

クラウドに移行したら思ってた以上の請求書がきた!!

という声が多く上がっていました。

この原因は、従来オンプレでは全く気にしていなかった
データ転送量が原因です。

クラウドの転送量って?

クラウドでは、クラウドの中にデータを持ち込むのは基本タダですが、
クラウドからデータを引っ張ってくると有料になります。
例えば、業務ファイルダウンロード機能を持つシステムなんかの場合、1ユーザが1か月に1GB分のデータをクラウド上からダウンロードしたりすると、100人規模の会社では毎月100GBをクラウドから出したことになります。

例えば、これがAWSだと1GBあたり0.114ドル課金されるため
100GBで11.4ドルの請求が来てしまい、クラウド慣れしてない人達からすると

何じゃこりゃー!?

となってしまうのです。

ラククラウドだと予算オーバーしない3つ理由

ラククラウドでも、同じようなデータ転送量に対する課金は発生します。
しかし他のクラウドベンダーと違う特徴があります。

  • 1つ目は10TB/まで無料。結構ありがたいです。
  • 2つ目は、超過したとしてもそもそも課金額が安いのです。先ほどAWSが1GBあたり114ドルに対して、1GBあたり0.0085ドルとなってます。
  • 3つ目は、予算という機能があり、あらかじめ設定した金額に到達or到達しそうになったら通知メールを飛ばすという運用ができます。

ラククラウドではこのようにサービスごとにいくら使っているのかを確認できるようになってます

f:id:rodeeeen:20200331151418p:plain

f:id:rodeeeen:20200331151432p:plain




予算の設定ができる

予算を使用して、テナンシ内のコスト追跡できます。コンパートメントの予算を作成したら、予算の超過が予測される場合または支出が特定の金額を上回る場合に通知するアラートを設定できます。

f:id:rodeeeen:20200331151459p:plain


こんな感じで予算ルールの作成をするだけです

f:id:rodeeeen:20200331151525p:plain

f:id:rodeeeen:20200331151538p:plain


いーじょう!

 

カンタン解説!Oracle Analytics Cloudの構築手順(起動停止の方法も)

ラクルアナリティクスクラウドの構築手順のメモになります。

 

-前提として

OCI(Oracle Cloud Infrastructure)のコンソール画面には入れる方対象。

(オラククラウドを契約またはオールウェイズフリーでお試しの人であれば、入れているはず)

 

では早速スタート

・メニューから「アナリティクス」>「アナリティクス・クラウドを選びます

f:id:rodeeeen:20200330220734j:plain

 

「Other Analytics」>「Manage Instances」を選択します

f:id:rodeeeen:20200330220744j:plain

 

・下記の画面で「Create Instance」を選択、あとは流れに沿って入力するだけです。

f:id:rodeeeen:20200330220754j:plain

 

・下記を入力する

  - インスタンス名を決めます(なんでもいいです)

  - Emailを入力(このアドレスに色々な連絡事項の通知がくるようです)

  - リージョンを決めてください(ホームリージョンに設定したリージョンでなくても、どこでもいいです)

  - ライセンスタイプ(既存ライセンスお持ちの方は、上のBring my exiting license、通称:BYOL)

  - エディションを決める(Standard(分かりずらいけどProfessional=スタンダードだよ)、Enterprise、ESSbaseの3つの中から選択)

  - Feature Set は選んだエディションのものを選択

  - OCPU数を決める(1oCPUは非本番環境だそうです→検証用とかPoC用とかそういうことかな)

・すべて入力できたら「Next」

f:id:rodeeeen:20200330220802j:plain

 

・内容の確認をして「Next」

f:id:rodeeeen:20200330220810j:plain

 

・OACの構築が始まります。ステータスが構築中になるので、これが消えるまで待つこと20-30分くらい

f:id:rodeeeen:20200330220820j:plain

 

・消えた!インスタンス完成!

f:id:rodeeeen:20200330220830j:plain

 

・右側のメニューボタンから「OracleAnalyticsCloud URL」をクリック

f:id:rodeeeen:20200330220837j:plain

 

・オラクルアナリティクスクラウドが立ち上がります。

 ここでは構築手順のメモなので、使い方とかはまた別記事としてまとめます。

f:id:rodeeeen:20200330220845j:plain

以上!

良い分析を!

 

【補足】OACの起動と停止

インスタンスの起動・停止だけここで紹介します。

クラウドでは1時間単位で課金されるのでOACのような分析ツールは

まるまる1か月間使い続けるものではなので、誰も使わない時間帯は止めておくのがセオリーです。(クラウド慣れした人には釈迦に説法な話ですみません)

使い終わったら、休日に入る前の日には、止めておきましょう。

 

ということで、先ほどのこのメニューで

「Start」→起動

「Stop」→停止

「Delete」インスタンスごと削除されるので注意!!

f:id:rodeeeen:20200330224410p:plain

 

・停止するとビックリマークがついてステータスが「stopped」に変わります。

 

f:id:rodeeeen:20200330224854p:plain

※注意点※

停止しておけば課金がまったくゼロになると思ったのですが

ストレージ領域として使われている分には課金が発生するらしく

OAC料金の15%がストレージ料金にあたるようです。

つまり、ずっと停止にし続けていたとしても15%分の請求だけは来てしまう。ということ。。。

ということは会社で使うのであればなるべく平日は毎日誰かしらが使うような運用を心掛けた方が損しないですね

あるいは逆に局所的に使って、すぐインスタンスごと削除!みたいな運用をすれば

データは残りませんが、15%は持っていかれずに済む。

 

 

OracleAnalyticsCloud・OracleAnalyticsDesktopデータ取り込みテスト

OADって、OACってどのくらいデータ入れれるの?
なる質問が良くあるので今回はデータ取り込みの検証をしてみます。

http://jusyo.jp/csv/new.php

使ってみるのはここから持ってこれる全国の住所データ

中身はこんな感じ
22項目、15万弱行約26MB

f:id:rodeeeen:20200325164047p:plain

f:id:rodeeeen:20200325164107p:plain

まずはOACから。※インスタンスはたったの2oCPUだよ。
普通にデータセットcsvを食わせますよ

f:id:rodeeeen:20200325164124p:plain



待つこと約5分(もっとかかるかと思った)
正常にデータ取り込みできました!

f:id:rodeeeen:20200325164140p:plain



念のため確認してみると
全件数取込めてるし、

気になるのは、住所CDの件数第2位が愛知?!

北海道はでっかいどうだから住所区分が多くなるのはなんとなくイメージできるし、
東京は狭いけど人口が多いから細かく区切らなあかんのかなってなんとなく納得できるけど。
2位愛知て、なんで??

f:id:rodeeeen:20200325164201p:plain

続いてOAD

同じファイルを取り込み、、、
余裕で取り込めました。(PCのメモリは16GBのPCです)
待つことたったの1秒!

f:id:rodeeeen:20200325164300p:plain

 

件数もちゃんとしてる

f:id:rodeeeen:20200325164316p:plain



結論

この結果からすると、15万行くらいのcsvなら余裕でOADでもOACでも取り込み可能。
OADの方が取り込み時間がかからなかった。

ツール

所要時間

OAC

約5分

OAD

約1秒

OACは2oCPUでメモリは約30GBあるはずなので性能だけで考えるとOACの方が絶対に早いはず(PCのメモリは16GBなので)
それでもOACの方が遅かったという事はクラウドへのネットワーク
のレイテンシに起因する結果とか、うちのWifiが弱すぎるとか要はそういうことだよね?

 

愛知の謎は残るけど本件の主題ではないためお蔵入りとする

オラクルアナリティクスクラウドにアップしておける容量の確認方法

ラクルアナリティクスクラウドに限ります
(デスクトップ版はマシン依存するはずだから、この項目はないと思われる)

データセット管理から

f:id:rodeeeen:20200325155236p:plain

こんな感じで残容量みれます

f:id:rodeeeen:20200325155251p:plain


おそらくですが、エディションやインスタンスのOCPUごとにサイズが違うでしょうね

これはProfessional Editionの2oCPUでの場合です。
細かいことが分かったら追記しようと思います。
もしくは「ここに書いてるよ!」みたいのがあれば誰か教えてください!