2.2K Views
August 08, 24
スライド概要
※2024/8/7実施のウェビナーのプレゼンテーション資料
Oracle社でクラウドサービスOCIの事業開発/プロダクト・マーケティングを担当(特にCloud NativeとOSSデータサービス分野)。同社日本でソーシャルでの顔の見える情報発信パーソン。クラウド業界を中心とした経歴はLinkedIn参照 ↓ ソフトウェア工学分野の修士号のホルダー LinkedIn: https://www.linkedin.com/in/rewtheblow/
Oracle Cloud ウェビナー OCIでコンテナを活用しコスト約65%削減! ユーザー数30万人超のスライドシェアサービス「ドクセル」の移行 日本オラクル株式会社 2024年8月7日
本セッションのアジェンダ 1. Oracle Cloud Native分野の概観 スピーカ:田中 隆三郎 (日本オラクル 事業戦略統括 担当ダイレクター) 2. OCIでコンテナを活用しコスト約65%削減! ユーザー数30万人超のスライドシェアサービス「ドクセル」の移行 スピーカ:川畑 雄補 氏 (株式会社アプルーシッド 代表取締役社長) 3. Q&A 4. お知らせ/クロージング 2 Copyright © 2024, Oracle and/or its affiliates.
Oracle Cloud Native分野の概観 3 Copyright © 2024, Oracle and/or its affiliates.
OracleのCloud Native /開発系ソリューションの特徴 開発・運用の全領域をカバー / 既存オンプレミスユーザーと新規クラウドユーザーをサポート / 開発者向けDBソリューション 既存 オンプレミス ユーザー Lift & Shift / Monitoring Notifications Events Logging Observability Streaming & Queue アプリケーション 実行基盤 Messaging モダナイズ アプローチ 統合型DB + トランザクショ ン・マネージャ Cloud Native 開発・運用の 全領域をカバー データ 管理 統合型 DB (Converged DB) MicroTx 4 Copyright © 2024, Oracle and/or its affiliates 新規 クラウド ユーザー コンテナ / サーバーレス / API管理 CI/CD / インフラ 運用自動化 DevOps Resource Manager Ansible サポート Container Instances Container Engine (OKE) WebLogic Server for OKE Functions API Gateway 開発 アプローチ
オープン標準/クラウド・オンプレミスの両環境を同一のテクノロジーでカバー … H/W : Oracle Private Cloud Appliance OS: Oracle Cloud Native Environment (OCNE) Oracle Linux オンプレミス 5 Copyright © 2024, Oracle and/or its affiliates CNCFにて推進する OSS 群 OCI Cloud Native サービス 群 Oracle Cloud Infrastructure クラウド
OCI Cloud Native Services Landscape OCI Cloud Native Landscape アプリケーション実行基盤 Container Engine for Kubernetes (Managed/Virtual Nodes) API管理 サービス間連携 オブザーバビリティ Notifications Monitoring Service Connector Hub Logging Container Instances Application Performance Monitoring Events Queue Streaming Oracle Functions OCI Core Infrastructure 6 Copyright © 2024, Oracle and/or its affiliates. Helidon MP/SE/Nima API Gateway メッセージング WebLogic Server for OCI/OKE 開発フレームワーク Micronaut 開発・運用管理ツール OCI DevOps OCI Registry Compute Database Resource Manager Network OCI Service Mesh Storage MicroTx
OCIでコンテナを活用し コスト約65%削減! ユーザー数30万人超の スライドシェアサービス 「ドクセル」の移行 ©2024 UPLUCID, K.K. All Rights Reserved. 公開版
本日のポイント 本日のウェビナーではこれらのポイントを重点的にお話しします POINT 01 Web業界でのインフラアーキテクチャのトレンド POINT 02 Cloud RunからContainer Instance含むOCIへの移行 POINT 03 コスト効果と開発生産性について disclaimer:本資料の作成にあたっては、正確な情報提供を心がけておりますが、本資料の完全性、正確性について一切の保証を行いません。 かならず最新版の情報をご自身で調査するようにしてください。本資料に登場するロゴ、商標、サービス名は各社の登録商標または商標です。 ©2024 UPLUCID, K.K. All Rights Reserved.
先ほどの図でいうとこのあたりのお話となります ©2024 UPLUCID, K.K. All Rights Reserved.
自己紹介 川畑 雄補 1983年生まれ、製作会社でWebエンジニア、iOSエンジニアを経てサ イバーエージェント・リクルートなどで新規事業の立ち上げやマーケ ティングを行う。DMMグループで暗号資産周りの事業にチャレンジし た後アプルーシッドを設立。 Oracle databaseを触ったのは8iが最後。ずっとMySQLばっかり。 ©2024 UPLUCID, K.K. All Rights Reserved.
当社について 株式会社アプルーシッドは代表の川畑を中心にパートナーと 新規事業に特化したDX・サービス運営に取り組んでいます 新規事業コンサルティング DXサービス 主にエンタープラ レンタルPdM、レ 金融(銀行・証 今回ご紹介するド その他Webサー 生成AI系サービス クセル ビスを複数 も取り組み イズ企業における ンタルCTO 券・保険)自動車 ほか 新規事業を支援 ©2024 UPLUCID, K.K. All Rights Reserved.
今回移行したドクセルについて ©2024 UPLUCID, K.K. All Rights Reserved.
今回移行したドクセルについて スライド共有サービス「ドクセル」は国産サービスとして 2021年3月にリリースして以降順調に成長いたしました 7,000超 20,000枚突破 アカウント数 約3割が法人・団体の利用 登録スライド数 全体公開スライドは約1万枚 9月 2022/4月 ©2024 UPLUCID, K.K. All Rights Reserved. 9月 2023/4月 9月 2024/4月
Google CloudからOCIに移行した理由 サービス開始から3年たち、利用者の増加とともにインフラコストが目立つよ うになってきた。さらに円高でコストアップは加速。移行先を探すことに しかし法人利用もあるため、あ まりセキュリティを下げるよう なインフラは選べない アーキテクチャの変更やCDNの 活用、事前確定割引も限界 ©2024 UPLUCID, K.K. All Rights Reserved.
前置き: エンタープライズシステムと サーバレスWebサービス ©2024 UPLUCID, K.K. All Rights Reserved.
サーバレスなWebサービス環境 昨今のWebサービス開発環境はサーバレス、エッジランタイムの普及により 旧来のオンプレと構成がかなりちがうようなサービスも広がっています CDN・エッジランタイム アプリケーション ©2024 UPLUCID, K.K. All Rights Reserved. データベース
サーバレスなWebサービス環境 特に新規事業は素早く立ち上げ、検証し、柔軟に 方向転換する必要があるため、「インフラ構築」 というステップを省くような構成が人気 コードを書くエンジニアが、管理画面でセットア ップし、SDKからコマンドをたたくとWebアプ リケーションがSSL付きで表示される、そこに DNSを割り当てると即サービスインできる アプリケーションとDBはインターネット越しに 別のデータセンターで通信するが、そのレイテン シはフロントアプリケーションの工夫でカバー ©2024 UPLUCID, K.K. All Rights Reserved.
なお、エンタープライズ環境での導入は ほぼ無理\(^o^)/ PoCでノーコードの一環としてはベンダー契約で可能かも ©2024 UPLUCID, K.K. All Rights Reserved.
では、なぜドクセルは「インフラ構築」が 必要なOCIに移行したのか?できたのか? ©2024 UPLUCID, K.K. All Rights Reserved.
従来のインフラとの比較 オンプレやIaaSと比べた場合開発生産性や変更の柔軟さは向上するものの、 維持費の高騰やサービスごとの制約に縛られる オンプレやIaaS スケールアウトしにくい コストが一定 構築しないといけない範囲 が多い いわゆるサーバレス系 スケールアウトが簡単 サービスごとのお作法・制 約がある コストの上がり方が急 つまり、立ち上げ期をこえてトラフィックが予測可能になってきた場合、サーバレスからIaaSに 移行することでコストパフォーマンスを向上させることができるはず。しかし・・・ ©2024 UPLUCID, K.K. All Rights Reserved.
コストは下げたいが、いまさら マネージドサービスの楽ちんさ 安心感からは抜け出せない! そこで・・・ ©2024 UPLUCID, K.K. All Rights Reserved.
Why OCI VPSやオンプレよりマネージドサービス(コンテナ・DB・Redis)が 充実し、その他のクラウドベンダーより圧倒的に低コスト 01 / VPSやオンプレ DBやキャッシュなど多くのサービスを自前で構築・保守する必要がある 02 / AWS / Azure / Google Cloud 現行の構成と比べてもコスト削減効果は見込めない 03 / いまどきのPaaSサービスの組み合わせ HA構成やセキュリティなど商用サービスを提供する要件ではメガクラウドより高コスト ©2024 UPLUCID, K.K. All Rights Reserved.
OCI環境へ移行しました Google CloudよりOCI Container Instanceを中心とした マネージドサービスで固めた環境に移行 ©2024 UPLUCID, K.K. All Rights Reserved.
Google CloudからOCIへの移行 Google CloudからOCIへの移行 CDN 内部ネットワーク アプリケーション ストレージ データベース キャッシュ キュー Google Cloud Cloud CDN / Firebase Hosting Serverless NEG Cloud Run Cloud Storage Cloud SQL (MySQL) なし Cloud Tasks ©2024 UPLUCID, K.K. All Rights Reserved. Oracle Cloud(OCI) Cloudflare / Bunny.net Network load balancer Container Instance Object Storage MySQL (MDS) OCI Cache OCI Queue
Cloud Runから Container Instanceへの移行 ©2024 UPLUCID, K.K. All Rights Reserved.
GoogleのCloud Runとは Cloud Runはコンテナイメージとスペックを指定して、1インスタンスで同時 にさばくアクセス数だけ決めておけば0台から無限にスケールする夢の技術 1 当然ながらフルマネージド 2 固有のURL割り当てですぐに確認 3 独自ドメイン割り当て、SSL発行可 4 各種メトリクス・ログエクスプローラ付き ©2024 UPLUCID, K.K. All Rights Reserved.
GoogleのCloud Runとは もちろんPaaSならではの制約もいろいろあるが、それで問題なくやってきた 1 ストレージはマウントできない 2 基本的に8080番へのHTTP通信のみ可 3 リクエストサイズや実行時間に制限あり 4 Google以外のCDNとの相性が悪い ©2024 UPLUCID, K.K. All Rights Reserved.
OCIのContainer Instanceとは OCIのサーバレス製品のうち、OKEとFunctionsの間くらいの製品 基本的に起動しっぱなし ドメイン・SSLは提供されない 自動でスケールしない ストレージはマウントできない 好きなスペックを選べる Computeの費用しかかからない ©2024 UPLUCID, K.K. All Rights Reserved.
OCIのContainer Instanceとは Cloud RunからContainer Instanceへ移行するときに 心配したことと、その検証結果 01 自動でスケールしないと困るのでは? 02 異なる環境下で同じように動作を保証できる? 03 デプロイがいちいち面倒なのでは? →固定数のインスタンスで問題ない →コンテナとMySQLだし問題ない →NodeJSのSDKでスクリプトを書いて解決 ©2024 UPLUCID, K.K. All Rights Reserved.
自動でスケールしなくても大丈夫? 自動でスケールしなくても大丈夫?→大丈夫 そもそもDBとご予算は自動でスケールしない 3年も運営していれば、 だいたいのトラフィック は予想できる Container Instanceはパ フォーマンスが高いので 固定台数で余裕 ©2024 UPLUCID, K.K. All Rights Reserved. 無限にスケールされても DBか予算が耐えられなく なる
異なる環境下で同じように動作を保証できる? 異なる環境下で同じように動作を保証できる? →コンテナなので基本的に問題ない Docker buildxでマルチアーキ イメージをビルド Googleのサービス認証系は個別対応 MySQLは5.7→8.0で若干大変だった PaaSとしての制約は同じか減った お得なAmpere A1インスタンス利用可 プライマリキー周りの課題があり、ドキュメ ントに従い対処 サービスアカウントの秘密鍵を使用 IPアドレスなど「Low-level」な操作が必要な 代わりに制約は減った。永続化ストレージが ないのも同じ ©2024 UPLUCID, K.K. All Rights Reserved.
標準化による恩恵 オープン&標準化により、システム固有の技術を導入していても、 互換性をほぼ気にすることなく最小の労力で移行できる CHECK ! こまかい挙動に違いはありつつも、基本的に同じ 動作、同じAPIが保証されているため移行が容易 コンテナも前述の差のみ、Object StorageもS3 互換APIのため99%スムーズに移行できた コンテナリポジトリへの登録など開発環境、スト レージのコピーなど周辺ツールのOSSも充実 ©2024 UPLUCID, K.K. All Rights Reserved.
移行の順番 移行に際しては、MySQL→アプリケーション回り→Queueとキャッシュの順で実施 Cloudflare Cloud CDN ② Container Instance Cloud Run Cloud Storage Cloud SQL ① MySQL DS Object Storage OCI Queue サンプル Cloud Run Queue worker ©2024 UPLUCID, K.K. All Rights Reserved. OCI Cache ③ ②
移行の順番 移行に際しては、MySQL→アプリケーション回り→Queueとキャッシュの順で実施 Cloudflare Cloud CDN Cloud Run Cloud Storage Container Instance ① MySQL DS Object Storage OCI Queue サンプル Cloud Run Queue worker ©2024 UPLUCID, K.K. All Rights Reserved.
移行の順番 移行に際しては、MySQL→アプリケーション回り→Queueとキャッシュの順で実施 Cloudflare ② Container Instance MySQL DS Cloud Tasks Object Storage サンプル ©2024 UPLUCID, K.K. All Rights Reserved. ②
移行の順番 移行に際しては、MySQL→アプリケーション回り→Queueとキャッシュの順で実施 Cloudflare Container Instance MySQL DS Object Storage OCI Queue サンプル ©2024 UPLUCID, K.K. All Rights Reserved. OCI Cache ③
ネットワーク周りの移行設計 Google Cloudでは基本的にIPアドレスを指定するのはDNSサーバのみ。 OCI移行時にはひさびさにネットワーク設計が必要に 本番公開前の 動作確認方法 Cloud Runではリビジョン ごとに専用URLが付与され ていた OCIではインスタンスにパブ リックIPをつけてIP制限で 動作確認 バージョン間のトラフィ ック振り分け Cloud Runでは管理画面で トラフィック割合を指定す るだけ OCIではNLBのバックエンド グループに割り当てて割合 指定 移行中のMySQLアクセス はインターネットを通る 東京同士ならそこまでレイ テンシはないし、Direct接続 するまでもない Cloud Run側は出口IPの固定 が必要 いろいろと面倒くさいが、Node JS SDKを使ったデプロイスクリプトを書くことで 基本的な本番アップ体験はGoogle Cloud時代と近いものに ©2024 UPLUCID, K.K. All Rights Reserved.
©2024 UPLUCID, K.K. All Rights Reserved.
Claude 3でコード生成→修正 流れ Claude 3でコードを書かせると、それっぽいコー ドが生成される(そのままでは動作しない) 生成されたメソッドやオブジェクトを鍵にリファ レンスを調べる(読みにくい) それでも動かないので、Webコンソールの通信を DeveloperToolで覗いてJSONコピー(動く) ©2024 UPLUCID, K.K. All Rights Reserved.
その他の移行 ObjectStorageの移行はQiitaなどのドキュメントを読めば 簡単にできましたが、Queueは苦戦 Storageの移行に 01 Object ついて queueとPull queue 02 Push のちがい Cloud Tasksは原則Push型のQueueサービス (というか指定したエンドポイントにHTTP Postを実行してくれる使い方) OCI queueは原則pull型キュー ワーカーからとりに行く部分の対応が必要 https://qiita.com/letian/items/937f8f6b69f7ee25d9c1 ©2024 UPLUCID, K.K. All Rights Reserved.
移行の難しかったところと解決策 ©2024 UPLUCID, K.K. All Rights Reserved.
移行の難しかったところ Pay as you go ア カウントの挙動が 謎 OCI独自の用語が 謎。コンパートメ ントとは? S3互換APIに CORSヘッダが対 応していない IAMがSQL文にな っていて謎かつス コープも不明 PHPのSDK・情報 がほぼない ©2024 UPLUCID, K.K. All Rights Reserved.
解決策は、営業さんに体制組んでもらいました OCI独自の概念、用語から専用のアカウント開設、その後の移行サポートまで お世話していただきました。比較的小規模な弊社でもガッツリはいっていただけました しかも前払いアカウントに一定額チャージするだけで無償でした ©2024 UPLUCID, K.K. All Rights Reserved.
実際の移行期間と効果は? 約65% Network 0 Egress 0.5x Computing 0.6x DB クラウド コスト削減 エンジニア1名が別案件を抱えながらで1か月ちょっと。OCIの練習や学習を加 えても3か月かからない程度で移行ができました。ういたコストで、これまで 導入していなかったRedis(OCIキャッシュ)も導入出来ました。 ©2024 UPLUCID, K.K. All Rights Reserved.
OCIに足りないもの 安定したサービスをコンテナを活用しコストパフォーマンスよく移行すること ができましたが、いくつか根本的な課題もありました。 便利系機能がかなり弱い SDK・APIドキュメントが 不十分 ネット上に情報が少ない たとえばCDN系は非常に弱く、 SSLをコンソール上で生成する こともできません。自前で生成 し定期的にアップロード・アタ ッチする必要があります。その ためCloudflareなど3rdPartyを 活用することになりました。 CognitoやFirebaseなど開発系 SaaSもほぼありません。 CI/CDを自動化する際や、コード からStorageやQueueなど認証が 必要なサービスを呼び出す際、 PHPはそもそもSDKがなく、そ の他の言語についてもドキュメ ントが少なく苦労しました。 中の人がスライドや技術ブログ で発信してくれてはいるもの の、個人開発者やベンダーによ る検証記事はまだまだ少ないた め、細かい部分でつまづく可能 性がある。その分営業・技術担 当の支援があるので本番はよい が、ちょっと遊んでみたい場合 に不便。 ©2024 UPLUCID, K.K. All Rights Reserved.
Q&Aタイム ©2024 UPLUCID, K.K. All Rights Reserved.
Q&A 01 / ほかの安いクラウド(中華系など)は比較したか 比較したが、機能面では豊富かつコストもセール実施で安いと感じたが、管理コンソールの不安定 さがあり候補から落とした(2つあるうちの1つを試してもう一つは試さず) 02 / Armアーキテクチャはもともと移行予定があったのか なかったが、移行前の検証時期にためしにビルドしたら問題なく動作したためそのまま採用した 03 / 実際の移行期間はどれくらいかかったか エンジニアが他の案件を抱えながら1か月ちょっと、停止時間は3時間×2回程度、賞味の作業時間 としてはフルタイム換算で1週間程度ではないか。それ以前にドクセル関係なしにOCIの練習は行っ ている。 ©2024 UPLUCID, K.K. All Rights Reserved.
宣伝スライド 技術的なスライドの掲載はぜひドクセルをご利用ください。 また、その他のサービスもご紹介します スライド生成AI「イルシル」 組織版ドクセル「Groupfile」 この資料はイルシルを使って作られまし た。AIを活用して基本的な流れを生成 し、豊富なテンプレートによってただの 箇条書きスライドが魅力的になります Groupfileはドクセルのスライド変換エ ンジンと、動画のホスティング機能を提 供しています。月4万円で人数無制限な ので全社のクラウドストレージでは使い づらい部署利用に最適です。 ©2024 UPLUCID, K.K. All Rights Reserved.
お知らせ/クロージング 1 Copyright © 2024, Oracle and/or its affiliates.
実践 Kubernetes ハンズオン ~ OKEでKubernetesを体験しよう ~ (※隔月次開催) Oracle Cloudを題材に、Kubernetesを体験できるビギナー向けのハンズオン アジェンダ 1. Kubernetes / OKE,OCIR 概要説明 2. ハンズオン 1 ・OKEクラスターの作成と動作確認 など 3. Oracleが提供するCI/CSサービス 4. ハンズオン 2 ・OCI DevOpsのセットアップ など 5.まとめ 次回、9/27に開催予定 2 Copyright © 2024, Oracle and/or its affiliates.
OCI チュートリアル Oracle Container Engine for Kubernetes(OKE)でKubernetesを動かしてみよう https://oracle-japan.github.io/ocitutorials/cloud-native/oke-for-beginners/ 3 Copyright © 2024, Oracle and/or its affiliates.
Oracle Code Night オラクルのテクノロジーだけに限定しない、Developer(開発者)の Developer(開発者)による Developer(開発者)のための開発者向けコミュニティ Meetup セミナー ほぼ毎週、さまざまなテーマで開催中! Ora cle Cod e on lin e 開催情報は Con n p a ss で公開中︕ oracle-code-tokyo-dev.connpass.com 過去開催 Ora cle Cod e on lin e は You Tu b eにて公開中︕ youtube.com/c/JapanOracleDevelopers