ヤマムギ

growing hard days.

*

AWS認定SAPの執筆開始にあたって環境を構築しました

      2021/04/11

AWS認定ソリューションアーキテクトプロフェッショナル対策本の執筆開始にあたりまして、執筆環境を構築しました。

個別には過去のブログに書いてますが、改めてまとめておきます。
年に1回か2回しか行わない作業ですし、次回にはやり方を変えるかもしれませんので、自動化はしません。

AWS CodeCommitのリポジトリ

AWS CodeCommitで新規のリポジトリを作成しました。
このアカウントは執筆の際にいつも使っているアカウントですので、AWS Code Commitをプライベートリポジトリとして使うに記載のIAMユーザーの[AWS CodeCommitのSSHキー]はすでにセットアップ済です。

AWS CodePipelineの作成

新規のパイプラインを作成しました。

パイプライン名を指定して、IAMロールは別の本のときに作成したものを使用しました。

原稿のZipファイルの保存先は、他の本と同じS3バケットにしました。

ソースでCodeCommitのリポジトリを選択して、パイプラインのトリガーはCloudWatch Events、出力アーティファクトの形式はgitメタデータを含まないZipファイルにしました。

ビルドステージはスキップしました。
誤字脱字の自動チェックとかビルドステージで追加したいですね。
そのうちトライしてみます。

デプロイステージはAmazon S3にして、既存のバケット、オブジェクトキーを指定しました。

CloudWatch Eventsにルールが作成されていました。

AWS Lambdaのトリガー追加

LamndaのIAMロールとは別に署名付きURL作成用のIAMユーザーを作ってアクセスキーを発行しています。
理由は署名付きURLの有効期限を一週間にしたいためです。
IAMロールの場合は有効期限がLamnda関数のインスタンスが起動した際の認証情報が有効な期間のみとなり一週間もちません。

  • 署名付きURL作成用IAMユーザーのIAMポリシー
    追加したアーティファクトのオブエジェクトキーのプレフィックスを追加しました。

  • AWS Lambdaのコード
    追加変更はありません。
    署名付きURL作成用のIAMユーザーのアクセスキーは環境変数を使っています。
    これは、SecretsManagerでローテーション付きで保護したほうがいいですね。
    そのうち改善します。

  • S3トリガー

トリガーはプレフィックス単位にしていますので追加しました。

Mac、WorkingCopy(iPhone, iPad)にクローン

PyCharmをインストールしているMacでは次のコマンドを実行。

iPhone、iPadのWorkingCopyからは、アプリのClone機能を使いました。

URLは、ssh://SSHキーID@git-codecommit.リージョンコード.amazonaws.com/パス です。

例 ssh://APKAJMDDPOLPSL7OAYOA@git-codecommit.us-east-1.amazonaws.com/v1/repos/test

動作テスト

iPhoneから編集してコミット、プッシュして、パイプラインが起動して、署名付きURLが作成されることが確認できました。

さて、執筆がんばります。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS

ad

ad

  関連記事

Route 53 の加重ラウンドロビンルーティングでロードバランサー

Route 53の加重ラウンドロビンで両方1に設定してみました。 上図はイメージ …

AWS Secrets ManagerのローテーションでLambda関数の管理が必要なくなりました

Amazon RDS と AWS Secrets Manager の統合を発表と …

AWSアカウントの解約

アカウント作成メニュー確認のために作成したAWSアカウントを解約しました。 使っ …

AWS WAFをSIEM on Amazon OpenSearch Serviceで可視化

SIEM on Amazon OpenSearch Serviceを構築の環境に …

Amazon Location Service入門ワークショップ-マップの操作

関連記事 Amazon Location Service入門ワークショップの前提 …

NATインスタンスを作成する

プライベートサブネットのEC2インスタンスからカスタムメトリクスとCloudWa …

AWS Cloud9でJavaサンプルを実行する

リモートで共有開発ができるCloud9便利ですね。 Cloud9でJavaのサン …

既存のAWSアカウントをAWS Control Towerに追加

Account Factoryからは既存アカウントは追加できない? AWS Co …

AWSアカウント内のすべてのS3バケットを削除するLambda(Python)

やりたいこと 特定アカウント内のS3バケットを全部削除したいです。 バケット内の …

API Gateway 作成済REST APIの定義をSwaggerの形式でエクスポート

SAMで似たようなAPIを作りたくて、エクスポートしました。 Swaggerは、 …