コース終了後に予告なく内容の変更や削除をする可能性がありますのでご了承ください。
2023/04/20-21 | AWS Summit 2023 が開催されます |
2023/01/18 | AWS Builders Online Series が開催されました |
受講準備
- 【1】受講環境について
- ブラウザは Chrome もしくは Firefox をお使いください
- 極力 VPN は切断してください(通信が不安定になる可能性があります)
- 本コースではマイクの使用は必須ではなく、スピーカー(やヘッドホンなど)を準備いただければ ok です
- 可能であればモニターは複数用意していただくと演習(ラボ)が楽です(手順書と操作画面を行ったり来たりしますので)
- 【2】配信ツール (WebEx) について
- 本研修では、Cisco WebEx という配信ツールを使用します
- 画面が映らない、音声が聞こえない、という場合は こちら をご確認ください
- 接続方法としてアプリ版とブラウザ版がありますので、片方で調子が悪い場合はもう片方でのアクセスをお試しください
- 【3】使用するテキストについて
- 受講者ポータルから [受講者ガイド] ボタンを押下してください
- Bookshelf
というサイトのログイン画面に遷移しますので、メールアドレスを入力してアカウントの作成
or ログインをしてください
- ログインした Bookshelf アカウントに対して、講義パートで使用するテキスト(Student Guide)が登録されます
- ※ 過去に別の研修で受講者ポータルから Bookshelf にログインしたことがある場合は、自動でその Bookshelf アカウントにログインされます
- 受講者ポータルから [ラボガイド] ボタンを押下すると、同様に Bookshelf アカウントに対してハンズオンラボの手順書(Lab Guide)が登録されます
- 一度それらが登録されると、直接 Bookshelf にログイン してもテキストを閲覧可能となります
- なお、必要な情報はすべて配信画面に投影しますので、研修期間中は Bookshelf 画面から両テキストをご覧いただく必要はありません。2 つのテキストがアカウントに登録されたことを確認したら Bookshelf は閉じていただき、研修終了後の復習のための教材としてお使いください
モジュール補足
リンク切れ等ございましたらお知らせください。 また、記載している外部サイトの内容については内容の保証はしかねる点について予めご了承ください。
Mod01-02 (コースの紹介)
Mod03 (開発の開始)
開発の開始
AWS CLI
AWS SDK
AWS Toolkit
AWS Cloud9
参考 : AWS CloudShell
- AWS CloudShell # マネジメントコンソール上から利用可能なシェル環境
Mod04 (アクセス許可)
AWS Identity and Access Management (IAM)
- AWS Identity and Access Management (IAM)
- IAM と連携する AWS のサービス # 各サービスがリソースベースポリシーに対応しているか確認できます
- ポリシーの評価論理
AWS Cloud9 & CloudShell
認証と認可
- 構成設定と優先順位 # 設定ファイルの読み込み順(AWS CLI の場合)
- AWS 認証情報の使用 # 設定ファイルの読み込み順(Java SDK の場合)
- 設定ファイルと認証情報ファイルの設定
- AWS Single Sign-On を使用するための AWS CLI の設定
- AWS CLI での IAM ロールの使用
- MFA トークンを使用して、AWS CLI 経由で AWS リソースへのアクセスを認証する方法を教えてください
Mod05-06 (S3)
ストレージ
Amazon S3
Amazon S3 (CLI)
Amazon S3 (SDK)
Mod07-08 (DynamoDB)
データベース
- AWS でのデータベース
- NoSQL とは
- AWS のデータベースサービスはなぜ複数存在するのか
- <講演> 今日からはじめる! AWS のデータベースと最適なサービスの選び方
- <事例> Pokémon Company # Aurora, ElastiCache, DynamoDB を利用
Amazon DynamoDB
DynamoDB (Tools)
DynamoDB (SDK)
Mod09 (Lambda)
AWS Lambda
Mod10 (API Gateway)
API Gateway
Mod11 (マイクロサービス)
マイクロサービス
- マイクロサービス
- AWS におけるマイクロサービス
- Implementing Microservices on AWS
- <講演> Amazon Culture of Innovation とマイクロサービスアーキテクチャ
- Advanced Developing on AWS # モノリスからマイクロサービスへの移行に関するプラクティスと技術について扱う AWS トレーニング
サーバーレス
- AWS でのサーバーレス
- <事例> ソニー株式会社 # サーバーレスの採用により新生『aibo』を約 1 年で開発
- <事例> 株式会社ドリコム # サーバーレスの採用によりシステムコストの 60% 減と人的コストの 60% 減を実現
- <事例> 株式会社大創産業 # サーバーレスの採用により運用コストの 90 %減を実現
- <演習> 初めてのサーバーレスウェブアプリケーション構築
- <演習> サーバーレスアーキテクチャで翻訳 Web API を構築する
- <講演> API 型ゲームサーバーのサーバーレス化と安定運用
- サーバーレスの勉強方法を聞いてみた
- サーバーレスの始め⽅
- Developing Serverless Solutions on AWS
AWS Step Functions
参考 : AWS Lambda Power Tuning
Mod12 (Cognito)
Amazon Cognito
Mod13 (デプロイ)
DepOps
AWS SAM
参考 : AWS CloudFormation
- AWS CloudFormation
- AWS CloudFormation のベストプラクティス
- AWS CloudFormation のセキュリティのベストプラクティス
- サンプルテンプレート
- テンプレートスニペット
- <事例> サイボウズ株式会社 # AWS CloudFormation 等の活用で半月かかっていた作業が 1 週間に短縮
- <事例> 本田技研工業株式会社 # AWS CloudFormation 等の活用で海外展開を 2 週間に短縮
- <事例> 京セラ株式会社 # Infrastructure as Code による自動化で工数を大幅削減
- <講演> AWS で始める Infrastructure as Code
- <外部> ガバメントクラウドにおける IaC (Infrastructure as Code) の考え方
参考 : AWS CDK
参考 : AWS CodeCommit
参考 : AWS CodeBuild
参考 : AWS CodeDeploy
参考 : AWS CodePipeline
参考 : AWS Amplify
- AWS Amplify
- AWS Amplify Docs
- アプリを爆速で開発 ! AWS Amplify Studio で出来ること
- Web アプリ / モバイルアプリを高速に開発できる「AWS Amplify」をグラレコで解説
- <講演> AWS Amplify
- <講演> Level Up! AWS Amplify〜 爆速かつスケーラブルなフルスタック Web / モバイルアプリケーションの開発 〜
- <演習> AWS Amplify を用いた Web サイトの構築方法を学ぼう
- <演習> Amplify SNS Workshop
- <演習> 静的ウェブサイトをホスティングする
- <演習> AWS Amplify を使用してシンプルなウェブアプリケーションを作成する
- <演習> サーバーレスのウェブアプリケーションを構築
- <演習> ウェブアプリケーションをデプロイし、API やデータベースとの対話性を追加する
- <外部> Amplify Studio でフォトストレージを作ってみよう!
Mod14 (モニタリング)
オブザーバビリティ
Amazon CloudWatch
AWS X-Ray
- AWS X-Ray
- ダウンストリーム呼び出しを計測するためのライブラリへのパッチ適用 # X-Ray SDK の適用の仕方(Python の場合)
- <外部> Lambda を使ったサーバレス構成の社内アプリのデバッグのために X-Ray を使ってみた
ラボ補足
全体
- ラボは自分のペースで進めてください
- ラボを終わらせることが目的ではありません。理解することが目的です
- カウントダウンが 0 になると一度リセットされますが、1 ヶ月間はラボ環境を使い続けることができますので、必要に応じて再挑戦してみてください
- 各入力項目やコマンドはラボガイドからコピー、ペーストして下さい
- 手で打つと間違えが多くなります
- あわてて取り組むとミスをしがちです。1 つ 1 つのタスクを丁寧に実施しましょう
- [サービス ▼] から、よく使うサービスに「★」をつけておくと便利です
- また、サービス毎に複数のタブを同時に使用すると、サービスの行き来が楽になります
ラボの開始&終了方法
- 講師がラボを有効化すると、受講者ポータルから当該ラボの [起動]
ボタンが押下できるようになります
- 本コースでは、多くのラボで Python / Java / .NET 版を選択可能です
- 言語によって使用する IDE が異なります
- Python : Cloud9 を使用
- Java : 開発用 EC2 にリモートデスクトップ (RDP) して、IntelliJ IDEA を使用
- .NET : 開発用 EC2 にリモートデスクトップ (RDP) して、Visual Studio を使用
- どの言語を選んでも OK ですが、以下のような特徴があります
- Python : コードが短くてシンプルだが、IDE の補完が効かない。座学でのデモで使用
- Java : RDP が必要。少しコードが長いが、IDE の補完が効く。座学でのデモで使用
- .NET : RDP が必要。少しコードが長いが、IDE の補完が効く
- 実施したい言語のバージョンの環境について [起動]
ボタンを押下してください
- すると、環境の初期化が開始されます
- ラボ環境の初期化が終わると [ラボを開始する] ボタンが押下できるようになります
- ボタンの押下後、環境リセットまでの残り時間のカウントダウンと、[コンソールを開く] ボタンが押下できるようになります
- ボタンを押下するとマネジメントコンソールにログインします。以降、カウントダウンページに記載の手順に従ってラボを開始してください
- 次の講義の開始までに [ラボを終了する]
ボタンを押下するようにしてください。
- 過去のラボ環境が起動しっぱなしの場合、後続のラボが開始できなくなることがあります
- ラボが終了したら ログアウト をしておきましょう。ログインしっぱなしの場合、次のラボの開始時にログアウトを求められ、少々煩雑です
ラボ実施中の注意点
- 日々コンソールの見た目が変わっているため、説明と実際の操作が食い違うところがあるかもしれません
- 適宜、説明の指示に近い操作に読み替えて実施してください
- 何度か “コンテキストメニュー” という言葉が登場しますが、右クリックして表示されるメニューのことです
- 何度か “ナビゲーションペイン” という言葉が登場しますが、左側に並んでいるメニューのことです
- 何度か “イニシャルと郵便番号に書き換えてください” という指示がありますが、他の参加者の方と重複しない文字列なら何でも ok ですので、覚えやすいものに書き換えてください
- 稀に、マネジメントコンソールの言語が英語になっていることがあります。その場合は、画面右上の「awsstudent」をクリックし、[Settings] のページから言語を切り替えられます。
Lab1
- 注意
- 手順書では RDP 以外の方法として Apache Guacamore を使用した接続について解説がありますが、RDP をオススメします
- Python : タスク 1
で認証情報のセットを間違ってしまった場合は、
rm ~/.aws/credentials
やrm ~/.aws/config
を実行して認証情報ファイルを削除し、改めてaws configure
コマンドでセットし直してください
- 補足
--debug
時の出力ログは、ひとつひとつ読み下していく必要はありません- Python : Cloud9 のデフォルトでは使用される認証情報は、マネジメントコンソール使用時の認証情報が引き継がれます。今回はその部分の設定を変更し、Cloud9 の実体である EC2 に紐づいている IAM ロールを使用するようにしました。
- 追加課題
- 改めて
aws configure
コマンドを実施し、適当なアクセスキーやシークレットアクセスキー(abcdefg12345 など)をセットして、その後aws sts get-caller-identity
を実施し直すと、どう出力が変化することが想定されますか?また、それはなぜですか?
- 改めて
Lab2
- 注意
- 各ラボではそれぞれ別々の環境を使いますので、改めてログイン等をし直すようにしてください
- オプション課題は、実施不要です
- 補足
- 手順通りにコードを書いて実行、のみだと行われていることが理解しにくいので、適宜マネジメントコンソールを見に行って、リソースが実際に作成・変更・削除されていることを確認しながら進めていくと理解が深まります
- 追加課題
- website コマンドを実行すると、ウェブサイト用の URL
が新たに払い出され、キーを指定しないでアクセスした場合の表示ドキュメント(通常は
index.html)やエラー時に表示させるドキュメントを定義できるようになります。
このことを確かめるために通常の URL をキーを指定せずにアクセス(末尾が
...amazonaws.com
で終わる)してみてエラーになることを確かめてみましょう。続いて、同じようにウェブサイト用 URL をにアクセスして index.html の内容が表示されることを確かめてみましょう。
- website コマンドを実行すると、ウェブサイト用の URL
が新たに払い出され、キーを指定しないでアクセスした場合の表示ドキュメント(通常は
index.html)やエラー時に表示させるドキュメントを定義できるようになります。
このことを確かめるために通常の URL をキーを指定せずにアクセス(末尾が
Lab3
- 注意
- 補足
- 手順通りにコードを書いて実行、のみだと行われていることが理解しにくいので、適宜マネジメントコンソールを見に行って、リソースが実際に作成・変更・削除されていることを確認しながら進めていくと理解が深まります
- 追加課題
- タスク 5 の後半では、条件付き Update についての手順がありますが、なぜ途中のコードをコメントアウトすると条件が正しくない項目の更新をテストしたことになるのかの説明が薄いです。この部分の挙動についてコードを読み下してみましょう
Lab4
- 注意
- 補足
- 追加課題
- Polly のドキュメントを調べて、別の VoiceId でも音声を生成してみましょう
- Python: ラボのコードでは署名付き URL を生成する際に有効期限を決めていません。(1) boto3 のドキュメントを検索してデフォルトの有効期限を調べてみましょう (2) 有効期限を 1 分にしてみて、実際に 1 分後に mp3 をダウンロードできなくなるか確かめてみましょう
Lab5
- 注意
- このラボでは実装は行わず、すべてマネジメントコンソール上で操作が完結します
- TODO は 2 箇所とも、考えてもしょうがない部分なので、早々に答えを確認してしまい、API Gateway の挙動を確認する、という目的でラボを進めることをオススメします
- 補足
- テスト時に新しいデータを追加したタイミングで、DynamoDB のページにいって項目をスキャンしてみましょう。
- 追加課題
Lab6
- 注意
- 補足
- 手順 54 : ここで、UserId として
cognito:username
を渡していますが、JWT に含まれるsub
も ID としてよく用いられます(doc)
- 手順 54 : ここで、UserId として
- 追加課題
- 実は Polly は日本語にも対応しているので、日本語を再生できるように改良してみましょう!
web/src/Components/Notes/NoteDisplay.js
の 16-21 行目の配列に、Japanese を追加します- この時、
voice
はTakumi
とMizuki
にしてください
- この時、
- 保存後、
npm run ...
のコマンドと、aws s3 sync ...
コマンドを再実行すれば、反映されます
Lab7
- 注意
- 補足
- 追加課題
今後の学習情報
-
- 無料の e-learning 形式のトレーニング等が提供されています
Practice Question Set
で検索すると無料で資格の模擬試験にチャレンジできます
-
- こちら にロールごとの学習パスが紹介されています(例:開発者)
- 本コースの関連コースには以下があります
- Advanced Developing on AWS # クラウドネイティブなアプリケーション構築の方法論
- DevOps Engineering on AWS # CI/CD にフォーカス
- Developing Serverless Solutions on AWS # サーバーレスやイベント駆動による開発にフォーカス
AWS 全般の学習情報
-
- オンラインでの受験も可能となっています (link)
- 本コースと近しい資格は AWS 認定 デベロッパー – アソシエイト です
認定資格(デベロッパーアソシエイト)向けの追加情報
- まずは上記の資格のページから試験範囲となるサービスを確認しましょう
- 本コースで登場しないサービスで試験範囲のものはいくつかありますが、Elastic Beanstalk や SQS, SNS あたりは押さえておいたほうがいいかもしれません
- 各サービスの概要は AWS サービス別資料 が把握しやすいです
- また、サービスによっては「<サービス名> グラレコ」で検索すると、分かりやすい記事が出てきます(例)
- また、上記の「AWS スキルビルダー」で、気になるサービス名やキーワード(Serverless 等)で検索して e-learning がないか探してみるのもよいです
- また、可能であればハンズオン等で対象のサービスは触っておけるとよいです
- 上記の「AWS ハンズオン資料」のうち、気になったものはぜひ実施してみましょう
- このポータルサイトで
<演習>
とあるリンクは、すべてハンズオンへのリンクです - Code シリーズや SAM ははぜひ触っておきましょう
- AWS 認定試験を受けるときのコツ もぜひ参考に
- まずは上記の資格のページから試験範囲となるサービスを確認しましょう