はぐれメタルのケモノ道

通りすがりのはぐれメタルが少しだけ喋ります。

Udemy「手を動かしながら2週間で学ぶ AWS 基本から応用まで」受講修了しました!

どうも、はぐりんです。

 

2018年ももう少しで終わりですね。

あっという間の1年間でした。

 

さて、3か月に渡って受講しておりました

UdemyのAWS講座

https://www.udemy.com/aws-14days/

を修了しましたので、最後のDay15と合わせてまとめたいと思います。

 

Day15 講座の振り返りと今後について

【本講座で取り扱ったAWSサービス】
VPC
・EC2
・RDS
・ELB
・S3
・Route53
・IAM
・CloudWatch
・CloudFront
・ElastiCache
・SES
・SQS
・CodeCommit
・CodedBuild
・CodeDeploy
・CodePipeline
・CloudFormation

 

【今後ぜひやっていただきたいこと(講師の方より)】
1)実戦投入する
2)線で学んでいく
3)アウトプット/共有する

 

触ったサービス・費用・時間

触った総AWSサービス数:17

総学習時間:約16時間

総費用:約1,700円(1ドル=113円換算)
 内訳

 -講座費用:1,400円
 -AWS費用(10月):$0.96
 -AWS費用(11月):$0.97
 -AWS費用(12月):$0.69

 

受講を終えて

私自身、ちょうど業務でAWSを触り始めるのと合わせて今回の講座を受講しました。

AWSアカウントも持っていなかったレベルの初心者でしたが、トータル16時間の勉強の中で17ものAWSサービスを触り、なんちゃってではありますが動かすこともできるようになりました。

開発系サービスのCodeCommitなどは、この機会がなかったらサービス名すら知ることはなかったでしょう(私が業務で開発をしていないため)。

本講座を通して、AWS初めの一歩を無事に踏み出すことができたと感じています。

 

 

 

修了証明書も頂きました!

f:id:hagurinhagurin:20181228213916p:plain

修了証明書

 

なんとか無事に今年中に終えることができました。

では皆さんよいお年を!

 

 

 

Udemy「手を動かしながら2週間で学ぶ AWS 基本から応用まで」Day12,13,14

どうも、はぐりんです。

一か月ぶりの更新となります。

 

炎上プロジェクトはどうなったかって?

怒号と罵声が飛び交うぐらい順調です(ハート)

喧嘩を止めてると「私、何してるのかしら?」って思いますよね。

 

さて、受講が滞っていたUdemyのAWS講座

https://www.udemy.com/aws-14days/

のDay12,13,14を一気に受講しましたので、

その内容メモを残したいと思います。

 

 

Day12 Eメール送受信サービスSESとキューイングサービスSQS

Amazon Simple Email Service(SES)】
・フルマネージドなメール送受信サービス
・送信の特徴
 → AWSSDK経由でPGからメール送信を行うことが可能
 → 独自ドメインからメールを送れる
・受信の特徴
 → 独自ドメインを設定可能
 → 受信メールをS3に保存したり受信をトリガに後続処理を実施可能

・SESの利用方法(準備)
 → ドメインを登録する
 → Route53に紐づける
 → 利用緩和申請を行う(今回は行わない)
 → メールを事前登録する
 → マネジメントコンソールから送信する
 → SDKforPHPでメッセージを送信する

・SESは3つのリージョンからしか利用できない。
・初期設定
 → ドメイン登録(Route53にも登録される)
 → DKIMも有効にする。
 → 送信先メールを事前登録する。これで登録したアドレスにはメールを送れるようになる。
・マネジメントコンソールからテストメール送信
 → From:Route53に登録したドメイン(@の前は自由に設定)
 → To:事前登録したアドレス
 → メール送信成功!
・プログラムからのメール送信
 → バッチサーバへメール送信PHPを実行
 → メール送信成功!
SNSと組み合わせてメールが正しく送信できたかを取得することができる


Amazon Simple Queue Service(SQS)】
・フルマネージドなキューイングサービス
・処理の間にQueueをかませるメリット
 → 非同期処理にできる、モジュール間を疎結合にできる
・SQSの機能
 → 一度に複数件のメッセージを登録・処理できる
・注意点
 → 順序は保障されない
 → 同じメッセージを複数回受信する可能性がある(FIFOキューを検討する)
 → FIFOキューの方が価格が高い
・SQSの利用方法
 → キューを作成する
 → マネジメントコンソールから送受信する
 → SDKforPHPでメッセージを送受信する
・プログラムからSQSを利用する
 → 作成したキューのURLを指定してキューの送受信
 → ※うまく動かないと思ったらリージョン間違えてた!

【コラム2】
3)ネイティブアプリ+サーバレスAPIパターン
4)サーバレスSPAパターン+サーバレスAPIパターン
5)Twitterボット+サーバレスバッチパターン

→5)が、お手軽で面白そう!(課金も少ない模様)

 

 

Day13 アプリケーション開発を支援するCodeシリーズ

【Codeシリーズ】
・CodeCommit
 → ソースコードを管理するGitリポジトリサービス
・CodeBuild
 → ソースコードのビルド/テスティングサービス
・CodeDeploy
 → ビルドされたモジュールのデプロイサービス
・CodePipeline
 → 継続的デリバリー/継続的インテグレーションをサポートするサービス

【CodeCommit】
・フルマネージドなソースコード管理サービス
 → 簡単にGitリポジトリをホストすることができる。
 → プルリクエスト機能も利用できる
・利用するソースコードを準備する(@バッチサーバ)
リポジトリを作成する
 → マネージメントコンソールでリポジトリ作成
 → バッチサーバでgitの初期設定、初回のコミット。
   (別途、gitの勉強をすること。今回は写経)

【CodeBuild・CodeDeploy】
・フルマネージドなビルドサービス
 → コンパイルやテスト環境を簡単に構築することができる。
 → 作業はbuildspec.yml(ヤムルと読む)
・成果物格納用S3バケットの作成
・buildspec.ymlファイルの準備
 → アプリケーション名、S3バケット名を登録。
・CodeBuildでプロジェクトの作成
 → 新しいロールに権限の付与

・デプロイ自動化サービス。S3にあるビルド済のアーティファクトをEC2やオンプレサーバにデプロイする。
 → デプロイ動作は、appspec.ymlに定義する。
 → デプロイ方式を選択可能
 → デプロイ先にエージェントをインストールする必要がある。
・1)EC2用のIAMロール作成
・2)EC2にCodeDeployエージェントをインストール
・3)CodeDeploy用のロール作成
・4)CodeDeployの設定
 → アプリケーション名(buildspec.yml)と合わせる
 → デプロイ先のインスタンスを指定(Webサーバ2つ)し、
   ロードバランシングも有効にする。
   (デプロイ時に切り離ししてくれる)

・ビルドの実行→デプロイの実行
・ビルド時間は約8分。うち6分は「BlockTraffic」という動作
 → これはロードバランサーが切り離すのに待つ時間。
   ロードバランサーのターゲットグループで設定値を確認。
   
【CodePipeline】
・継続的デリバリーをサポートするサービス
・CodeCommit/CodeBuild/CodeDeployの流れをパイプラインとして定義することで
 ソースコードがコミットされたらデプロイまで自動化。
 → デプロイ前にリーダーの承認を必須とするというルールも定義可能。
・CodePipelineの設定をして、
 ソースコードを編集し、コミットすると自動でビルド、デプロイされることを確認。
 
 
Day14 CloudFormationを用いた環境構築の自動化

AWSの環境構築自動化サービスについて】
 ・1)Elastic Beanstalk
  → 定番インフラ構成の自動構築およびAppデプロイの自動化サービス
  → ◎アプリ開発にリソース注力できる、×自由度は低い
 ・2)OpsWorks
  → Chefを利用した構成管理サービス
  → ◎Chefを既に利用している場合に最適、×OSより下のレイヤー
 ・3)CloudFormation
  → AWSのリソース管理・構築を自動化するサービス
  → ◎自由度が高く何でもできる、×OSより上のレイヤー

【CloudFormation】
・テンプレート:AWSリースの構成をYAMLorJSONで記載したドキュメント
・スタック:テンプレートから自動構築されたAWSリソースの集合
・テンプレート
 → セクション(Parameters、Mappings、Resources)
 → 組み込み関数(実行時に決まる動的な値)
 
・CloudFormationを使ってみる
 → 1)テンプレートファイルの作成
 → CloudFormationにテンプレートファイルを渡す
 → 設定したVPCが自動で生成された
 → 2)Subnetの追加
 → テンプレートファイルの更新・アップロード。
 → 前回の差分を確認。
 → 更新。サブネットが自動生成されていることを確認。
   ※大文字と小文字を間違えてエラーになった。
 → 3)残りのネットワークまわりを仕上げる
 → 4)EC2のひな形を作る
 → 5)インスタンスタイプを実行時に選択できるようにする
 → 6)キーペアを登録する
 → キーペアはインスタンス作成時に埋め込むため、新規インスタンスが作成される
 → 7)MappingsセクションとFindInMap関数を使ってリージョンごとのAMIを選択する

・ベストプラクティス
 → 1)組み込み関数を使って環境に依存しないテンプレートを目指す。
 → 2)リソース追加・変更は必ずCloudFormationで行う
 → 3)テンプレートをバージョン管理する
 → 4)システムの規模やライフサイクルによってテンプレートを分割する
 → ※JSON or YAML
 → YAMLはコメントがかける、JSONよりカッコが少なくて済む。

 

 

今回の受講は約3時間でした。

受講を開始したのが10月頭なので、2週間の講座を丸々3か月かけて受講したことになります。

 

さて、講座は最後のDay15(まとめ)が残っているので、

次回の記事で受講をまとめたいと思います。

 

 

ではまた(´-ω-`)))コックリコックリ。。

Udemy「手を動かしながら2週間で学ぶ AWS 基本から応用まで」Day11

どうも、はぐりんです。

 

前回に引き続き、UdemyのAWS講座

https://www.udemy.com/aws-14days/

のDay11を受講しましたので、

その内容メモを残したいと思います。

 

Day11 コンテンツキャッシュとインメモリキャッシュ

・コンテンツキャッシュパターン
 → CDN(Content Delivery Network)を配置し、コンテンツをキャッシュすることでWebサーバの負荷を軽減する。
AWS CloudFront
 → AWSが提供するフルマネージド型CDNサービス
 → 世界に100を超えるエッジロケーションが存在する(リージョンとは別)
 → AWS WAF、AWS Certificate Mangerなどと連携できる。
・CloudFrontの導入
 → ELBの前段に配置
 → OriginDomainとしてALBを指定
 → Cacheの振る舞い設定で実験のためTTLを全て20秒にする
 → デプロイまで待つ。
 → CloudFrontで指定されたDomainNameでWebページが表示されることを確認。
・動作確認
 → index.phpを変更しての動作確認
 → curlコマンドでの「X-Cache」の値をチェックした
・CloudFrontを使う際のポイント
 1)キャッシュTTLの設定(短すぎても長すぎてもダメ)
 2)CloudWatchで監視する
 3)PopularObjectReportを参考に定期的に設定を見直す
   CloudFrontの画面から確認できる。

 

・インメモリキャッシュパターン
 → 頻繁にアクセスする「データ」をDBではなくインメモリキャッシュに格納することでデータベースの負荷を軽減する設計パターン
 → selectが多いデータについては利用価値が高い。またデータの種類によって格納先を変える場合(セッション情報など)
AWS ElastiCache
 → AWSが提供するフルマネージド型インメモリキャッシュサービス
 → セットアップが簡単(レプリ、バックアップが容易)
 → Redis:シングルスレッド、データ永続化可能。
 → Memcached:マルチスレッド、データ永続化不可能。
・ElastiCacheの導入
 → ElasticCache画面でパラメータグループとサブネットグループを作成。
 → サブネットグループには既存のPrivateSubnetを割り当てる。
 → セキュリティグループを作成(BatchとWebサーバからのアクセスを許可)
 → クラスターエンジンRedisで作成する。
   (パラメータグループ、ノードタイプ、サブネットグループ、セキュリティグループを設定)
・redis
 → Batchサーバにredis-cliをインストールし、redisへ接続してみる。
 → データセットのデモ
・ElastiCacheを使う際のポイント
 1)キャッシュするデータの選定
 2)耐障害性への考慮
 3)負荷テストを実施してノードのタイプを決定する

 

今回の受講時間は1時間、ここまでのAWS課金金額は1.65$です。

 

ではまた(o'ω')y-~

 

Udemy「手を動かしながら2週間で学ぶ AWS 基本から応用まで」Day10

どうもはぐりんです。

少し勉強のペースが落ちてますが、 残業100hコースで仕事頑張っているので(白目) 勘弁してください。

さて、今週はDay10「AWS CLIによるAWSの操作とCloudWatchを用いたシステム監視」です。

Day10

CLIによるAWSの操作とシステム監視

・Day9まではMustで理解しなければいけないサービスの紹介

・Day10以降は多数のサービスの中からいくつかをピックアップして説明する。

・Day10は「AWS CLI」と「システム監視(CloudWatch)」について

AWS CLI

→ コンソールからコマンドでAWSリソースを閲覧/操作することができる。

→ 初めてのサービスはGUIで、慣れてきたらCLIを試してみる。    (GUIで可能な操作は全てCLIで操作可能)

AWS CLIの導入と初期セットアップ

→ 事前準備:導入予定のバッチサーバでaws configureのconfigファイルを削除    (credentialsは前回削除していた)

→ IAMユーザごとにアクセスキー/シークレットアクセスキーを設定する。

→ アクセスキー:1つのIAMユーザに2つまで払い出しできる。    ※シークレットアクセスキーが画面を閉じると2度と見られない

→ IAMユーザを切り替えて作業が可能。    (--profileオプション)

AWS CLIの使い方

→ 公式ドキュメント!    https://docs.aws.amazon.com/cli/latest/reference/

CLIでのS3操作

→ aws s3 mb、aws s3 ls、aws s3 cp

→ 動作を確認した。

・CloudWatch

→ 運用監視のマネージドサービス

→ AWS SNS(Pub/Subメッセージングサービス)

→ システム間を疎結合にすることができる。

・CloudWatchの設定

→ 1)CloudWatchでメトリクスと閾値を設定    例:バッチサーバCPU使用率70%でアラート

→ 2)SNSの通知先を設定    例:自分のメールに通知させる

・実際のアラートを発生させてみる

→ BatchサーバのCPUが閾値が超えたのを検知(5分毎)し、メール通知が来たことを確認。

ダッシュボード機能

・CloudWacthLogs

→ ログに対してCloudWatchを設定する。

・後片付け

→ yesコマンドをkillする。

→ EC2停止。

・コラム:AWSで最初に作るべきアーキテクチャ集(1)

→ 王道Webパターン:ELB+Web2台+route53+RDS

→ シングルEC2パターン:Web+route53

今回の勉強時間は約40分、これまでの総課金金額は1.28$です

ではまた(・∀・)人(・∀・)

Udemy「手を動かしながら2週間で学ぶ AWS 基本から応用まで」Day9

どうも、はぐりんです。

 

今回はまたAWS受講記録に戻りまして、

Day9 IAM(AWS Identity and Access Management)の受講メモです。

 

Day9

IAM(AWS Identity and Access Management)

・IAMポリシー、IAMユーザ
・IAMグループの枠を作ってIAMポリシーを割り当て可能
・IAMロール→ロールにポリシーを関連づけてサーバに権限を持たせる。

 

・IAMポリシーの作成
・IAMユーザの作成
 → IAMポリシーに応じてインスタンスの作成が禁止された!
・IAMグループの作成→ポリシーの割り当て→ユーザの割り当て

 

・IAMロールについて
 → 事前準備:バッチサーバに持たせていたcredentialsを削除。
 → 事前準備:PHPからS3が見られなくなった。
 → 事前準備:IAMポリシーの作成
 → IAMロールの作成(IAMポリシーの割り当てる)
 → EC2インスタンスにIAMロールを割り当てる
 → PHPからS3が見られることを確認。
・安全にサーバから直接AWSのリソースにアクセスさせることができる。

 

・IAMベストプラクティス
 → 利用者ごとにIAMユーザを払い出し、IAMユーザを使い回さない。
 → 役割ごとのIAMグループを作成し、IAMグループに権限を振る。
 → 権限は必要最小限のものを割り当てて、必要になったら増やす。
 → 定期的に棚卸しをする。
 → プログラムから利用する場合、アクセスキー、シークレットキーではなく
   IAMロールを利用できないか考える。
   (ソースコードにアクセスキーを埋め込むのは絶対×)

 

今回の勉強時間は1時間、ここまでのAWS課金金額は1.43$です。

 

ではまた(^ω^)ノ