ラボ対策用の個人的な備忘録ページです。マネジメントコンソールで操作していきます。
全3記事ぐらいを予定して今回は次の通り。
- CloudFormationテンプレートのデプロイ
※DynamoDB使います。 - 変更&再デプロイ
![](https://na7log.com/wp-content/uploads/2022/02/sky_ava1n_face240.jpg)
では早速!
(参考) サンプルテンプレート
以下のAWS公式サイトからサービス毎のテンプレートを確認出来ます。
※上記はバージニア州の場合です(他のリージョンは上記サイトの左メニューより辿れます)。
マネジメントコンソールにログインする必要がありますが「デザイナーで表示」という項目は、なんとなく参考になります。こうゆうサービスの組み合わせで作るんだ、というのが伝わります。
![](https://na7log.com/wp-content/uploads/2023/01/image-13-1024x389.jpg)
デザイナーの各要素をクリックすると、該当部分のコードに飛んでくれるので、わかりやすいです。
テンプレートのデプロイ
実際に操作をして雰囲気を掴んでいきます。
CloudFormationのサンプルテンプレートをデプロイしていきます。今回は「DynamoDB」のサンプルテンプレートを使います。
バージニア州リージョンのCloudFormationサービスのスタックより「スタックの作成」→「既存のリソースを使用(リソースをインポート)」を選択します。
![](https://na7log.com/wp-content/uploads/2023/01/image-13-1-1024x226.jpg)
続いてテンプレートの指定では「Amazon S3 URL」を選択して、次のように入力します。
https://s3.amazonaws.com/cloudformation-templates-us-east-1/DynamoDB_Secondary_Indexes.template
![](https://na7log.com/wp-content/uploads/2023/01/image-13-2-1024x547.jpg)
続いての画面ではスタックの名前などを入力して、後はデフォルトのまま進めます。なお、サンプルのDynamoDBはプロビジョンドモードで、スループット値もデフォルトのままです。
作成指定が終わると次のように作成中(CREATE_IN_PROGRESS)となります。
![](https://na7log.com/wp-content/uploads/2023/01/image-13-1024x456.png)
今回は1分程度で完了しました。
![](https://na7log.com/wp-content/uploads/2023/01/image-14-1024x514.png)
実際にDynamoDBサービスを確認すると、テーブルが作られていることが確認出来ました。
![](https://na7log.com/wp-content/uploads/2023/01/image-16-1024x213.png)
ここまでは特に問題なし。
- CloudFormation実行時の権限:サービスロール(IAMロール相当)省略時は、操作ユーザの権限が一時認証として利用される。
- スタック:作成された環境群。スタックを削除すれば一括で削除出来る。
変更&再デプロイ
先ほどデプロイしたDynamoDBは予め読み取りユニット数や書き込みユニット数を指定した「プロビジョンド」でしたが、動的であるオンデマンドに変更をしたいと思います。
先ほど作成した「スタック」を選択して「更新」ボタンをクリックします。
![](https://na7log.com/wp-content/uploads/2023/01/image-20-1-1024x220.jpg)
続いて「デザイナーでテンプレートを編集する」を選択して「デザイナーで表示」を選択します。
![](https://na7log.com/wp-content/uploads/2023/01/image-20-2-1024x478.jpg)
テンプレート画面(JSON)が表示されるため、propertiesセクションに以下を追記します。
“BillingMode”:”PAY_PER_REQUEST”,
さらに、「ProvisionedThroughput」に関係するタグを削除します。削除を忘れると更新実行時に次のようなエラーになるため注意します。
Resource handler returned message: “Property ProvisionedThroughput can’t be used with PAY_PER_REQUEST BillingMode.” (RequestToken: 92825f05-6d13-2f6c-983e-aa831f5c9f90, HandlerErrorCode: InvalidRequest)
最後に左上の雲アイコンより変更を決定します(まだ変更は適用されません)。
![](https://na7log.com/wp-content/uploads/2023/01/image-20-3-1024x460.jpg)
- 今回は雲アイコンで変更を決定したけど、一旦ダウンロードして変更を再度アップロードする手もある。
- ラボ試験中のトライ&エラーは許容だろうか・・・。(最終的に構成がデプロイ出来ればいいよね、たぶん。)
雲アイコンをクリックすると、テンプレートの準備画面に戻ります。変更したテンプレートは自動でAWS側のS3に一時的に保存されるようです。
![](https://na7log.com/wp-content/uploads/2023/01/image-20-5-1024x540.jpg)
「次へ」を進めていきます。
※途中で「変更セット」の確認画面がありました。変更セットのSysOpsの練習問題で見たことがありますが、適用前に変更点がわかる、という内容だったかと思います。
![](https://na7log.com/wp-content/uploads/2023/01/image-22-1024x275.png)
変更の適用が始まりました。
![](https://na7log.com/wp-content/uploads/2023/01/image-20-300x151.png)
今回は完了になるまで約20分程度かかりました。実際にDynamoDB側を確認すると「オンデマンド」になっていました。
![](https://na7log.com/wp-content/uploads/2023/01/image-21-1024x214.png)
CloudFormationの変更デプロイは以上となります。
実際の試験でCloudFormationが出題された場合に、どんなサービスが対象になるかは未知数ですが、雰囲気はつかめた気がします。正直JSONの細々とした記述はよくわかってないですが、ある程度ヒントがあって変更であればなんとかなりそうです。
(参考) ドリフト確認
CloudFormationのドリフトとは、テンプレートとリソースの差分検出です。練習問題でも出題をよく見るため、実際に目を通しておきます。
今回は最初にデプロイしたDynamoDBのプロビジョンドの書き込みキャパシティを10⇒8に手動で変更してみました。
ドリフトの検出より、差分を確認します。
![](https://na7log.com/wp-content/uploads/2023/01/image-17-1024x226.png)
ドリフトと判定されたため、詳細を確認してみます。次のように違いが表示されることが確認出来ました。
![](https://na7log.com/wp-content/uploads/2023/01/image-18-1024x442.png)
JSON上での差分を確認出来ます。
![](https://na7log.com/wp-content/uploads/2023/01/image-19.png)
まとめ
ラボ対策としてCloudFormationを取り上げました。
サンプルとして準備されたテンプレートをデプロイして簡単な更新を実施しただけですが、基本的な操作感覚はつかめることが出来ました。実試験でCloudFormationが題材になったとしても、少しは対応出来そうです。
![](https://na7log.com/wp-content/uploads/2022/02/sky_ava1u_body_face2.jpg)
最後までご覧いただきありがとうございました。
コメント