AWS 無料利用枠で何かやってみる Day 4

Day 4 で何やる?

ということで、Day 3での宣言通り、「AWSでの認証認可」の整理をやります。

nabemerchant.hatenadiary.jp

あとは、無料枠で何するか妄想してDay 4 終えます。(まだ触らないの!?)

なお、AWSアカウント作ったのに、サービス全然使わないので、AWSから「早く使いなよ!!」ってメール来ました。

f:id:nabe_merchant:20210506223443p:plain

参考にしたサイト/書籍は以下の通り(感謝)

サイト

書籍

  • AWS認定資格試験テキスト AWS認定ソリューションアーキテクト - アソシエイト 改訂第2版 www.amazon.co.jp

AWSキーワードの整理と学習 続き

AWSでの認証認可

IAMユーザーはAWSアカウント(root)で作成できるユーザーアカウント(認証)。このユーザーにポリシーと呼ばれるAWSサービスの操作権限をアタッチすることで、IAMユーザーがサービス利用を認可される。

IAMユーザーを束ねる概念としてIAMグループがあり、グループへのユーザー追加はもちろん、グループにポリシーをアタッチすることで、グループ内のユーザーへの認可も可能となる。

上記と同様に、AWSサービスに対しても他のAWSサービスを操作させるためのポリシーをアタッチすることが可能で、その際は操作する側のAWSサービスにIAMロールを設定し、ポリシーをアタッチする。

ここまでが、「ユーザーベースのポリシー」で、種類としては - AWS管理ポリシー:AWSが提供する汎用的なポリシー - カスタマー管理ポリシー:ユーザーが定義するポリシー(再利用可能) - インラインポリシー:個別作成するポリシー がある。

ユーザーベースのポリシーとは別に「リソースベースのポリシー」があるが、この理解が若干ややこしい。ここではわかる範囲で記載するが、今後AWSを利用して誤解があった場合は訂正する。

ユーザーベースが操作する主体に付与するのに対して、リソースベースは操作される側に付与する。従って、リソースベースのポリシーは〇〇にどの操作を許可するという記述になる。(であっているかな?)

図を書いた方が良いが、参考リンクの焼き回し感で出るので控えます。

無料利用枠で何するか

ようやく無料利用枠の開始。

使いたいサービス(サイト記載の順)は

  • EC2及び関連サービス
  • S3
  • Lambda
  • SNS
  • API Gateway
  • ElastiCache
  • SQS
  • Glue

あとは、機械学習とIOT系はどんなものかは試してみたいな。

「何を作る」というよりは「AWSとは何か」を探っていき、作りたいものを考えることにする。

aws.amazon.com

AWS 無料利用枠で何かやってみる Day 3

Day 3 で何やる?

ということで、Day 2での宣言通り、AWSキーワードの整理と学習をやります。

とはいえ、完璧の学習するとなると、どんどんAWS触るタイミングが遠ざかるというか、熱量無くなるので、今日だけ取り組んで、後は適宜学習していきます。 個別サービスについては実際に使う際に整理するとして、共通の概念を抑えていきたいと思う。

なお、AWSのリファレンスガイドにある用語集を真剣に読もうとすると、読んでる内に浦島太郎状態になりそうなので、そっ閉じ。(※キーワードを元に公式の解説を読むには良いと思います。)

docs.aws.amazon.com

参考にしたサイト/書籍は以下の通り(感謝)

サイト

書籍

  • AWS認定資格試験テキスト AWS認定ソリューションアーキテクト - アソシエイト 改訂第2版 www.amazon.co.jp

AWSキーワードの整理と学習

RegionとAZ:Availability Zone

RegionとAZ(:Availability Zone)は仮想の話ではなく、物理(地理)的拠点の話。
例えば、Regionはアメリカ北カリフォルニアや、中国北京や、日本東京。構築するサービスがどこからアクセスがあるかなどを検討した上で、Region選択することで通信効率は上がるが、Regionによって提供サービスやコストは異なる。また、Regionは完全に独立しているため、複数Region上で同一(というか共同)の仮想環境は構築できないと思われる。

AZはRegion内のデータセンターで、各AZは地理的・電源的に独立しているが、AZ間は高速なネットワーク回線が引かれているのでAZ間のネットワーク遅延は気にする必要はなさそう。

世界規模の何かを企んでいない限りは、Region選択は日本で良いと思われる。可用性に関しては、マルチAZ構成で担保できるが、この観点はVPCの説明が必要になる。

VPCとマルチAZ

VPCとはVirtual Private Cloudのこと。正直言う、「Cは何か知らなかった。プライベートな何かとは理解していたが...。」
AWS上に利用者が作る仮想環境(ユーザークラウド環境のような感じかな)が、VPCとなる。
では、VPCを作らないと基本的にAWSのサービスを利用できないかと言うとそういう訳ではなく、サービスによって

  • グローバルサービス
  • リージョンサービス
  • AZサービス

があり、AZサービスがVPC内に構成するサービスになっている認識。対象はEC2やRDS、ネットワーク等なのサービスというよりは、仮想環境(インスタンス)構築のイメージ。

VPCは仮想環境かつ、その範囲は利用者によって規定された仮想的なネットワークとなるが、このネットワークを複数AZに跨って設定することが可能であり、この構成を「マルチAZ構成」と呼ぶ。

とは言え、複数AZのそれぞれに仮想環境を構築したからといって、可用性に繋がる訳ではなく、例えばEC2で構築したサーバをマルチAZ構成にしているのであれば、インターネットゲートウェイ(IGW)の設定にて、冗長化や障害時復旧を実現する必要がある。なお、IGWはリージョンサービスとなるため、単一AZ障害には巻き込まれないという寸法となっている。

サブネットやルートテーブル、セキュリティグループなどなどネットワーク周りも整理すべきだが、ここは机上だけだと混乱するので、実際の構築と合わせて知識を整理する。

と言いつつセキュリティグループ

セキュリティグループはVPC内のインスタンスの仮想ファイアウォールの役割となる。インバウンドはデフォルトが拒否なので、セキュリティグループは必要分の許可設定が必要で、アウトバウンドがデフォルトが許可なので、不要分を削除する必要がある。

インスタンス単位ではなく、サブネット単位のファイアウォール機能もあり、ネットワークアクセスコントロールリスト (ACL) がその役割となる。

AWSでの認証認可

AWSでは、認証認可を「IAM:Identity and Access Management」が行う、、、、ん。概要がつかめたが整理が間に合わないので、Day 4で対応する!!

ん?いつになったらAWSのサービス触るのか!?

AWS 無料利用枠で何かやってみる Day 2

Day 2 で何やる?

ということで、このあたりやります。

  • 無料利用枠死守のための設定
    • AWS 無料利用枠使用状況アラート オプトイン
    • AWS Budgets コスト監視(コスト予算設定)
  • 業務では分かった振りしてなんとなく使っているキーワードを洗い出す(Day 3以降の学習ネタ)

AWS 無料利用枠使用状況アラートをオプトインする

以下の情報に従うと、

AWS無料利用枠使用状況アラートにより、 では、その月の使用量が 85% を超えたときに からAWS通知を受け取ることができます。

とのこと。

docs.aws.amazon.com

ということで早速設定(ついでにAWSコンソールのリージョン変更)

f:id:nabe_merchant:20210502215309p:plain

該当サービスは「無料利用枠の使用アラートを受信する」をチェックして、設定の保存をすればOK。
ついでに「E メールで PDF 版請求書を受け取る」もチェックして、受動的にもコスト確認可能としておく。

AWS Budgetsで念の為のコスト監視(コスト予算設定)を行う

AWS無料利用枠使用状況アラート」のドキュメントをさらっと読んだが、あくまで「無料枠」を対象としたアラートと読み取れるため、無料枠対象外に関しては誤って利用(そんな想定はない)した際に、どうなるの?という疑問がある。

従って、AWS Budgetsで予算設定することで、コスト監視を念の為行う。
方法については、以下を参照して実施した。というか、アラートの設定も以下が詳しい。ありがとう、Qiita!!

qiita.com

あとこちらも参考にさせて頂きました。

dev.classmethod.jp

ちゃんと勉強したいAWSキーワード(Day 3以降の学習ネタ)

ロールとポリシーは、正直言われるがままに設定している感じなので、きちんと抑えたい。
あと、AWS内のネットワーク周りも分かってない。 VPCはともかく、エンドポイントは要するに物理NWでは何なのか。みたいな。
そう、つまり何も分かっていない、ことが分かったことがこのセクションの収穫!!

そんなこんなで、調べているとまたQiitaに出くわす。

qiita.com

Qiita最高だな!! 次回以降は、基礎的な勉強結果のまとめ(参考にしたサイトと、理解のサマリー)を綴る。
ん?いつになったらAWSのサービス触るのか!?

Reverse/Re:verse/Re:birth

AWSの勉強を始めるにあたって、ブログに記録を残そうと思い、Hatena Blogさんで開始した。

nabemerchant.hatenadiary.jp

ブログのタイトルは
Reverse/Re:verse/Re:birth engineering

reverse :世にあるProductを観察し、engineeringを再学習し、
re:verse:再び、様々な技術・知識・思考を導入し、
re:birth :再び、engineerになる。

f:id:nabe_merchant:20210502233605p:plain

30代半ば、ITエンジニア
久しぶりにコーディングする機会を得て、エンジニアリング再始動という感じで、ブログを綴れば良いかと。

なお、noteもやっていたりする。正確には再開した、が正しいか。

note.com

Hatena Blogは、エンジニアnabe_merchantとしての記事を残していきたいと思う。
エンジニアとしての「技術・知識・思考」に関連する内容だ。
noteは必然とその他となる。Twitterもやっているが、、、、控えておこう。あれはマルチバースの話だ。

ん?その内容なら、Qittaのほうが良くね?と思ったそこのあなた!!
確かにそうなんじゃないか...と思いつつも、Qittaはハードル高いわ〜と思いつつも、Hatena Blogの中でQittaのリンクめちゃめちゃ貼りたおして、re:birthしたいと思います。

qiita.com

AWS 無料利用枠で何かやってみる Day 1

AWS 無料利用枠で何かやってみる」って、ナニソレ?

業務でようやく、AWSを使うチーム/PJTに配属されたので、すでに社用アカウントでは触り出しているのだが、「ゼロから自分」でということで、AWS無料枠を使って、具体的にAWSのサービスを触ってみることとする。

漂う今更感...ええーーーい!!そんなものは漂っていない!!!

AWS無料利用枠については、以下を参照してください。

aws.amazon.com

Day 1 で何やる?

Day 1 としては、とりあえずアカウント作成と今後のプランとタスクを整理する。

アカウント作成

アカウント作成は、上記のリンクの以下の「まずは無料で始める」ボタンを押下して進むだけ。 f:id:nabe_merchant:20210501173523p:plain

途中で、決済方法を求められて、「えっ無料枠じゃないの」って感じになる...けど

当然、無料枠のことは調査済みです。上記サイトを引用すると下記の通り。(※2021/05/01時点の情報となります。)

  • 12 か月間無料:

    これらの無料利用枠は、AWS の新規のお客様のみが対象であり、AWS にサインアップした日から 12 か月間ご利用いただけます。12 か月間の無料利用の有効期限が切れた場合、またはアプリケーション使用量が無料利用枠を超えた場合は、標準の料金、つまり従量制料金をお支払いください (価格の詳細については、各サービスのページをご覧ください)。ご利用にあたっての条件が適用されます。詳細については、提供規約をご覧ください。

  • 常に無料:

    これらの無料利用枠は、12 か月間の AWS 無料利用枠の期間が終了しても自動的に期限切れにはなりません。既存および新規の AWS のお客様のいずれも、無期限にご利用いただけます。

  • トライアル:

    これらの無料利用枠は、最初に利用した時点から開始する短期間の無料トライアルです。トライアル期間が終了すると、標準の料金、つまり従量制料金をお支払いください (価格の詳細については、各サービスのページをご覧ください)。

つまり、

  • 12ヶ月無料のサービスについては、本日2021年5月1日を起点として、12ヶ月間使えるが、各サービスの無料上限があり、超えると課金!!
  • 常に無料のサービスについては、期間制限なし、各サービスの無料上限があり、超えると課金!!
  • トライアルは各サービス利用から、それぞれのサービスで規定されている期間&上限の範囲内は無料、超えると課金!!
    • 例:Amazon Redshift 2 か月(1 か月あたり 750 時間の dc2.large 使用量が 2 か月間無料) など

と話がそれたので戻す。

アカウント作成は、登録ページが促す通り、そのまま入力してください。雑な説明ですが、下手に補足する必要はないです。最後の方にSMS認証があるので、日本を指定して携帯電話番号入れて認証を完了させる。

アカウント作成の直後にやるべきこと

作成したアカウントは、ルートユーザーとなる。

AWSアカウントは、ルートユーザーとIAMユーザーがあるが、そのあたりの詳細は以下。

AWS アカウントのルートユーザー 認証情報と IAM ユーザー認証情報 - AWS 全般的なリファレンスdocs.aws.amazon.com

適切なアクセス許可を持つ IAM ユーザーを使用して、タスクを実行し、AWS リソースにアクセスすることをお勧めします。ただし、アカウントの ルートユーザー としてサインインした場合にのみ、以下に示すタスクを実行できます。

とあるので、本当はIAMユーザー作って、AWS触ったほうがいいのだが、個人&まだ何のサービス触るかも決めてないので、IAMユーザー作っても都度リソースの割当...めん...ということでとりあえずルートのまま進める。

ただし、かなり強力なユーザーで、アカウント乗っ取りとか怖過ぎので、MFA(多要素認証)を設定する。

設定方法は以下の「AWS アカウントの root ユーザーの仮想 MFA デバイスを有効にする」を参照。

仮想 Multi-Factor Authentication (MFA) デバイスの有効化 (コンソール) - AWS Identity and Access Managementdocs.aws.amazon.com

なお、認証アプリは「Google Authenticator」を利用。

Google Authenticator

Google Authenticator

  • Google LLC
  • ユーティリティ
  • 無料
apps.apple.com

Day 2 以降 で何やる?

業務で利用しているのは、 - API Gateway - Lambda - RDS - DynamoDB など。このあたりは、お膳立てなしで環境準備などできるようになりたいなと。

次に、上記をServerless Frameworkでdeploy可能になり、最終的にはCode系からリリースする方法を理解する感じかな。

いや、業務で出来ているならいいのでは?という点はあるが、ポイントは「ゼロから自分」

あとは、SQSとかGlueは触って置きたい。EC2はどうしようか。

なお、可能な限り無料枠は超えたくないので、利用状況やコスト発生状況を見極めるために、「AWS Budgets」の勉強が最優先!!

AWS Budgets(設定した予算のしきい値を超えるとアラートを発信)| AWSaws.amazon.com

編集後記

  • ブログの名前ダサい。今晩なんとかする
  • テンプレートもうちょい横広いか、文字小さくしたい。今晩なんとかする
  • noteとの棲み分けは....。今晩なんとかする
    • 技術系のみこのブログ使うイメージ
  • もろもろ、今晩なんとかする!!