Upgrade to Pro — share decks privately, control downloads, hide ads and more …

IBM Cloud PLUS - #2 Object Storageの勘所

noggy33
February 20, 2023

IBM Cloud PLUS - #2 Object Storageの勘所

IBM Cloud PLUS - #2 Object Storageの勘所

noggy33

February 20, 2023
Tweet

More Decks by noggy33

Other Decks in Technology

Transcript

  1. 2 © 2023 IBM Corporation 本⽇のアジェンダ Ø 今回は、IBM Cloud Object

    Storageをテーマとして取り上げます。 Ø IBM Cloud Object Storageを利⽤するための基本から実践活⽤に必要な知識と、コードで管理や 運⽤などの操作を⾏うための⽅法をご紹介します。 タイムテーブル 内容 14:00-14:05 オープニング 14:05-14:15 1. IBM Cloud Object Storage の基本 14:15-14:35 2. 実践活⽤の検討ポイント 14:35-14:55 3. コードからの操作 14:55-15:00 まとめ&クロージング 本⽇のアジェンダ ※進捗状況により予定より早く終了する場合があります
  2. 3 © 2023 IBM Corporation IBM Cloud とは 企業の“Journey to

    Cloud”を⽀えるのがIBM Cloudです。基幹系システムを安⼼して稼働させるため のサービス群として、以下の特徴あるサービスを提供しています。 業界屈指のベアメタル・サービスの提供 とデータセンター間⾼速プライベート 回線の無償利⽤ 次世代ハイパースケール VPC Gen 2 (VSIで最⼤ 80Gbps, BMSで 最⼤100Gbps) 企業向け Kubernetes 基盤 1,000社, 16,000クラスター実績 170種類以上のサービスを提供 Watson, IoT, Blockchain Power Architecture を 東京/⼤阪リージョンから提供 VMware on IBM Cloud 2,000社を超える実績 コンテナ化された IBMソフトウェア IBM Cloud Paks 環境保護への取り組み 業界唯⼀のIBM Z環境、 FIPS 140-2 Level 4 認定の 鍵管理サービス SAP 認定のSAP on VMware 構成を 提供するパブリッククラウド IBM Cloud のサービスが オンプレ、エッジ環境でも利⽤可能 世界初⾦融サービス向け パブリッククラウド 分散クラウド IBM Cloud Satellite
  3. 1. IBM Cloud Object Storage の基本 4 © 2023 IBM

    Corporation IBM Cloud Plus #2 Object Storage の勘所
  4. 1. IBM Cloud Object Storage の基本 (1) クラウドのデータ・ストレージの種類 5 クラウド・サービスのデータ・ストレージの代表的なものとして、ファイル・ストレージ、ブロック・ストレージ、そして今回紹

    介するオブジェクト・ストレージの3つの形式があります。ストレージ形式により、データを保持、整理、提⽰する⽅法が異な り、それぞれ固有の機能と制限があります。 © 2023 IBM Corporation ü データをツリー構造のフォルダー内に ファイルとして管理 ü ⼈間にとって直感的で扱いやすい ü ⼤規模なデータや⾮構造データの管理 には不向き ファイル・ストレージ ブロック・ストレージ オブジェクト・ストレージ 特徴 プロトコル 主な ⽤途 NFS, CIFS, SMB ü 複数クライアントでデータを共有する⽤ 途で利⽤ ü ⼤規模なデータ利⽤や⾮構造化データの 管理には不向き ü ファイルサーバ、データアーカイブなど イメージ ü 記録領域をボリュームに分割し、ボ リューム内部を固定調のブロックに分 割して管理 ü 各データブロックには⼀意の ID が付 与され、⾼速にデータ・アクセス ü ファイルをオブジェクト単位で管理 ü すべてのオブジェクトはフラットな構 造を採⽤で拡張性が⾼い ü レスポンスタイムは⽐較的遅め FC, FCoE, iSCSI ü ⾼効率なパフォーマンスを求められるア プリケーションに向いている ü データベース、基幹業務APなど HTTP(S) ü バックアップや⼤容量コンテンツの保 存、配信などの⽤途で利⽤ ü クラウドネイティブアプリケーション、 ⻑期保存が必要なデータアーカイブなど ID ID ID ID 🎬 🎤 🎵 📝
  5. 1. IBM Cloud Object Storage の基本 (2) オブジェクト・ストレージの特徴 6 オブジェクト・ストレージは、⽂章、写真、PDF、動画、バックアップなど、いかなるフォーマットでも、オブジェクトとして格

    納できる⾮定型データ⽤のストレージです。静的データの⻑期保管、メディア・オブジェクトの保管、メディアの配信などに利⽤ されています。 © 2023 IBM Corporation n オブジェクト・ストレージの特徴 ü データとメタデータを併せてオブジェクトを管理 • メタデータはユーザーが⾃由に登録することができ、⾼い柔軟性があります ü オブジェクト固有のID(URI)を持ち、RESTful APIでアクセス • オブジェクトの読み込みにはGET、書き込みにはPOSTリクエストが利⽤されます ü オブジェクトの直接更新や上書きは不可 • オブジェクトの更新では、新しいデータの書き込みと古いデータの削除が組み合わせて⾏われます ü オブジェクトはバケットと呼ばれる空間にフラットな構造で管理 • フォルダなどのツリー構造は持ちません • Prefixを利⽤して擬似的に階層構造を表現できますが、実際にはツリー構造のフォルダが存在する訳ではありません ü 同じデータを複数のストレージに分散して保存 • RAIDなどの⾼可⽤性技術を別途⽤意する必要はありません ü データの部分的な読み込みは不可 • 頻繁な更新が必要なデータベースや⾼速なI/Oが必要になる処理には不向きです スケーラビリティ 複雑さを軽減 検索の容易性 復元性 ⾼い費⽤対効果 オブジェクト・ストレージ のサイズは本質的に無制限 で、新しいデバイスを追加 するだけで容量をスケール できる 複雑なツリーやパーティ ションがないため、正確な パスを知る必要がく、ファ イルを簡単に取得できる メタデータで、オブジェク トを簡単に検索と移動を⾏ うことができる データを⾃動的に複製して、 複数のデバイスやロケー ションに保存しており、 サービス停⽌やデータ損失 を防ぐ ファイルベースやブロック ベースのシステムよりも低 価格で⼤量のデータを保存 できる オブジェクト・ストレージのメリット
  6. 1. IBM Cloud Object Storage の基本 (3) IBM Cloud Object

    Storage の概要 7 IBM Cloud Object Storage は IBM Cloud のオブジェクト・ストレージ・サービスです。ICOSと略称されることもあります。 ⾼い回復性と可⽤性を備えており、⽤途に応じたストレージクラスを使い分けることができるコスト効率の⾼いストレージです。 © 2023 IBM Corporation 主な特⻑ • ⾼い回復性と可⽤性 – 保存データは3ヵ所以上で⾃動的に分散保管 – 99.9999999999999 (15 nine) の耐久性 – 保存データは⾃動的に暗号化 • コスト効率の⾼いストレージ – 1GB/⽉ を数円から使える安価な従量課⾦ – GB から EB (エクサバイト) 超の拡張性 – 最⼤ 25 GB/⽉まで無料なライトプラン • 多様な接続性 – S3 互換 API のため、資格情報およびエンド ポイントを既存ツールの連携に利⽤可能 – プライベートエンドポイントの提供により、 セキュアかつ無制限な帯域幅を利⽤可能 例 : 「Regional – 東京」における分散保管 ※ バケット名は、全てのアカウントを通じてユニークな値を設定する必要があります。 ※バケット数は最⼤100ですが、バケットあたりのオブジェクト数は無制限です。1オブジェクトの最⼤サイズは、10TBです。
  7. 1. IBM Cloud Object Storage の基本 (4)インフラストラクチャー 8 ICOSのインフラストラクチャーとして「IBM Cloud」もしくは「Satellite」を選択できます。IBM

    Cloudのデータセンターのみ を利⽤する場合は「IBM Cloud」を選択します。 「Satellite」はIBM Cloud Satelliteのロケーションを利⽤する場合に選択しま す。 「IBM Cloud」を選択した場合は、⽤途に適したプランを選択できます。「Lite Plan」は25GBまで無償で利⽤可能ですが制限も あるため、通常は「Standard Plan」を選択することになります。Outboundの量が多いユースケースには「One Rate Plan」が適 しています。 © 2023 IBM Corporation Ø IBM Cloud p Lite Plan • 25GBまで利⽤可能な無償プラン p Standard Plan • ⼀般的な⽤途で利⽤ • レジリエンシー: Cross Region / Regional / Single Site • ストレージクラス: Smart Tier /Standard / Vault / Cold Vault p One Rate Plan • ⼤量のOutbound bandwidthが発⽣する際に最適 • レジリエンシー: Regional / Single Site • ストレージクラス: Active Tier • Outbound bandwidthがストレージ容量分無料。 それ以上のOutbound bandwidthが発⽣してもGB単位あたりの転送料課⾦がStandard Planより安い。 Ø Satellite p Satellite locationおよびStorageのキャパシティー(Small/Medium/Large/X-Large)を選択
  8. 1. IBM Cloud Object Storage の基本 (5)レジリエンシーとロケーション 9 ICOSでは、⽤途に応じたレジリエンシーとロケーションを選択することで、適切なデータ保管場所を選択できます。 l

    Cross Region – 1 つの Geo 内の 3 つのリージョンにまたがって保管され、最も可⽤性と回復性のバランスに優れます。 l Regional – 1 つのリージョン内の複数のゾーンにまたがって保管され、最も可⽤性とパフォーマンスのバランスに優れます。 l Single Site – 1 つのデータセンター内の複数のデバイスにまたがって保管され、最も局地性に優れます。 © 2023 IBM Corporation AP Cross Region EU Cross Region Toronto US Cross Region London Dallas Washington DC Frankfurt Chennai Amsterdam Sao Paulo Tokyo San Jose, CA Milan Montreal Sydney Osaka Singapore Paris
  9. 1. IBM Cloud Object Storage の基本 (6)ストレージクラス 10 ICOSでは、お客様のデータ利⽤パターンに合わせた多様なストレージ・モデルを提供しています。 Smart

    Tierを使⽤すると、ストレージのアクティビティーをモニターすることなく、ストレージ・クラス間でデータを移動するこ ともなく、毎⽉のアクティビティーに基づいて最適なコストが適⽤されます。 © 2023 IBM Corporation Storage Class Smart Standard Vault Cold Vault データ特性 アクセス頻度が動的または予測不可能 アクセス頻度が⾼い よりアクセス頻度が低い 最⼩限のアクセスでよい 主な⽤途 クラウドネイティブ、AI アプリなど コラボ、ファイル共有など バックアップ、災害対策など アーカイブ、監査ログ保管など アクセス頻度 使いたいときに使いたいだけ ⽉に複数回 ⽉に1回、またはそれ以下 3ヶ⽉に1回、またはそれ以下 最低保管期間 なし なし 30⽇ 90⽇ 最低オブジェクトサ イズ なし なし 128 KB 256 KB データ保管料⾦ Hot, Cool, Cold の料⾦レートに⾃動分類し、 毎⽉のストレージコストを最適化 ※コスト最適化機能に追加料⾦はなし ⾼い 普通 安い データ読出料⾦ なし 無料 安い ⾼い
  10. 1. IBM Cloud Object Storage の基本 (7)料⾦設定 11 ICOSの料⾦は、毎⽉の平均保管データ量、使⽤されたパブリック・アウトバウンド帯域幅の量、および運⽤上の処理要求の総数 によって決まります。データの転送にAsperaを使⽤する場合は、Asperaの転送量に応じた料⾦が加算されます。

    平均保管データ量の料⾦は、ストレージクラスによって異なります。各ストレージクラスの請求は、同⼀のインスタンスに含まれ るバケットの使⽤量の合算に基づいて⾏われます。 © 2023 IBM Corporation 平均保管データ量 パブリック・アウトバウンド 帯域幅の量 運⽤上の処理要求の総数 ü 6種類のストレージクラスに応じた料⾦が設定されている ü Smartの場合は、データへのアクセス頻度に応じて、Hot、Cool、Coldに分類され、それぞれ料⾦が設定さ れている ü Standard, Vault, Cold Vaultの場合は容量に応じて料⾦が変動する ü 499.99TBまでと500TB以上で段階的に料⾦が変動する(容量多くなると下がる) ü パブリック・アウトバウンドの単価は利⽤した帯域幅の量に応じて変動する ü 50TBまで、次の100TBまで、次の300TBまでで段階的に料⾦が変動する(転送量が多くなると下がる) ü 転送量が500TBを超える場合の料⾦は個別相談となる ü ストレージクラスの違いによる単価の違いはない ü 運⽤上の処理要求はクラスA、クラスBの2種類があり、料⾦が異なる ü クラスAは、PUT、COPY、POSTリクエスト、およびバケットとオブジェクトの⼀覧表⽰に使⽤されるGET リクエスト ü クラスBは、⼀覧表⽰を除くGET、およびOPTIONSリクエスト ü ストレージクラスがVaultとCold Vaultの場合、データ取得に費⽤が加算される Aspera 転送 Egress ü アップロードは無料だが、ダウンロードは有料 ü Asperaの転送量の単価は利⽤した帯域幅の量に応じて変動する ü 50TBまで、次の100TBまで、次の300TBまでで料⾦が変動する(転送量が多くなると下がる) ü 転送量が500TBを超える場合の料⾦は個別相談となる ü ストレージクラスの違いによる単価の違いはない
  11. 1. IBM Cloud Object Storage の基本 (8)SLA 12 ICOS の

    SLA は、IBM Cloud共通のSLAとは異なり、IBM Cloud Object Storage サービス記述書にストレージクラスごとに記載さ れています。 © 2023 IBM Corporation 最新情報・詳細条件等については、下記リンクより、ご確認ください。 IBM Cloud サービス記述書: https://www-03.ibm.com/software/sla/sladb.nsf/sla/bm § SLA は稼働保証ではなく、停⽌時間に応じた払い戻し(クレジット発⾏)の基準(ルール)です – 翌⽉(もしく翌々⽉)の請求分から払戻の分を差し引く形で処理がされます。 – あくまでも「マイナス請求対応」であり、単純な払い戻しは⾏われません。 (つまり請求⾦額がそもそもゼロ円の場合、返⾦はされません) – クレジット発⾏の⼿続きは、サービス記述書に記載のある期限内で アカウント管理者がチケットで依頼する必要があります。 https://www-03.ibm.com/software/sla/sladb.nsf/pdf/7857-05/$file/i126-7857-05_02-2020_ja_JP.pdf
  12. 1. IBM Cloud Object Storage の基本 (9)ICOSへのアクセス⽅法 13 ICOS のアクセス⽅法として考慮すべきポイントは「エンドポイント情報」、「認証⽅式」、「アクセス⽅式」の3つあります。

    © 2023 IBM Corporation 1. エンドポイント情報(接続先URL情報) Regional/Cross Regional/Single DC/EU-Managed によって接続先情報は異なります。以下を参照してください。 https://cloud.ibm.com/docs/services/cloud-object-storage?topic=cloud-object-storage-endpoints 2. 認証⽅式 • IAM Token: IBM Cloudが発⾏するIAM Tokenを利⽤するアクセス⽅式。 • HMAC資格情報: ID/Password⽅式でのアクセス⽅式。 (詳細は「IBM Cloud 柔らか層本」の「サービス資格情報を使った S3 互換ツール連携」を参照してください。) 3. アクセス⽅式 ICOSへのアクセス⽅法は以下の2つがサポートされています。仮想ホスト形式でのアクセスが推奨されています。 Ø 仮想ホスト形式(推奨) https://<bucket>.<endpoint>/<object> Ø パス形式 https://<endpoint>/<bucket>/<object>
  13. 1. IBM Cloud Object Storage の基本 (10)オブジェクトの操作 14 ICOSでは、ファイルをバケットにアップロードしたり、その他操作を⾏うために複数の⽅法が提供されています。 ©

    2023 IBM Corporation IBM Cloud コンソール 互換性のあるツール APIとSDK ü コンソールでバケットを表⽰して、画⾯上でオブジェクトを操作できる ü 標準の転送⽅法でのアップロードではオブジェクトは200MBに制限されている (200MBのオブジェクトもアップロードできるが⾮推奨) ü ビデオやオーディオなどの⼤容量ファイルの転送にはAsperaの利⽤が推奨される ü ICOSのAPIは、S3 APIの操作の⼀般的なセットをサポートしている ü 多くのS3互換ツールで、HMACクレデンシャルを利⽤して、ICOSに接続できる ü 例えば、Cyberduck や Transmit などのファイル エクスプローラー、Cloudberry や Duplicati などのバッ クアップ ユーティリティ、s3cmdやMinio Clientなどのコマンドラインユーティリティなどがある ü ICOSを利⽤するほとんどのアプリケーションはSDKまたはAPIを使⽤する ü SDKは、Java、Node.js、またはPythonなど、複数の⾔語に提供されている ü Aspera Transfer SDKを利⽤して、Asperaによる転送も可能 IBM Cloud CLI ü サーバーやローカルPCにIBM Cloud CLIとCOSプラグインをインストールしてICOSを操作できる ü コマンドラインでICOSのオブジェクトを操作できるようになる ü Shell ScriptなどでICOSのオブジェクトの操作を⾃動化したい場合に便利
  14. 1. IBM Cloud Object Storage の基本 (11)Asperaによる⾼速転送 15 標準の転送⽅法よりも⾼速にICOSのバケットにデータを移⾏できるようになります。 Aspera

    では、特許取得済みの FASP プロトコルで転送を⾏うため、距離による Latency に影響を受けません。 しかも、ICOS へアップロードする際の 利⽤料⾦は無料です。 ※取り出し(ダウンロード)時は有料 © 2023 IBM Corporation メディアファイル ディスクイメージ ⾮構造化データなど ⾼速転送 ※ Aspera クライアントもしくは Aspera SDK (いずれも無償)をインストールすることで利 ⽤できる ※ 転送中のデータは暗号化される ※ データ取り出し時は、Aspera利⽤料に加えて、パブリック・アウトバウンド料⾦とICOS のREAD料⾦がかかる
  15. 2. 実践活⽤の検討ポイント (1)オブジェクトの暗号化 17 通常 ICOS に保管されたデータは、IBM が管理するデータ暗号鍵(DEK)によって暗号化されています。 Key Protect

    / Hyper Protect Crypto Services で発⾏されるルート鍵で DEK を暗号化することで、データ暗号化に関するマス ター鍵はお客様主体の管理となり、BYOKとしてコンプライアンスに準拠した運⽤が可能です 。 © 2023 IBM Corporation p Key Protect / Hyper Protect Crypto Services と統合するには、バケット作成時に指定する必要があります。
  16. 2. 実践活⽤の検討ポイント (2)オブジェクトのアーカイブ 18 テープアーカイブのように⻑期保管が必要なデータは「アーカイブ・ルール」で、より低価格な保管を実現できます。また、「有 効期限ルール」で不要なデータの期限を設定し、削除を事前にスケジュールしておくことで、コストを最適化できます。 「アーカイブ・ルール」と「有効期限ルール」と組み合わせることでポリシーベースのライフサイクル管理が可能です。 © 2023 IBM

    Corporation Standard Active Archive Expiration 任意のストレージクラスに 対してバケット単位で設定 l アーカイブ・ルール – 経過⽇数後に安価な Archive に移⾏する機能(最⻑10年) – 0⽇と設定することで即時アーカイブも可能 – 指定した期間中、オブジェクトのコピーが復元可能 – 復元時間は都度延⻑が可能。(最⻑10年) – “Accelerated Archive”, “Archive” で復元時間を選べます Restore l 有効期限ルール – 経過⽇数または特定の⽇付に削除する機能(最⻑10年) – prefix を使って特定の対象に絞ることができます – オブジェクトごとの適⽤ルール・削除⽇は ヘッダの「x-amz-expiration」で確認できます Expiration Archive ”cold” Accelerated Archive “warm” 復元に最⼤ 2 時間 復元に最⼤ 12 時間
  17. 2. 実践活⽤の検討ポイント (3)オブジェクトの保護 19 ICOSでは、追加費⽤なしで、⼀定期間データの変更または削除の防⽌を実現できます。 例えば、訴訟、監査、司法調査には「関連した全ての資料・情報をそのままの状態で安全に保存する」ことが必要です。 また、⾦融、ヘルスケア、メディアアーカイブ、政府など、特権的な変更または削除を防ぐための規制要件を満たせます。 © 2023 IBM

    Corporation Ø Retention Policy (保存ポリシー) ü バケット単位で、最⼩/最⼤/デフォルトの保護期間を設定可能 ü オブジェクト単位で適⽤する保護期間を最⼩から最⼤の間で設定可能(必要に応じて延⻑可能) ü オブジェクト単位で⼀時的なリーガルホールドフラグを設定可能 ü 保護期間切れ、かつ全リーガルホールド削除時に、オブジェクトを削除/上書き可能(それ以外は、削除/上書き不可 ) ü バケットは、全オブジェクト削除後にのみ削除可能 ü Permanent Retention を有効にすることで、 永久的な保護が可能(永久に削除不可)
  18. 2. 実践活⽤の検討ポイント (4)オブジェクトのバージョン管理 20 ICOSではバケットに格納したオブジェクトをバージョン管理することができます。 © 2023 IBM Corporation 主な特徴

    • ICOS上に保管されたオブジェクトをバージョン管理 • オブジェクトを同じ名前でアップロードすると、これ までのオブジェクトは保持される • オブジェクトを削除した場合も、これまでのオブジェ クトは保持される • 過去世代のオブジェクトを削除したい場合はversion IDを指定して削除する • バケット単位で有効化。バケットに含まれるすべての オブジェクトがバージョン管理される ※ 「アーカイブ・ルール」と「有効期限ルール」は、保持され ているバージョンのオブジェクトそれぞれに作⽤します。 ※バージョン管理が有効なバケットでは、保存ポリシーを利⽤ できないので注意が必要です。
  19. 2. 実践活⽤の検討ポイント (5)オブジェクトのレプリケーション 21 ICOSのバケットに格納されたオブジェクトを別のバケットにレプリケーションすることができます。 © 2023 IBM Corporation 主な特徴

    • バケット間の⾮同期レプリケーション • レプリケーション先は、同⼀ロケーションのバケットでも、異なる ロケーションのバケットでも良い • レプリケーション先は、異なるResiliencyでもよい(例:Cross Region ICOSからRegional ICOSへのレプリケーションなど) • レプリケーション先は、異なるストレージポリシー(Smart Tier/Standard/Vault/Cold Vault)でも良い • レプリケーション先は、異なるアカウントでも良い • メタデータ(objectの作成⽇など)もレプリケーションの対象 • 双⽅向のレプリケーションも可能 • フィルター(prefixもしくはタグを利⽤)を設定して、特定の条件 に適合したobjectだけをレプリケーション対象にすることも可能 • レプリケーションに伴うAPI呼び出し(PUT, GET, HEAD)に対しては 課⾦されるが、データ転送量については課⾦対象外 ※レプリケーション元、レプリケーション先ともに、バージョンニングが構成されている必要があります。⼀⽅で、retention policy(Immutable Objectの構成)を利⽤していると versioningは利⽤できません。retention policyは⼀度作成してしまうと削除することはできないため、retention policyを構成したバケットはレプリケーションできません。
  20. 2. 実践活⽤の検討ポイント (6)バケットのアクセス制御 22 ICOSでは、バケットへのアクセスを制御するために、指定したIPアドレスからのみアクセスを許可する「バケットファイア ウォール」や、ネットワークゾーンやエンドポイントのタイプなどのコンテキストに応じてよりきめ細かいアクセス制御を実現で きる「コンテキストベースの制限」を利⽤することができます。 現在は、 「コンテキストベースの制限」の利⽤が推奨されています。 ©

    2023 IBM Corporation バケットファイアウォールの主な特徴 • allowlist⽅式(指定したIP subnetからのアクセスのみを 許し、それ以外からのアクセスは禁じる) • ICOS Firewallの設定がない場合は、全てのsubnet からのアクセスを許可 • IPv4/IPv6に対応 • バケットごとのルール指定 • 設定にはバケットへのManager権限が必要 Private NW(10,0.0.0/8)からしかアクセスさせないように構成した例 コンテキストベースの制限の主な特徴 • どのリソース対して、どのコンテキストからのアク セスを許可するかを定義する • コンテキストはIPアドレス、VPC、サービスなど⽬ 的に応じて指定可能 • IPアドレスの指定はIPv4/IPv6に対応 • バケットごとのルール指定 • 設定にはAdministrator権限が必要
  21. 2. 実践活⽤の検討ポイント (7)パブリック・アクセスと静的Webサイトホスティング 23 ICOSでは、パブリック・アクセスを設定して認証なしでオブジェクトにアクセスできるようにしたり、静的Webサイトホスティ ングを有効化して静的コンテンツをインターネットに配信することができます。 © 2023 IBM Corporation

    パブリック・アクセスの主な特徴 • ICOSにアクセスするにはデフォルトでは必ず認証が必要に なるが、この設定をすることで認証なしにアクセスすること が可能 • IAMの"Content Reader"権限を利⽤ • バケット単位、オブジェクト単位で設定が可能 • 簡易な静的Webホスティングに利⽤可能 • ICOS Firewallと組み合わせると、特定のIPからのアクセス にのみ認証なしでアクセスさせるといった使い⽅も可能 静的Webサイトホスティングの主な特徴 • ICOS上に保管された静的コンテンツ(*.html, *.js, *.cssおよ び画像・動画ファイル)を、外部向けに公開可能 • オプションで、エラー⽤ページの作成や、ステータスコー ドに応じたredirectも可能 • 以下を組み合わせることで、サーバーレスなWebサーバー を構築可能 • CISのDNS機能(CNAME)やWAF, CDN機能 • ICOS: IP Firewall機能 • ICOS: パブリック・アクセス機能 エラー⽤ページの設定
  22. 2. 実践活⽤の検討ポイント (8)バケット・アクセス・ポリシー 24 バケットレベルでアクセスポリシーを設定し、権限/ロールを割り当て、ユーザー/アプリの実効可能な操作を制御できます。 © 2023 IBM Corporation ユーザー

    アプリ Manager Writer Reader Content Reader 許可 or 拒否 OK OK OK Fiirewallで制御 実⾏可能な操作 IAM ポリシーロール 対象 アサイン 実⾏可 IBM Cloud Object Storage バケットに対して IP Firewall バケット 新しい バケット • IP Firewall の構成 • 保存ポリシーの構成 • 「バケット作成」以外の 「Writer」操作 • バケット作成 • オブジェクトの CRUD 操作 • バケット構成の変更 • 「バケットのリスト」以外の 「Reader」操作 • バケットのリスト • バケット構成の読み取り • オブジェクトのリスト • オブジェクトの読み取り • オブジェクトの読み取り パブリック アクセス 許可 or 拒否 Fiirewallで制御 許可 or 拒否 Fiirewallで制御 許可 or 拒否 Fiirewallで制御
  23. 2. 実践活⽤の検討ポイント (9)監査ログの保管 25 バケットの作成、オブジェクトのリスト、オブジェクトのアップロードなどの監査ログを IBM Cloud Activity Trackerに保管でき ます。監査ログを確認すると、データに対して誰が、いつ、何をしたかについての情報収集とトラッキングを⾏うことができま

    す。 © 2023 IBM Corporation イベントタイプ 対象操作 備考 グローバルイベント • すべてのバケットをリスト表⽰ • バケットの作成 • バケットの削除 • フランクフルトにある Activity Trackerに保管 • グローバルイベントを保管するには Activity Trackerを フランクフルトに作成する必要がある 管理イベント バケットまたはオブジェクトに対する管理操作 • CORS 設定の作成 • Archive Rule、Retention Policy の作成 • バケットのリソース設定APIの操作 など • バケットごとに設定された Activity Trackerに保管 • バケットごとに Activity Trackerを設定するとき、 • UI では、バケットと同⼀もしくは最寄りのロケーションが⾃動で割当 • API では、任意のロケーションを割当可能 データイベント バケットまたはオブジェクトに対するデータ読み書き操作 • オブジェクトのリスト表⽰ • オブジェクトの読み取り • オブジェクトの作成 • オブジェクトの削除 など • 管理イベントと同⼀ロケーションのActivity Trackerに保管 • 以下の対象に設定するオプションが選択可能 • 読み取りのみ • 書き込みのみ • 読み取り & 書き込み
  24. 2. 実践活⽤の検討ポイント (10)IBM Cloud Data Engine (旧称: SQL Query) 26

    ICOS と IBM Cloud Data Engineを使うことで、データ保管から分析までを、サーバーレスで迅速かつ簡単に実現できます。 また、分析済みのデータは Watson Studio を使って、ビジュアライズするといった連携も可能です。 © 2023 IBM Corporation 主な特⻑: • セットアップ不要なサーバーレス • データの場所を問わずクエリで問い合わせが可能 • CSV / JSON / Parquet / ORC などの形式に対応 • 1⽇30GBまでのスキャンが無料なライトプラン • 内蔵メタストアを活⽤したテーブルカタログ機能 表の定義(メタデータ)を格納する Hive メタストア が同梱(カタログ機能) 2. データの読み取り 4. クエリ結果の読み取り アプリケーション / Data Engine UI 3. 結果の書き込み IBM Cloud Object Storage (データストア) Result Set CSV JSON Parquet 1. SQL の送信 Data Engine ※ クエリは SELECT ⽂のみが実⾏できます。 ※ 現在はダラス、フランクフルト でのみ提供中です。
  25. 3. コードからの操作 (1)コードで操作する⽅法 28 ICOSはWeb UIで操作することもできますが、多くの場合はコードを介して操作することになります。代表的な ものとして、「構成管理ツール」や「SDK/API」、「IBM Cloud CLI」を使う⽅法があります。 ⽬的に適した⽅法を選択することで、ICOSの構築や運⽤管理を効率化することができます。

    © 2023 IBM Corporation 構成管理ツール SDK/API ü いわゆるIaCのツールでICOSを操作可能 ü IBM Cloud Schematicsを利⽤すれば簡単に環境構築 などを実施できる ü Schematicsを使わず 、IaCツール単体での操作も可能 ü プログラム⾔語に応じたSDKを提供 ü SDKの実態はAPIコールのラッパー ü SDKの種類によって対応していない操作もある (基本的な操作はどのSDKでも対応) ü ICOSのインスタンスやバ ケットの作成 ü プログラムからのオブジェク トの操作 ü バケットの作成も可 概要 主な⽤途 ü IBM Cloud Schematics (Terraform, Ansible) ü Schematicsなしの Terraform, Ansible ü IBM COS SDK (Java, Python, Node.js, GO) ツール IBM Cloud CLI ü サーバーやローカルPC、またはIBM Cloud Shellから Object Storage を操作 ü CLIはMacOS, Windows, Linuxにインストール可 ü IBM Cloud Shellではインストール不要で利⽤可 ü ワンタイムのオペレーション ü Shell Scriptによる⾃動化 ü IBM Cloud CLI + Object Storage Plugin
  26. 3. コードからの操作 (2)IBM Cloud CLIによる操作 29 ü ICOSのインスタンスを作成する ü バケットを作成する

    ü オブジェクトをアップロードする ü オブジェクトをダウンロードする ü オブジェクトを削除する © 2023 IBM Corporation ibmcloud target -r ja-tok ibmcloud target -g Default ibmcloud resource service-instance-create my-icos-01 cloud-object-storage standard global ibmcloud resource service-instance my-icos-01 ibmcloud cos config crn --crn [crn] --force #[crn]は上記のコマンドで取得したものを設定 ibmcloud cos bucket-create -bucket my-icos-01-bucket-01 ibmcloud cos buckets echo test > ./test.txt ibmcloud cos object-put -bucket my-icos-01-bucket-01 -key test/test/test.txt -body test.txt ibmcloud cos objects --bucket my-icos-01-bucket-01 mkdir ./download && cd $_ && pwd ibmcloud cos object-get -bucket my-icos-01-bucket-01 -key test/test/test.txt test.txt ls -la ibmcloud cos object-delete -bucket my-icos-01-bucket-01 -key test/test/test.txt ibmcloud cos objects --bucket my-icos-01-bucket-01
  27. 3. コードからの操作 (3)Schematics(Terraform)による操作 30 terraform { required_providers { ibm =

    { source = "IBM-Cloud/ibm" version = "~> 1.50.0" } } } provider "ibm" { region = "jp-tok" } data "ibm_resource_group" ”cos_group" { name = ”Default" } resource "ibm_resource_instance" ”cos_instance" { name = " my-icos-02" service = "cloud-object-storage" plan = ”standard" location = "global" resource_group_id = data.ibm_resource_group.cos_group.id } © 2023 IBM Corporation resource "ibm_cos_bucket" "my-icos-01-bucket-01" { bucket_name = "my-icos-01-bucket-01" resource_instance_id = ibm_resource_instance.cos_instance.id region_location = "ja-tok” storage_class = ”smart” archive_rule { rule_id = "a-bucket-arch-rule" enable = true days = 0 type = "GLACIER" } expire_rule { rule_id = "a-bucket-expire-rule" enable = true days = 30 prefix = "logs/" } } プロバイダの 設定 リージョンの 設定 リソースグ ループの設定 ICOSインスタ ンスの作成 バケットの作成
  28. 3. コードからの操作 (4) SDK(python)による操作 31 © 2023 IBM Corporation import

    ibm_boto3 from ibm_botocore.client import Config, ClientError import os import json import glob # Get from Configmap on Kubernetes COS_ENDPOINT = os.getenv('COS_ENDPOINT') COS_AUTH_ENDPOINT = os.getenv('COS_AUTH_ENDPOINT') COS_RESOURCE_CRN = os.getenv('COS_RESOURCE_CRN') COS_BUCKET_LOCATION = os.getenv('COS_BUCKET_LOCATION') COS_HLS_BUCKET = os.getenv('COS_HLS_BUCKET') # Get from Secrets on Kubernetes COS_API_KEY_ID = os.getenv('COS_API_KEY_ID') # Create resources cos = ibm_boto3.resource("s3", ibm_api_key_id=COS_API_KEY_ID, ibm_service_instance_id=COS_RESOURCE_CRN, ibm_auth_endpoint=COS_AUTH_ENDPOINT, config=Config(signature_version="oauth"), endpoint_url=COS_ENDPOINT ) def download_item(bucket_name, item_name): # ⼊⼒元のディレクトリが存在しない場合は作成する try: if not os.path.exists(INPUT_PATH): os.mkdir(INPUT_PATH) print("Created Input Directory: {0}".format(INPUT_PATH)) except Exception as e: print("Failed to create INPUT DIRECTORY - {0}".format(e)) # 変換元となるファイルのダウンロードする先を設定する file_path = INPUT_PATH + item_name.split("/")[-1] # 変換元となるファイルをダウンロードする try: cos.Object(bucket_name, item_name).download_file(file_path) print("Download succeed !!") except ClientError as be: print("CLIENT ERROR: {0}¥n".format(be)) except Exception as e: print("Unable to retrieve file contents: {0}".format(e)) ダウンロード 処理 COSのインス タンスに接続
  29. 3. コードからの操作 (5) ICOSを利⽤したサービスの実装例 32 ICOSとCode Engineなどのサービスを連携して、クラウド・ネイティブなサービスを実装することもできます。 ここでは、ICOSへの動画ファイルのアップロードをトリガーとして、ストリーミング⽤に変換されたものを、ICOSからストリー ミング配信する流れを、サーバレスで実装する仕組みを例⽰しています。 ©

    2023 IBM Corporation 変換前 バケット 変換後 バケット ビルド 変換ジョブ ICOS Container Registry Code Engine Github Code Repository Private Registry IBM Cloud ②⾃動実⾏ (2)コード取得 (3)イメージ登録 開発者 管理者 利⽤者 (1)変更 ③イメージ取得 配信⽤ バケット 配置ジョブ ⑥アップロード キャッシュ ストア ⑧ストリーミング ①アップロード Cloud CDN ⑧キャッシュ HTML <video /> HTML <video /> 変換処理の流れ 処理内容更新の流れ 【凡例】
  30. 34 © 2023 IBM Corporation 本⽇のまとめ Ø オブジェクト・ストレージは、⼤容量で⾼い可⽤性を備えたストレージ Ø メディアファイルや静的コンテンツなど⾮構造データの格納に最適なサービス

    Ø ただ、更新頻度の⾼いストレージが要求される場合は不向き Ø IBM Cloudのオブジェクト・ストレージはIBM Cloud Object Storage。通称、ICOS Ø 99.9999999999999 (15 nine) の耐久性を備えてる Ø データのアクセス頻度に応じて適切な適切なストレージクラスに振り分けるSmart Tierがある Ø アーカイブやレプリケーションなどデータ保護の機能が利⽤可能 Ø アクセス・ポリシーやファイアウォール、監査ログなどセキュリティ機能も充実 Ø IBM Cloud Data Engineを利⽤してデータレイクとしても利⽤可能 Ø コードからの操作⽅法も充実していて、運⽤作業の⾃動化なども容易 Ø Code Engineと連携させると複雑な処理の⾃動化も実現可能 Ø もっと深く知りたい⽅は、「柔らか層本」を活⽤しましょう
  31. 過去の講義のリプレイ 35 過去の講座のリプレイを公開しています。Self Studyなどにご活⽤ください。 © 2023 IBM Corporation IBM Cloud

    101 • IBM Cloud 101 - #1 IBM Cloud コンソールを攻略しよう • IBM Cloud 101 - #2 IBM Cloud の IAM をワカる • IBM Cloud 101 - #3 IaaS / クラシック・インフラストラクチャを知る • IBM Cloud 101 - #4 Virtual Private Cloud (VPC) を知る • IBM Cloud 101 - #5 ネットワークを知る • IBM Cloud 101 - #6 IBM Cloud 管理の基本 (契約⽀払いサポートなど) IBM Cloud Plus • IBM Cloud Plus - #1 Code Engine⼊⾨