2023年1月9日月曜日

「これはクラウドでは無い方が良いな」と思う事柄はなんですか?

https://jp.quora.com/%E3%81%93%E3%82%8C%E3%81%AF%E3%82%AF%E3%83%A9%E3%82%A6%E3%83%89%E3%81%A7%E3%81%AF%E7%84%A1%E3%81%84%E6%96%B9%E3%81%8C%E8%89%AF%E3%81%84%E3%81%AA-%E3%81%A8%E6%80%9D%E3%81%86%E4%BA%8B%E6%9F%84%E3%81%AF%E3%81%AA?__nsrc__=4

石塚 正浩さんのプロフィール写真

並べ替え
 · 
フォロー

すごいちっちゃいことで。

Adobe全般と言うか、ビデオ、写真編集はファイル保存も含めてクラウドはあまり好きではないってかか、ブラウザベースが嫌い。

写真なら現像からファイル保存まで含めてです。

現像は、クライアント・ネイティブが反応が良くて、rawからの現像、補正が速くて、ファイル保存もとりあえずはローカルにします。

Adobeだと写真のファイル保存はAdobeのクラウドへ保存ができるんですが、とにかく使いづらい。

自分でフォルダ分けとかしないと結局、面倒。

ただ、写真に関しては最終的には私はOneDriveですがクラウドに放り込みます。

あとですね、これはクラウドと言うよりネイティブ・アプリがいいになるんですが、Teams、ZOOM、Slack、ChatWork。

Teams、ZOOMはブラウザでやるとウィンドウのサイズの調整が面倒だしカメラ・オーディオ制御がわからん。

Slack、ChatWorkはネイティブ・アプリの方が文字入力がレスポンスがいいし、通知もいい。

一応、企業システムとかも知っているらしいのですが、最近はサーバを自社所有でもDCに置くことがほとんどであまりパブリック・クラウドだからって意識はそこまでないんですよ。

と言うか、私はまぁ、都合コーダーとしておきますが、そういう開発者に、そこまでインフラ・レイヤーがクラウドだからオンプレだからって意識しないと言うかさせない。

コンテナとかに

… (もっと読む)

公共系のシステムと金融系のシステム。

どこの誰が管理してるか分からないのに、よくも信頼して個人情報満載の情報を預けられるなと。

 · 
フォロー

他所の故障や不始末が原因のシステム停止を許容できない業務は全部自前でやってほしいなぁとおもいます。

拠点間通信とか。

 · 
フォロー

守秘義務契約書です。それと、死亡した際のデータの扱いについての指示です。

マネーフォワードのような自分の資金を管理するアプリ、ウェブサービスが大好きでずっと使ってるかつ、同じように当時危機感を持っていた技術者です。(当時はまだひよっこの高専生でしたが..)

ひとつ理由として、公式なAPIに変更されたという点があると思います。

マネーフォワードのログイン方法は、対象となる金融機関などのサイトにマネーフォワード経由でログインIDとパスワードを入力しログインするという方法が取られていました。

つまり、仮想のパソコンのようなものを用意してそのパソコン上でログインをさせ、表示された残高などをデータとして持ってきて表示していたわけです。この方法をスクリーン・スクレイピングといいます。

この方法、ログインIDとパスワードが”絶対に”漏れなければ問題はありませんが、一般的なログイン方法からするとリスクが高い方法です。

一般的なログイン方法とは、ログインする際にログインIDとパスワードを入力するとそのパスワードを元にしたアクセストークン(期間限定のパスワードのようなもの)が付与され、次回以降はこのアクセストークンを用いてログインすることでパスワードを保存することなくパスワードを入力する手間を省くという方法です。

アプリなどで再度ログインを求められる際はこのアクセストークンが失効したことが原因であることが多いです。このアクセストークンの利点として期間限定であるが故、誰かに漏れたとしても

… (もっと読む)
 · 
フォロー

技術的には少なくとも4つあります。まず主な3つ。

  1. マネージドサービス
  2. インフラのコード化(Infrastructure as Code)
  3. 課金体系

まずはマネージドサービスです。データベースのフェイルオーバーを自前で組むと面倒ですが、Amazon RDSだと簡単にできます。これは分かりやすいですね。

次にインフラのコード化(Infrastructure as Code)。AWSならCloudFormation、サードパーティならTerraformとかです。これはいくつもメリットがあります。使い回しができます。レビューもできます。間違いが少なくなります。

3つ目が課金体系。時間単位でも荒い方で、分単位、秒単位、あるいはサービスによってはミリ秒単位での課金です。例えばサーバレスプラットフォームのAWS Lambdaは128MBで1ミリ秒あたり0.0000000021USDです。

料金 - AWS Lambda |AWS
お客様がモバイルアプリケーションのデベロッパーで、食べ物を注文するモバイルアプリケーションを構築しているとします。顧客はこのアプリケーションを使用して、特定のレストランの場所で料理を注文し、注文状況の更新を受け取り、注文が完了したら料理を受け取ることができます。アプリケーションの需要は、時間帯やレストランの場所によって大きく変動することが予想されるため、AWS Lambda などのサーバーレスサービスを使用してモバイルバックエンドを構築します。 簡単にするために、アプリケーションが 1 か月に 300 万件のリクエストを処理するとします。関数の 平均実行時間は 120 ミリ秒です。x86 ベースのプロセッサで 1536 MB のメモリを使用して関数を設定しました。 新バージョンのモバイルアプリケーションをローンチし、大々的にマーケティングを行いました。ローンチ日の正午から午後 8 時までの間、需要が急増することが予想されます。需要が急激にスケールアップ、ダウンしても、モバイルアプリケーションが反応するようにしたいので、Lambda 関数で Provisioned Concurrency を有効にします。Provisioned Concurrency を 100 に設定しました。 この 8 時間の間に、関数は 500,000 件のリクエストを受け取りました。Provisioned Concurrency が有効な時の 関数の平均実行時間は 100 ミリ秒です。その月の残りの期間、アプリケーションはさらに 250 万件のリクエストを受信し、Provisioned Concurrency を有効にしなくても関数がリクエストに応じて実行されます。 この場合、料金は以下のように計算されます。 Provisioned Concurrency 料金: Provisioned Concurrency 料金は、GB-s あたり 0.0000041667 USD です。 Provisioned Concurrency が有効になっている合計期間 (秒) = 8 時間 × 3,600 秒 = 28,800 秒 構成された同時実行の合計 (GB): 100 x 1536 MB/1,024 MB = 150 GB Provisioned Concurrency の合計量 (GB-s) = 150 GB x 28,800 秒 = 4,320,000 GB-s Provisioned Concurrency 料金 = 4,320,000 GB-s x 0.0000041667 USD = 18 USD リクエストの料金: 1 か月のリクエスト料金は 1,000,000 件のリクエストにつき 0.20 USD で、無料利用枠は 1 か月に 1,000,000 件です。 合計リクエスト – 無料利用枠 = 1 か月の請求リクエスト 3,000,000 件のリクエスト – 1,000,000 件の無料利用枠のリクエスト = 2,000,000 件の月間請求リクエスト 1 か月のリクエスト料金 = 2 × 0.20 USD = 0.40 USD Provisioned Concurrency が有効なときのコンピューティング料金: コンピューティング料金は GB-s 当たり 0.0000097222 USD です。 合計コンピューティング時間 (秒) = 500,000 × 100 ミリ秒 = 50,000 秒 合計コンピューティング (GB-s) = 50,000 秒 × 1536 MB/1024 MB = 75,000 GB-s コンピューティング料金の合計 = 75,000 GB-s × 0.0000097222 USD = 0.73 USD Provisioned Concurrency が無効なときのコンピューティング料金: 1 か月のコンピューティング料金は 1 GB-s につき 0.0000166667 USD で、無料利用枠は 400,000 GB-s です。 合計コンピューティング (秒) = 2,500,000 × 120 ミリ秒 = 300,000 秒 合計コンピューティング (GB-s) = 300,000 × 1536 MB/1024 MB = 450,000 GB-s 合計コンピューティング – 無料利用枠 = 1 か月の請求コンピューティング GB-s 450,000 GB-s – 400,000 GB-s の無料利用枠 = 50,000 GB-s 1 か月のコンピューティング料金 = 50,000 × 0.0000166667 USD = 0.83 USD 合計月額料金: 合計料金 = Provisioned Concurrency 料金 + リクエスト料金 + Provisioned Concurrency が有効なときのコンピューティング料金 + Provisioned Concurrency が無効なときのコンピューティング料金 合計料金 = 18 USD + 0.40 USD + 0.73 USD + 0.83 USD = 19.96 USD

これを使って、ダイソーは83〜90%のコスト削減をしています。構築のコストは上がりますが、数年で元が取れるそうです。

ダイソー快進撃を支える「毎晩105億件データ処理」する需要予測システムはどう生まれたか
世界27カ国に展開し、7万点の商品点数をもつダイソー。その店内で「欠品」によるチャンスロスを激減させたシステムをめぐる数字は興味深い。ダイソーの開発担当者が語った。

例えばストレージのS3はいくつかの料金体系があります。使用頻度が低いものはGlacierだと1/5、Glacier Deep Archiveだと1/12の価格です。

料金 - Amazon S3 |AWS
次の場合を除き、Amazon S3 に出入りするすべての帯域幅に対してお支払いいただきます。 すべての AWS サービスとリージョン (中国とGovCloud を除く) で集約された、毎月最初の 100 GB のインターネットに転送されたデータ インターネットから転送されたデータ。 同じ AWS リージョン内の S3 バケット間で転送されるデータ。 Amazon S3 バケットから S3 バケットと同じ AWS リージョン内の任意の AWS のサービスに転送されたデータ (同じ AWS リージョン内の別のアカウントに転送されたデータを含む)。 Amazon CloudFront (CloudFront) に転送されたデータ。 以下に示す料金は、Amazon S3 との間で (パブリックインターネット経由で) 「受信 (イン)」および「送信 (アウト)」されるデータ転送量に基づきます†††。 AWS Direct Connect の料金 の詳細はこちら。 S3 マルチリージョンアクセスポイントの料金 Amazon S3 マルチリージョンアクセスポイントでは、複数の AWS リージョン全体でレプリケートされるデータセットにアクセスする際、パフォーマンスが最大 60% 加速します。AWS Global Accelerator をベースに、S3 マルチリージョンアクセスポイントは、ネットワークの混雑状況やリクエストするアプリケーションの位置などの要素を考慮し、AWS ネットワーク上でリクエストを最も低レイテンシーなデータコピーに動的にルーティングします。この自動ルーティングにより、シンプルなアプリケーションアーキテクチャを維持しながら、AWS のグローバルインフラストラクチャを活用することができます。 S3 マルチリージョンアクセスポイントのデータルーティング料金 S3 マルチリージョンアクセスポイントを使用して AWS 内でリクエストをルーティングする場合、S3 のリクエスト、ストレージ、データ転送、レプリケーションのスタンダード料金に加えて、処理されたギガバイト (GB) ごとにデータルーティングコストを支払います。 S3 マルチリージョンアクセスポイントのデータルーティング 料金 データルーティングコスト 0.0033 USD/GB S3 マルチリージョンアクセスポイントでのインターネット高速化の料金 アプリケーションが AWS 外で実行され、インターネット経由で S3 にアクセスする場合、S3 マルチリージョンアクセスポイントは、リクエストを AWS エッジロケーションを経由し、グローバルなプライベート AWS ネットワークを介して、アクセスレイテンシーに基づいて最も近いデータのコピーに自動的にルーティングすることで、パフォーマンスを向上させます。インターネット経由のリクエストを高速化する際には、上記のデータルーティングコストと、インターネット高速化コストを支払います。 S3 マルチリージョンアクセスポイントでのインターネット高速化の料金は、ソースクライアントが転送先 AWS リージョンと同じ場所にあるか、異なる場所にあるかによって異なり、スタンダードな S3 データ転送の料金とは別になります。 AWS リージョンでの S3 マルチリージョンアクセスポイントの可用性については、 ユーザーガイド を参照してください。 拠点間のインターネット高速化の料金 北米 北米でのインターネット高速化 料金 インターネットから Amazon S3 へのデータ転送受信 (イン): 0.0025 USD/GB Amazon S3 からインターネットへのデータ転送送信 (アウト): 0.0050 USD/GB 北米とその他の地域の間のインターネット高速化 インターネットから Amazon S3 へのデータ転送受信 (イン): 0.0500 USD/GB Amazon S3 からインターネットへのデータ転送送信 (アウト): 0.0500 USD/GB 欧州 欧州内でのインターネット高速化 料金 インターネットから Amazon S3 へのデータ転送受信 (イン): 0.0025 USD/GB Amazon S3 からインターネットへのデータ転送送信 (アウト): 0.0050 USD/GB 欧州とその他の地域の間のインターネット高速化 インターネットから Amazon S3 へのデータ転送受信 (イン): 0.0500 USD/GB Amazon S3 からインターネットへのデータ転送送信 (アウト): 0.0500 USD/GB アジアパシフィック アジアパシフィック内でのインターネット高速化 料金 インターネットから Amazon S3 へのデータ転送受信 (イン): 0.0100 USD/GB Amazon S3 からインターネットへのデータ転送送信 (アウト): 0.0150 USD/GB アジアパシフィックとその他の地域の間のインターネット高速化 インターネットから Amazon S3 へのデータ転送受信 (イン): 0.0600 USD/GB Amazon S3 からインターネットへのデータ転送送信 (アウト): 0.0600 USD/GB 南米 南米でのインターネット高速化 料金 インターネットから Amazon S3 へのデータ転送受信 (イン): 0.0250 USD/GB Amazon S3 からインターネットへのデータ転送送信 (アウト): 0.0400 USD/GB 南米とその他の地域の間のインターネット高速化 インターネットから Amazon S3 へのデータ転送受信 (イン): 0.0600 USD/GB Amazon S3 からインターネットへのデータ転送送信 (アウト): 0.0600 USD/GB S3 マルチリージョンアクセスポイントの料金例 例 1: AWS リージョン内での S3 マルチリージョンアクセスポイントの使用 米国東部 (バージニア北部) にアプリケーションがあり、米国東部 (バージニア北部) または米国西部 (オレゴン) のいずれかの S3 バケットにリクエストを動的にルーティングするように設定された S3 マルチリージョンアクセスポイントがあるとします。アプリケーションは、10 GB のファイルを S3 マルチリージョンアクセスポイント経由で送信します。この場合、アプリケーションにとって最もレイテンシーの低いバケットは米国東部 (バージニア北部) のバケットとなるため、リクエストはそのリージョン内に留まります。この場合、コストは以下のように計算されます。 S3 マルチリージョンアクセスポイントのデータルーティングコスト: S3 マルチリージョンアクセスポイントのデータルーティングコストは、1 GB あたり 0.0033 USD です。この例では、10 GB のデータが S3 マルチリージョンアクセスポイントによってルーティングされました。 S3 マルチリージョンアクセスポイントのデータルーティングの合計コスト = 0.0033 USD * 10 GB =

真面目に最適化を考えると大変ですが、最近は自動化してくれますし、ちゃんと学習した人が少しの手間をかけるだけで結構安くなります。

なぜこれができるのかと言うと、推測ですがおそらくAWS内部では様々なデバイスを組み合わせているからです。

ストレージの場合、使用頻度が高いところはSSDやもっと高速なストレージ、使用頻度が低いところはより安いHDD、さらに使用頻度が低いところはさらに安いLTOテープを使い、ユーザにはデバイスを意識させず、あくまで使用用途で選んでもらいます。

ここまで3つ挙げましたが、もう一つ、とても重要な技術革新があります。それはVPC(Virtual Private Cloud)です。次の3つの利点があります。

  1. セキュリティ設定がOSでなくネットワークの責務にできる
  2. 設定をコードとして書ける
  3. 高度な知識が不要

クラウドを導入する際の障害となりがちなのがセキュリティです。例えば従来のVPSではセキュリティはOS側の責務でした。firewalldとかの設定で、OSごとにバラバラです。これがVPCなら簡単にできます。あくまで論理的な分け方ですが、個人レベルで専用ネットワークを持つことができます。しかも無料です。

2つ目は設定のコード化ですが、これは先に書いたのと同じです。

3つ目は、ネットワークの高度な知識が不要になります。正確には不要ではないですが、求められる知識が「Ciscoのルータの使い方」とかから「基本情報技術者の知識に毛が生えたもの」くらいに下がります。自分のようなバックエンドエンジニアが片手間で学べるくらいです。

ここまで色々書いてみましたが、自分はせいぜいLambdaを個人的に使ったくらいです。S3 Glacierとか使ったことありません。

ただ知っているのと知らないのは大違いです。知らない人はS3標準の価格だけ見て「オンプレより高い」と言います。RDSを使わずにEC2でデータベースを構築して「オンプレより高い」と言います(EC2でないといけないケースも稀にありますが)。

そういうのを「オンプレ脳」と言います。

MonotaROが向かうクラウド活用の今後 2016-04-21 関西スタートアップAWS勉強会
2016-04-21 関西スタートアップAWS勉強会 において、当社片山が講演した資料です。

「EC2が前提」を避けるためにはまず、さまざまなサービスを知る必要があります。深くなくてもいいですが、「ちゃんと学習した人」である必要はあります。

例えば自分が持っているのはAWS Certified Solutions Architect - Associate(AWS SAA)ですが、基本的に座学でできます。ただ範囲は広いです。現行のC02だと63個、C03だと131個のサービスについて概要だけでも把握しておく必要があります(参考記事)。

とは言え、まあ誰でも最初はしょうがないと思います。いきなり高度なサービスを使うのは大変なので。自分も最初はEC2から試しました。

ここまで4つ書きましたが、実はこの4つの前に一つ重要なことがあります。それは「0. セルフサービス」です。クラウドを名乗りつつ詳細は「お問い合わせ」という自称クラウドサービスが多すぎます。そんなのがクラウドを名乗っている現状があります。

政府情報システムにおけるクラウドサービスの利用に係る基本方針でも「正しいクラウドサービスのみを選択」として次のように書かれています。

従来型の共同データセンタの単なる延長線上にあるものや、単に仮想化技術を採用しただけのものは、本方針におけるクラウドサービスの定義には該当しない。

クラウドサービスとは、前述「クラウドサービスの利用メリット」で記述した「効率性の向上」、「セキュリティ水準の向上」、「技術革新対応の向上」、「柔軟性の向上」、「可用性の向上」に寄与するものであるとするものである。

クラウドと名乗っているが偽物だった、典型的な例がこれです。「貸与期間が終了したとして全データが削除されたという」と書いていますが、まともなクラウドではそもそも貸与期間という概念がありません。電気、水、ガスを契約する際に更新手続きをしないと止まる、そんなことはあり得ません。必要なのは最初の契約と支払いだけです(ガスは立ち合いが必要ですが)。

サーバ管理会社が契約更新ミス 「ふくいナビ」全データがクラウドから消失、復旧不能に
サーバ管理会社であるNECキャピタルソリューションの社内手続きミスにより、「ふくいナビ」の全データが完全に消失した。データの復旧も不可能という。

このような電気、水、ガスのように使った分だけ請求する考え方をユーティリティコンピューティングと言います。この考え方自体は60年前からあったようですが、これを実現したのがクラウドです。

ユーティリティコンピューティング - Wikipedia
出典: フリー百科事典『ウィキペディア(Wikipedia)』 ユーティリティコンピューティング ( 英 : Utility computing )とは、 リソース (CPUやストレージ)を 電気 / ガス / 水道 や 電話 のように使用した分だけ料金を課すようにサービスとしてパッケージ化すること。 ユーティリティコンピューティングでは、システム構築の初期投資が少ないか、ほとんどかからない。その代わり、 計算リソース は基本的にレンタルされる。顧客は急に大規模な計算能力が必要になったり、 アクセス が集中して処理能力が必要になった場合でも、新たなコンピュータ群を物理的に調達して配線などを行う時間をとることなく、必要に応じてリソースを追加利用できる。 ホスティングサービス でも、個々のサーバをレンタルして利用可能にすることは素早くできる。例えば、Webサイトの突然のアクセス集中に備えて、 Webサーバ 群を事前に用意しておくなどの対応が可能である。 「ユーティリティコンピューティング」と言った場合、一般に(ストレージや計算能力の)何らかの 仮想化 を想定しており、利用可能なリソースは単一のコンピュータシステムよりも大きい。つまり、複数のサーバシステムを使って1つのシステムを構築している。これは例えば、 コンピュータ・クラスター をレンタル専用に構築するようなもので、場合によっては スーパーコンピュータ を使用することもありうる。このような、複数のコンピュータ上で1つの計算を行う技法を 分散コンピューティング と呼ぶ。 「 グリッド・コンピューティング 」という用語も分散コンピューティングの一形態を指すが、利用形態ではなく、物理的構成や組織的構成を指す用語である。 ユーティリティコンピューティングの定義は、 Webサービス のような特定の業務と結びつけてなされることがある。 2006年 に提唱され、広く普及した クラウドコンピューティング は、商用のサービスとして捉えた場合には、契約に対する考え方が全く異なっている [1] 。ユーティリティ・コンピューティングではメインフレーム時代と同じく、利用可能な性能やメモリ容量,サービスの利用可能な場所などが公開されており、厳格な契約を経て利用が開始されるものであって、1分1秒単位で変化する需要の増減に応じて利用する計算リソースの量を変更することは出来ない。従って、急激な需要増で処理遅延を招きやすく、需要が少ないときは無駄なコストが発生する。しかし、 クラウドコンピューティング ではユーザーから見て設定1つで(時には全自動で)計算リソースの変更が行えるため、需要の増減に追従して計算リソースの量を増減させることができる。結果として必要な時に必要なだけ計算リソースを利用することが出来るため、ユーティリティ・コンピューティングと比較して、コスト面で効率的な利用形態であると言える。 ユーティリティコンピューティングは新しい概念というわけではなく、長い歴史がある。1961年、 ジョン・マッカーシー は マサチューセッツ工科大学 の100周年にあたって、次のように述べている。 私が主張した種類のコンピュータが将来現実となるならば、電話が公共設備となったようにコンピューティングが公共設備となる日が来るかもしれない…コンピュータ・ユーティリティは新たな重要な産業基盤となるかもしれない。 1964年の Multics でも、コンピュータ・ユーティリティの考え方が根本にあった。 [2] IBM は以前から計算能力とデータベース用ストレージ領域を銀行などに提供する事業を行っていた。 2000年、 サン・マイクロシステムズ は Sun Grid サービスを開始し、最近では時間単位で計算能力を利用できるサービスを提供している [3] 。 InsynQ は ヒューレット・パッカード のコンピュータなどを使い、1997年からユーティリティコンピューティングのサービスを開始した。 クラウドコンピューティングの先駆けではあるが、2006年8月25日、 Amazon.com は Amazon EC2 を開始した [4] 。これは、最小リソースで1時間当たり0.1ドルからのコストでリソースを提供するサービスで、ストレージ容量とインターネット上のデータ転送量によっても課金される。仮想化は Xen を使い、 レンダリング や計算処理だけでなく、 Webサーバ クラスタなどとしても利用できる。以後、クラウドコンピューティングが急速にシェアを伸ばすことになった。 関連項目 [ 編集 ] 外部リンク [ 編集 ] 技術文書

0 コメント:

コメントを投稿