※まだまだ作成途中。
間違っている箇所があればご指摘おねがいしm
そもそもクラウドとは??
結論から言うと、『企業が24時間管理しているコンピュータの機能を一部借りて使う仕組み』です。
以下は具体例
例えば、家にデスクトップがあったとします。↓こういうやつ。
貴方はこのコンピュータで日記を書き、その日記を全世界に公開するつもりとします。
つまり日記のデータも日記の機能や仕組みも、全部この個人のコンピュータに保存されています。
この場合、このコンピュータは24時間365日ずっと電源を付けっぱなしにしないといけません。
『動物の森』をやったことありますかね?相手のゲーム機の電源が付いていないと、その村に行けないのは当たり前です。
そして「私のブログは08:00~22:00の間しか見られないよ♡土日祝はお休みね♡」なんて舐めたWebページは見たことありません。
となると色々問題が発生します。
・音もうるさく、電気代がめちゃくちゃ掛かる。
・常時稼働により機器の寿命も短くなるので、定期的なメンテナンスは必須…
そこでもし、『日記のデータさえ渡してくれれば、1カ月500円でうちの24時間動いているコンピュータで公開させておくよ。故障もしないようにメンテナンスもやってるし』なんて人が現れたら神ですよね。だってデータ渡すだけでコンピュータの管理などは丸投げできる上に電気代など考えると月額500円など破格なのですから。
この人がやっていることこそが、クラウドやレンタルサーバそのものです。
「ほんなら私にクラウドは関係ないや。だって日記とか公開していないし」と思ったかもしれませんが、あくまでクラウドは企業が24時間管理しているコンピュータの機能を一部借りて使う仕組みです。
もし貴方がGmailを利用しているならGoogleのクラウドを利用しています。
受信したメールは貴方個人のPCには保存されていませんよね?24時間どこからでもログインすればどのPCやスマホからでもメールが見れるはずです。
これはGoogleのコンピュータに貴方のメールが保存されているからです。
「私のスマホに何千ものメールを保存するのは容量圧迫するし嫌だわ。Google、貴方のコンピュータに保存しておきなさい」という契約を無意識にしている訳ですね。
24時間動いて貴方の「メール見せろ」に応答しているGoogleのコンピュータを利用しているわけですから、これは立派なクラウドです。
余談ですが我々が使っているスマホやPCの役割は『閲覧したいデータを読み込みに行くこと』ですが、日記を保存し、それを公開しているコンピュータの役割は『誰かにデータを見せること。応答すること』です。役割が真逆ですね。
仕組みも異なるため、このようなコンピュータは『サーバ』と呼ばれています。
ちなみにサーバとPCはOSなどが異なるだけで、物理的な仕組みにそこまでの違いはありません。極論で語弊があるかもしれませんが家で使っているPCにWindowsServerをインストールすればサーバになります。もちろんサーバに特化したものもありますが。
また、最初にやろうとしていた、『自分でコンテンツ(日記とか動画とか)を公開する(つまりクラウドに頼らない)』ことをオンプレミスといいます。
※クラウドとレンタルサーバの違いは、これを読んでいるようなレベルの方は突き詰めなくていいと思うので割愛。
AWSとは??
Amazonがやっているクラウド。
そのまんま『Amazon Web Service』でAWS。
しかしAmazonのクラウドを利用したいといっても用途は様々。
Aさん「写真でスマホの容量的が圧迫されているからストレージ(容量)だけ貸してほしい」
Bさん「我が社で㏋を作りたいが、起業したばっかりなのでサーバ丸々お借りしたい」
両者同じようにAmazonが「おら!サーバ丸々1台、好きに使いやがれ!(ドンッ)」と貸されても、写真だけ預かってほしいAさんにとっては過剰過ぎて困ってしまいます。
そこで様々なニーズに答えるために、コンピュータの貸す性能が100種類以上細かく分かれて提供されています。
それが以下の「製品カテゴリ」と言われているもの達です。
EC2とかS3とか…これらがカテゴリです。
EC2は仮想サーバの貸し出しなのでBさんにピッタリ。S3はシンプルなストレージサービスなのでAさんにピッタリです。
これらのカテゴリの詳細は実際に利用しながら見せた方が分かりやすいので、先に始め方を解説します。
実際にアカウント作成して利用してみよう
注意点として、アカウントを作成してから1年間は無料のサービスがあります。
「AWSをちゃんと知ってからガッツリ利用したい」という方は待ちましょう。すぐアカウントを作ってしまうと無料期間1年の最初の数カ月はまともに知識がなく使えないというもったいない時間ができるます。
「今すぐ遊びで使いたいぜ!」「捨てアカでとりま始めたいぜ!」という方は今すぐトライ。
また、アカウント作成は無料ですが、クレジットカードの登録が必須になります。無料枠を超えた瞬間、そこから無慈悲に料金が発生するのでご利用にはお気を付けて。
公式サイトにアクセス
適当にメアドやクレカを登録していき、終了
クレカの情報まで見たが削除は無理か…超えた瞬間に自動課金になるのが嫌で、引き落とされるカード情報を削除しておけば「これ以上使いたきゃカード登録しろ」のようなロックが掛かるかと期待したが…
どこまで無料なの?
AWSでは無料枠がありますが、3種類あります。
先ほどいった100種類以上の機能が、それぞれ3つのうち1つの種類に分類されます。
・短期間だけ無料タイプ
・アカウント作成から1年は無料タイプ
・ずっと無料タイプ
先ほどのS3やEC2は、アカウント作成から1年無料の機能となっています。
といっても1年間なら10000TB保存しても無料なのかというと、流石にそんな訳ありません。
S3は5GBまで。EC2は750時間の稼働まで無料といった具合です。
無料範囲内でAWSを使い始めよう
最初に移るのはホーム画面です。
ここから、利用しているカテゴリ(Amazonが提供しているコンピュータから借りて利用している性能)や金額を確認できます。
また、最初に右上を"北米(バージニア北部)"にしておきましょう。
これは、借りるサーバがどこにあるか(リージョン)を指定する箇所です。
詳しくないですが、北米の方が機能が充実しているだとか。
では画面上の検索窓にS3と入れてみましょう。
S3とは
AWSから借りられる機能の1つです。
S3は『シンプル・ストレージ・サービス』の通り、単純なストレージクラウドであり、Googleドライブなどがライバルとなります。
見比べるとGoogleドライブがいかに神か分かりますね……
S3にもいいところはあるはず!早速やっていきましょう。
画面上の検索窓にS3と入れてみましょう。
S3を選択すると以下画面に移動します。
これはS3の入り口です。ディズニーランドでいうと、最初のホーム画面が入園、この画面がスプラッシュマウンテンの入り口といった感じ。
なのでS3を利用した実際のストレージ作成は"バケットを作成"からできます。
しかしここに写真や動画を入れるにしろ、他人に見られたら嫌ですよね?
「パスワードなどが漏れてアカウントが乗っ取られない限り大丈夫やろ」とお思いかもしれませんが、作成時の設定一つで、ストレージは意図的に全世界公開されることがあります。日記を記録するアプリだと思っていたら、実はTwitterというサービスで世界中の人に公開されていたと知って恥かいたお爺さんのよう……だからTwitterもS3も、個人利用であるなら鍵アカウントのような設定に最初からしておくのが無難です。
S3全体の設定もこの画面からできます。
最初に画面左の"このアカウントのブロックパブリックアクセス設定"をクリックして設定しておきましょう。
移動先の"編集"から、"パブリックアクセスをすべてブロック"を選択しておくと、とりあえず誰からもアクセスできないような状態になります。(Twitterの鍵アカウントのようなもの)
これを一応先に行っておきましょう。
では、いよいよS3を利用してバケットを作成していきます。
バケットの作成
先ほどの画面に戻り"バケットの作成"を押します。
ストレージの一番大きい単位をAWSではバケットと表現します。
これまた雑な表現化もしれませんが、Googleドライブのここの大本のホームといいますか…これをバケットと表現します。
"バケットを作成"では、さらにバケット(ストレージ)のカスタマイズができます。順に説明します。
1.パケットタイプ
リージョンについては先述した通り、借りるサーバの地理的場所のことです。
パケットタイプとは、
少し前は"汎用"しかなかったのが、新しく追加されたらしいです。
汎用で作成してみます。その後にディレクトリでも作成して違いを見てみます。
2.バケット名
これはその名の通りです。ただし他のS3利用者が付けたバケット名と被らない(一意な・ユニークな)名前にしないといけません。
ありきたりなバケット名(ストレージの名前)だと、誰かが既に利用しているためエラーがでます。
「自分だけしか使わないのに何で被っちゃダメなの!」という疑問に対する答えは、『作成したバケットは、今後URLとしてアクセスできるようになるから』です。
先に完成形をお見せすると、以下になります。
s3://learning.hachioji/test_upload.txt
この際、貴方の借りたストレージの名前はURLの一部に埋め込まれてアクセスできるようになります。
もし、バケット名が被ってもOKになると、URLも同一になってしまうので
3.オブジェクト所有者
バケットに格納されるオブジェクトの所有者についての設定項目ですが、無効が推奨です。
オブジェクトとは、バケットに格納するデータのことです。
例えば、
4.このバケットのブロックパブリックアクセス設定
これは最初にブロックにチェックを入れているので大丈夫です!
最初にやっていなくても、ここでチェックを入れれば全世界に公開されることはありませんが、毎回やるのも手間で忘れそうなので、アカウント単位で無効をデフォルトにしていたという訳です。
5.バケットのバージョニング
オブジェクトの履歴を残せます。つまり、誤ってストレージ内のファイルを編集したり削除しても履歴が保存されており、1日前のバケットの状態に戻したりできます。
「え、超便利じゃん!有効にするしかないっしょ!」と思ったそこの貴方。
過去バージョンのデータにも料金は掛かってきますので注意が必要です。
つまり雑な説明をすると、3Gのデータを保存していれば無料枠の5G以内なので当然無料なのですが、"バケットのバージョニング"を有効にしていると、いわばバックアップ用で編集されていない3G分も容量を食うので、実際には6Gの使用量となり、溢れた1Gが請求されます。
勉強程度の利用であれば、無難に無効にしておきましょう……
6.タグ-オプション
作成するバケットにタグを付けられます。後からでも追加可能。
タグは複数付けられます。用途は後々管理がしやすくなるからかな?(実務で使ったことがないので……)
例えば、以下のようにキーと値を決めれば扱いやすいかなと適当に設定してみました。
下図の赤枠にあるタグ3つを格好つけて英語にしたのが先ほどのスクショにあるものです。
ブログとかも公開できるらしいのでやってみたいなぁ。今後アプリとか開発したくなったらタグを『プロジェクト:ブログ』とか『プロジェクト:アプリ_1』とか追加すればいいかな。
7.デフォルトの暗号化
・暗号化タイプ
これは分かりやすい。バケットに保存する際の暗号化の方式ってだけ。鍵の管理から何まで我々利用者が意識することはなにもない。
例えばUSBに写真を保存する際、PCが「USB盗まれたら写真見られるのは困るよね?このPCでしか見れないように暗号化してUSBに保存しておくけど、どんな暗号技術がいい!?」なんて言われても「他人に見られなきゃなんでもいいよ……よさげに暗号化しておいて」となりますよね。それと同じ。
1つ目の"Amazon S3 マネージドキーを使用したサーバー側の暗号化 (SSE-S3)"というのはHTTPS通信でも利用されているAESという共通鍵暗号方式を使ったシンプルな暗号化っぽいです。これでいいんじゃない?(適当)
共通鍵の仕組みは省きますが、暗号化するのも、元に戻すのも共通したルール(値)だから共通鍵といいます。
この場合では、暗号化するのも、元に戻すのも『1文字ずらし』で出来ます。
これなら情報漏えいしても、共通鍵さえ流出していなければひとまず安心です。
上記例では『1文字ずらし』を共通鍵としましたが、鍵の用意から実際の暗号化の処理まで全部S3がやっています。ユーザはこの一連の鍵のフローに全く関与できません。
そこで「AWSは利用するが暗号化まで全部任せられるほど信用はできん!鍵はある程度、俺が管理させてもらう!」という人向けに、あと2つの"AWS Key Management Service キーを使用した~"から始まる暗号方式が用意されています。
この"AWS Key Management Service"とは、これまたAWSで提供されているサービスの一つで、その名の通り、暗号化の鍵を管理するサービス。AWSはホントになんでもやってんな。
AWSの鍵管理サービス(KMS)で自身で共通鍵を作成生成できる…ということ?
無料だったので"hogehogetest"という名前の鍵を作ってみました。この鍵のIDを含んだ文字列がARNと呼ばれるコードなのかな。
確かに作成した"hogehogetest"が候補に出てきました。
まとめると、
・Amazon S3 マネージドキーを使用したサーバー側の暗号化 (SSE-S3)
→S3にお任せコース。共通鍵で暗号化してくれる。
・AWS Key Management Service キーを使用したサーバー側の暗号化 (SSE-KMS)
・AWS Key Management Service キーを使用したデュアルレイヤーサーバー側の暗号化 (DSSE-KMS)
→自分で管理コース。AWSのKMSで作成した共通鍵で暗号化してくれる
ってことかな…たぶん。
ここまでできたら十分でしょう。"バケットを作成"を押下します。
おお作れた。勉強用なので"learning.hachioji"にしました。私のユーザ名は八王子なので。
バケット名をクリックすると、本格的にバケットにオブジェクト(これから入れるファイルやデータ)を入れられます。
ここまではお金は掛からないはず。
バケットの利用
EC2とは
AWSから借りられる機能の1つです。
これは仮想環境を借りることができます。
IAMポリシーとは?
超簡単。ゲストユーザのことです。
最初に貴方が作ったアカウント、
参考URL
https://qiita.com/paeria/items/1ea6d5f83570260af898
https://qiita.com/miyuki_samitani/items/c3c871e2312b9a47b9e2