Slide 1

Slide 1 text

Oracle Cloud ウェビナー 日本オラクル株式会社 2024年8月7日 OCIでコンテナを活用しコスト約65%削減! ユーザー数30万人超のスライドシェアサービス「ドクセル」の移行

Slide 2

Slide 2 text

1. Oracle Cloud Native分野の概観 スピーカ:田中 隆三郎 (日本オラクル 事業戦略統括 担当ダイレクター) 2. OCIでコンテナを活用しコスト約65%削減! ユーザー数30万人超のスライドシェアサービス「ドクセル」の移行 スピーカ:川畑 雄補 氏 (株式会社アプルーシッド 代表取締役社長) 3. Q&A 4. お知らせ/クロージング 本セッションのアジェンダ Copyright © 2024, Oracle and/or its affiliates. 2

Slide 3

Slide 3 text

Oracle Cloud Native分野の概観 Copyright © 2024, Oracle and/or its affiliates. 3

Slide 4

Slide 4 text

開発・運用の全領域をカバー / 既存オンプレミスユーザーと新規クラウドユーザーをサポート / 開発者向けDBソリューション 4 Copyright © 2024, Oracle and/or its affiliates OracleのCloud Native /開発系ソリューションの特徴 アプリケーション 実行基盤 CI/CD / インフラ 運用自動化 コンテナ / サーバーレス / API管理 データ 管理 Observability & Messaging DevOps Resource Manager Ansible サポート Container Instances Container Engine (OKE) WebLogic Server for OKE Functions API Gateway Monitoring Notifications Events Logging Streaming Queue 統合型 DB (Converged DB) MicroTx 既存 オンプレミス ユーザー 新規 クラウド ユーザー 開発・運用の 全領域をカバー Lift & Shift / モダナイズ アプローチ Cloud Native 開発 アプローチ 統合型DB + トランザクショ ン・マネージャ

Slide 5

Slide 5 text

5 Copyright © 2024, Oracle and/or its affiliates オープン標準/クラウド・オンプレミスの両環境を同一のテクノロジーでカバー オンプレミス クラウド Oracle Linux Oracle Cloud Infrastructure OS: Oracle Cloud Native Environment (OCNE) OCI Cloud Native サービス 群 … CNCFにて推進する OSS 群 H/W : Oracle Private Cloud Appliance

Slide 6

Slide 6 text

6 Copyright © 2024, Oracle and/or its affiliates. OCI Cloud Native Services Landscape OCI Core Infrastructure OCI Cloud Native Landscape 開発・運用管理ツール アプリケーション実行基盤 API管理 Oracle Functions API Gateway サービス間連携 オブザーバビリティ OCI DevOps OCI Registry Resource Manager OCI Service Mesh Container Engine for Kubernetes (Managed/Virtual Nodes) メッセージング Queue Streaming Service Connector Hub Notifications Application Performance Monitoring Logging Monitoring Events WebLogic Server for OCI/OKE MicroTx 開発フレームワーク Helidon MP/SE/Nima Micronaut Compute Database Network Storage Container Instances

Slide 7

Slide 7 text

OCIでコンテナを活用し コスト約65%削減! ユーザー数30万人超の スライドシェアサービス 「ドクセル」の移行 公開版 ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 8

Slide 8 text

コスト効果と開発生産性について POINT 03 Cloud RunからContainer Instance含むOCIへの移行 POINT 02 Web業界でのインフラアーキテクチャのトレンド POINT 01 本日のウェビナーではこれらのポイントを重点的にお話しします 本日のポイント disclaimer:本資料の作成にあたっては、正確な情報提供を心がけておりますが、本資料の完全性、正確性について一切の保証を行いません。 かならず最新版の情報をご自身で調査するようにしてください。本資料に登場するロゴ、商標、サービス名は各社の登録商標または商標です。 ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 9

Slide 9 text

先ほどの図でいうとこのあたりのお話となります ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 10

Slide 10 text

川畑 雄補 Oracle databaseを触ったのは8iが最後。ずっとMySQLばっかり。 1983年生まれ、製作会社でWebエンジニア、iOSエンジニアを経てサ イバーエージェント・リクルートなどで新規事業の立ち上げやマーケ ティングを行う。DMMグループで暗号資産周りの事業にチャレンジし た後アプルーシッドを設立。 自己紹介 ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 11

Slide 11 text

株式会社アプルーシッドは代表の川畑を中心にパートナーと 新規事業に特化したDX・サービス運営に取り組んでいます 新規事業コンサルティング DXサービス 主にエンタープラ イズ企業における 新規事業を支援 レンタルPdM、レ ンタルCTO 金融(銀行・証 券・保険)自動車 ほか 今回ご紹介するド クセル その他Webサー ビスを複数 生成AI系サービス も取り組み 当社について ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 12

Slide 12 text

今回移行したドクセルについて ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 13

Slide 13 text

9月 2022/4月 9月 2023/4月 9月 2024/4月 アカウント数 7,000 約3割が法人・団体の利用 超 登録スライド数 20,000 全体公開スライドは約1万枚 枚突破 スライド共有サービス「ドクセル」は国産サービスとして 2021年3月にリリースして以降順調に成長いたしました 今回移行したドクセルについて ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 14

Slide 14 text

アーキテクチャの変更やCDNの 活用、事前確定割引も限界 サービス開始から3年たち、利用者の増加とともにインフラコストが目立つよ うになってきた。さらに円高でコストアップは加速。移行先を探すことに しかし法人利用もあるため、あ まりセキュリティを下げるよう なインフラは選べない Google CloudからOCIに移行した理由 ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 15

Slide 15 text

前置き: エンタープライズシステムと サーバレスWebサービス ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 16

Slide 16 text

昨今のWebサービス開発環境はサーバレス、エッジランタイムの普及により 旧来のオンプレと構成がかなりちがうようなサービスも広がっています データベース アプリケーション CDN・エッジランタイム サーバレスなWebサービス環境 ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 17

Slide 17 text

特に新規事業は素早く立ち上げ、検証し、柔軟に 方向転換する必要があるため、「インフラ構築」 というステップを省くような構成が人気 コードを書くエンジニアが、管理画面でセットア ップし、SDKからコマンドをたたくとWebアプ リケーションがSSL付きで表示される、そこに DNSを割り当てると即サービスインできる アプリケーションとDBはインターネット越しに 別のデータセンターで通信するが、そのレイテン シはフロントアプリケーションの工夫でカバー サーバレスなWebサービス環境 ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 18

Slide 18 text

PoCでノーコードの一環としてはベンダー契約で可能かも なお、エンタープライズ環境での導入は ほぼ無理\(^o^)/ ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 19

Slide 19 text

では、なぜドクセルは「インフラ構築」が 必要なOCIに移行したのか?できたのか? ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 20

Slide 20 text

オンプレやIaaSと比べた場合開発生産性や変更の柔軟さは向上するものの、 維持費の高騰やサービスごとの制約に縛られる つまり、立ち上げ期をこえてトラフィックが予測可能になってきた場合、サーバレスからIaaSに 移行することでコストパフォーマンスを向上させることができるはず。しかし・・・ いわゆるサーバレス系 コストの上がり方が急 サービスごとのお作法・制 約がある スケールアウトが簡単 オンプレやIaaS 構築しないといけない範囲 が多い コストが一定 スケールアウトしにくい 従来のインフラとの比較 ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 21

Slide 21 text

コストは下げたいが、いまさら マネージドサービスの楽ちんさ 安心感からは抜け出せない! そこで・・・ ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 22

Slide 22 text

VPSやオンプレよりマネージドサービス(コンテナ・DB・Redis)が 充実し、その他のクラウドベンダーより圧倒的に低コスト HA構成やセキュリティなど商用サービスを提供する要件ではメガクラウドより高コスト いまどきのPaaSサービスの組み合わせ 03/ 現行の構成と比べてもコスト削減効果は見込めない AWS / Azure / Google Cloud 02/ DBやキャッシュなど多くのサービスを自前で構築・保守する必要がある VPSやオンプレ 01/ Why OCI ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 23

Slide 23 text

Google CloudよりOCI Container Instanceを中心とした マネージドサービスで固めた環境に移行 OCI環境へ移行しました ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 24

Slide 24 text

Google Cloud Oracle Cloud(OCI) CDN Cloud CDN / Firebase Hosting Cloudflare / Bunny.net 内部ネットワーク Serverless NEG Network load balancer アプリケーション Cloud Run Container Instance ストレージ Cloud Storage Object Storage データベース Cloud SQL (MySQL) MySQL (MDS) キャッシュ なし OCI Cache キュー Cloud Tasks OCI Queue Google CloudからOCIへの移行 Google CloudからOCIへの移行 ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 25

Slide 25 text

Cloud Runから Container Instanceへの移行 ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 26

Slide 26 text

Cloud Runはコンテナイメージとスペックを指定して、1インスタンスで同時 にさばくアクセス数だけ決めておけば0台から無限にスケールする夢の技術 各種メトリクス・ログエクスプローラ付き 4 独自ドメイン割り当て、SSL発行可 3 固有のURL割り当てですぐに確認 2 当然ながらフルマネージド 1 GoogleのCloud Runとは ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 27

Slide 27 text

もちろんPaaSならではの制約もいろいろあるが、それで問題なくやってきた Google以外のCDNとの相性が悪い 4 リクエストサイズや実行時間に制限あり 3 基本的に8080番へのHTTP通信のみ可 2 ストレージはマウントできない 1 GoogleのCloud Runとは ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 28

Slide 28 text

OCIのサーバレス製品のうち、OKEとFunctionsの間くらいの製品 好きなスペックを選べる 自動でスケールしない 基本的に起動しっぱなし Computeの費用しかかからない ストレージはマウントできない ドメイン・SSLは提供されない OCIのContainer Instanceとは ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 29

Slide 29 text

Cloud RunからContainer Instanceへ移行するときに 心配したことと、その検証結果 03 デプロイがいちいち面倒なのでは? →NodeJSのSDKでスクリプトを書いて解決 02 異なる環境下で同じように動作を保証できる? →コンテナとMySQLだし問題ない 01 自動でスケールしないと困るのでは? →固定数のインスタンスで問題ない OCIのContainer Instanceとは ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 30

Slide 30 text

自動でスケールしなくても大丈夫?→大丈夫 そもそもDBとご予算は自動でスケールしない 3年も運営していれば、 だいたいのトラフィック は予想できる Container Instanceはパ フォーマンスが高いので 固定台数で余裕 無限にスケールされても DBか予算が耐えられなく なる 自動でスケールしなくても大丈夫? ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 31

Slide 31 text

異なる環境下で同じように動作を保証できる? →コンテナなので基本的に問題ない IPアドレスなど「Low-level」な操作が必要な 代わりに制約は減った。永続化ストレージが ないのも同じ PaaSとしての制約は同じか減った プライマリキー周りの課題があり、ドキュメ ントに従い対処 MySQLは5.7→8.0で若干大変だった サービスアカウントの秘密鍵を使用 Googleのサービス認証系は個別対応 お得なAmpere A1インスタンス利用可 Docker buildxでマルチアーキ イメージをビルド 異なる環境下で同じように動作を保証できる? ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 32

Slide 32 text

こまかい挙動に違いはありつつも、基本的に同じ 動作、同じAPIが保証されているため移行が容易 CHECK ! オープン&標準化により、システム固有の技術を導入していても、 互換性をほぼ気にすることなく最小の労力で移行できる コンテナも前述の差のみ、Object StorageもS3 互換APIのため99%スムーズに移行できた コンテナリポジトリへの登録など開発環境、スト レージのコピーなど周辺ツールのOSSも充実 標準化による恩恵 ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 33

Slide 33 text

移行の順番 サンプル Cloud CDN Cloud Run Cloud Storage Cloud SQL Cloud Run Queue worker Cloudflare Container Instance OCI Queue MySQL DS ① Object Storage ② ③ ② 移行に際しては、MySQL→アプリケーション回り→Queueとキャッシュの順で実施 OCI Cache ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 34

Slide 34 text

移行の順番 サンプル Cloud CDN Cloud Run Cloud Storage Cloud Run Queue worker Cloudflare Container Instance OCI Queue MySQL DS ① Object Storage 移行に際しては、MySQL→アプリケーション回り→Queueとキャッシュの順で実施 ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 35

Slide 35 text

移行の順番 サンプル Cloudflare Container Instance MySQL DS Object Storage ② ② 移行に際しては、MySQL→アプリケーション回り→Queueとキャッシュの順で実施 Cloud Tasks ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 36

Slide 36 text

移行の順番 サンプル Cloudflare Container Instance OCI Queue MySQL DS Object Storage ③ 移行に際しては、MySQL→アプリケーション回り→Queueとキャッシュの順で実施 OCI Cache ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 37

Slide 37 text

Google Cloudでは基本的にIPアドレスを指定するのはDNSサーバのみ。 OCI移行時にはひさびさにネットワーク設計が必要に いろいろと面倒くさいが、Node JS SDKを使ったデプロイスクリプトを書くことで 基本的な本番アップ体験はGoogle Cloud時代と近いものに 移行中のMySQLアクセス はインターネットを通る Cloud Run側は出口IPの固定 が必要 東京同士ならそこまでレイ テンシはないし、Direct接続 するまでもない バージョン間のトラフィ ック振り分け OCIではNLBのバックエンド グループに割り当てて割合 指定 Cloud Runでは管理画面で トラフィック割合を指定す るだけ 本番公開前の 動作確認方法 OCIではインスタンスにパブ リックIPをつけてIP制限で 動作確認 Cloud Runではリビジョン ごとに専用URLが付与され ていた ネットワーク周りの移行設計 ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 38

Slide 38 text

©2024 UPLUCID, K.K. All Rights Reserved.

Slide 39

Slide 39 text

Claude 3でコードを書かせると、それっぽいコー ドが生成される(そのままでは動作しない) 流れ 生成されたメソッドやオブジェクトを鍵にリファ レンスを調べる(読みにくい) それでも動かないので、Webコンソールの通信を DeveloperToolで覗いてJSONコピー(動く) Claude 3でコード生成→修正 ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 40

Slide 40 text

ObjectStorageの移行はQiitaなどのドキュメントを読めば 簡単にできましたが、Queueは苦戦 Object Storageの移行に ついて 01 02 Push queueとPull queue のちがい その他の移行 https://qiita.com/letian/items/937f8f6b69f7ee25d9c1 Cloud Tasksは原則Push型のQueueサービス (というか指定したエンドポイントにHTTP  Postを実行してくれる使い方) OCI queueは原則pull型キュー ワーカーからとりに行く部分の対応が必要 ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 41

Slide 41 text

移行の難しかったところと解決策 ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 42

Slide 42 text

S3互換APIに CORSヘッダが対 応していない PHPのSDK・情報 がほぼない Pay as you go ア カウントの挙動が 謎 OCI独自の用語が 謎。コンパートメ ントとは? IAMがSQL文にな っていて謎かつス コープも不明 移行の難しかったところ ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 43

Slide 43 text

OCI独自の概念、用語から専用のアカウント開設、その後の移行サポートまで お世話していただきました。比較的小規模な弊社でもガッツリはいっていただけました 解決策は、営業さんに体制組んでもらいました しかも前払いアカウントに一定額チャージするだけで無償でした ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 44

Slide 44 text

エンジニア1名が別案件を抱えながらで1か月ちょっと。OCIの練習や学習を加 えても3か月かからない程度で移行ができました。ういたコストで、これまで 導入していなかったRedis(OCIキャッシュ)も導入出来ました。 実際の移行期間と効果は? 約65%クラウド コスト削減 0Network Egress 0.5xComputing 0.6xDB ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 45

Slide 45 text

安定したサービスをコンテナを活用しコストパフォーマンスよく移行すること ができましたが、いくつか根本的な課題もありました。 ネット上に情報が少ない 中の人がスライドや技術ブログ で発信してくれてはいるもの の、個人開発者やベンダーによ る検証記事はまだまだ少ないた め、細かい部分でつまづく可能 性がある。その分営業・技術担 当の支援があるので本番はよい が、ちょっと遊んでみたい場合 に不便。 SDK・APIドキュメントが 不十分 CI/CDを自動化する際や、コード からStorageやQueueなど認証が 必要なサービスを呼び出す際、 PHPはそもそもSDKがなく、そ の他の言語についてもドキュメ ントが少なく苦労しました。 便利系機能がかなり弱い たとえばCDN系は非常に弱く、 SSLをコンソール上で生成する こともできません。自前で生成 し定期的にアップロード・アタ ッチする必要があります。その ためCloudflareなど3rdPartyを 活用することになりました。 CognitoやFirebaseなど開発系 SaaSもほぼありません。 OCIに足りないもの ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 46

Slide 46 text

Q&Aタイム ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 47

Slide 47 text

エンジニアが他の案件を抱えながら1か月ちょっと、停止時間は3時間×2回程度、賞味の作業時間 としてはフルタイム換算で1週間程度ではないか。それ以前にドクセル関係なしにOCIの練習は行っ ている。 実際の移行期間はどれくらいかかったか 03/ なかったが、移行前の検証時期にためしにビルドしたら問題なく動作したためそのまま採用した Armアーキテクチャはもともと移行予定があったのか 02/ 比較したが、機能面では豊富かつコストもセール実施で安いと感じたが、管理コンソールの不安定 さがあり候補から落とした(2つあるうちの1つを試してもう一つは試さず) ほかの安いクラウド(中華系など)は比較したか 01/ Q&A ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 48

Slide 48 text

スライド生成AI「イルシル」 この資料はイルシルを使って作られまし た。AIを活用して基本的な流れを生成 し、豊富なテンプレートによってただの 箇条書きスライドが魅力的になります 組織版ドクセル「Groupfile」 Groupfileはドクセルのスライド変換エ ンジンと、動画のホスティング機能を提 供しています。月4万円で人数無制限な ので全社のクラウドストレージでは使い づらい部署利用に最適です。 技術的なスライドの掲載はぜひドクセルをご利用ください。 また、その他のサービスもご紹介します 宣伝スライド ©2024 UPLUCID, K.K. All Rights Reserved.

Slide 49

Slide 49 text

お知らせ/クロージング Copyright © 2024, Oracle and/or its affiliates. 1

Slide 50

Slide 50 text

Copyright © 2024, Oracle and/or its affiliates. 2 実践 Kubernetes ハンズオン ~ OKEでKubernetesを体験しよう ~ (※隔月次開催) Oracle Cloudを題材に、Kubernetesを体験できるビギナー向けのハンズオン アジェンダ 1. Kubernetes / OKE,OCIR 概要説明 2. ハンズオン 1 ・OKEクラスターの作成と動作確認 など 3. Oracleが提供するCI/CSサービス 4. ハンズオン 2 ・OCI DevOpsのセットアップ など 5.まとめ 次回、9/27に開催予定

Slide 51

Slide 51 text

Copyright © 2024, Oracle and/or its affiliates. 3 OCI チュートリアル Oracle Container Engine for Kubernetes(OKE)でKubernetesを動かしてみよう https://oracle-japan.github.io/ocitutorials/cloud-native/oke-for-beginners/

Slide 52

Slide 52 text

Oracle Code Night オラクルのテクノロジーだけに限定しない、Developer(開発者)の Developer(開発者)による Developer(開発者)のための開発者向けコミュニティ Meetup セミナー Oracle Code online 開催情報は Connpass で公開中︕ oracle-code-tokyo-dev.connpass.com 過去開催 Oracle Code online は YouTubeにて公開中︕ youtube.com/c/JapanOracleDevelopers ほぼ毎週、さまざまなテーマで開催中!

Slide 53

Slide 53 text

No content