こんにちは、ますのです。
AWS認定資格でプロフェッショナルまで取得出来ましたので、重い腰を上げるときがついにやってきました。
今までインフラとして基盤ばかり見てきたので、開発に関してはからっきし。Githubでのコード管理とかも良く分からんレベルです。
そんなわたしがずっと敬遠してきたデベロッパー部門に着手する時となります。
基本問題集で勉強し、Dev系のリソースは触ったことがほとんどありません。
Dev系もアソシエイト、プロを取るならば、
せめてCodeシリーズの概要レベルは分かるようにしておこうとハンズオンをやることを決意しました。
実施するハンズオンはAWS公式動画より
メールアドレスや会社名などの登録が必要ですが無料のハンズオンセミナーです。
AWS Hands-on for Beginners:AWS Code サービス群を活用して、CI/CD のための構成を構築しよう!
実施すること
主に以下のCodeシリーズのサービスについて、設定方法や動きを試すことが出来ます。
- AWS CodeCommit
- AWS CodeBuild
- AWS CodeDeploy
- AWS CodePipeline
内容としては2通りのパターンを確認することになります。
- 更新したhtmlをgit pushをトリガーにして、S3バケットへデプロイする
- 更新したhtmlをgit pushをトリガーにして、EC2インスタンスへデプロイする
どういう動きしているのか?という点まで理解しようとすると時間かかるので、ひとまずは手を動かすことに集中です。
ハンズオン所要時間
大体1~2時間くらい。
ダウンロードしたサンプルコードを利用すればエラー無く終わるのではないかと思います。
AWS操作に慣れていないようであればサンプルコードを利用していくことをオススメします。
手順で詰まった箇所
ここからはハンズオンを進めるなかで、おや?と感じた箇所になります。
旧画面で進む箇所がチラホラある
作成されたのが2020年ということもあり、画面が変わっている箇所がありました。
- S3バケットのプロパティ画面で「静的ウェブサイトホスティング」の設定の名称が違う
- EC2インスタンスの起動画面がガラッと変わってるので初心者泣かせ
こんな感じに見た目や文言が異なっているので、一時停止して少し考える必要があります。
初学者にはちょいときついですが、Codeシリーズに手を出している方ならきっと大丈夫な範囲。
別リージョンにリソースを作っていた
作業するときは東京リージョンがメインでやっています。
今回ですがcodebuildで何度動かしてもエラーが出てしまうところがあり、設定値を見直した時に気が付きました。
(こんな感じのエラーが出続ける)
[Container] 2022/07/24 07:57:09 Command did not exit successfully aws deploy --application-name 20220724-handson-app --s3-location s3://20220724-handson-2/artifact.zip --source src exit status 2
[Container] 2022/07/24 07:57:09 Phase complete: BUILD State: FAILED
[Container] 2022/07/24 07:57:09 Phase context status code: COMMAND_EXECUTION_ERROR Message: Error while executing command: aws deploy --application-name 20220724-handson-app --s3-location s3://20220724-handson-2/artifact.zip --source src. Reason: exit status 255
さっき作ったリソース消えてるやん?
あれ、何故にバージニア北部のリージョンが選択されてるん?
どうやらIAMロールを作成して画面遷移した際に、バージニア北部に戻ってしまう仕様があるようですね。
何か作成する時はリージョンを確認してから作業を行うことが吉です。
ymlファイルの記述間違えや git push忘れ
こちらは初歩的なもの。
普段利用していないので慣れてないのがバレるやつですね。
- インデントがずれていてエラー
- 気付いて直すがエラーが変わらない
- Cloud9で「git push」コマンド忘れ、masterブランチに反映していない
[Container] 2022/07/24 07:39:52 Waiting for agent ping
[Container] 2022/07/24 07:39:56 Waiting for DOWNLOAD_SOURCE
[Container] 2022/07/24 07:40:00 Phase is DOWNLOAD_SOURCE
[Container] 2022/07/24 07:40:00 CODEBUILD_SRC_DIR=/codebuild/output/src064014851/src/git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/20220724-handson
[Container] 2022/07/24 07:40:00 YAML location is /codebuild/output/src064014851/src/git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/20220724-handson/buildspec.yml
[Container] 2022/07/24 07:40:02 Phase complete: DOWNLOAD_SOURCE State: FAILED
[Container] 2022/07/24 07:40:02 Phase context status code: YAML_FILE_ERROR Message: did not find expected '-' indicator at line 8
git push忘れていることに気付かず、1時間くらい無駄に悩んだであります。
忙しい人はサンプルコード利用がオススメです。
(しかもcommands内でaws deploy 「push」が抜けている二重の罠)
DVA対策の掴みとしてやると良い
今回のハンズオンのおかげで、問題集でしか見聞きしていなかった内容が紐づいてきました。
設定ファイルの「buildspec.yml」や「appspec.yml」の配置場所、記述など。
他にもCodeシリーズの繋がりがざっくりと流れが見えたかなと。
やらないよりはやった方が良いというレベルには感じますが、イメージ出来る方が机上の勉強でも定着が良くなります。
SAP試験でも若干出てくる範囲なので最初のうちに触っておくと、幸せになれる時間が長引くかもしれません。