目的
7月になってから仕事でAWSを使い始めたので、CI/CDの勉強会に参加した
ハンズオン資料
JAWS-UG 初心者支部#37 codeシリーズハンズオン
ハンズオンのまとめ
構築するリソースを理解する
JAWS-UG 初心者支部#37 codeシリーズハンズオン 構成図の通り
VPC
- 構成図の通り、Cloud9とEC2がVPC内にあるので最初に作成した
- Cloud9とEC2を使わなければ不要だと思う
IAMロール
下記リソースのフルアクセスを付与した。
- EC2
- CodeCommit
- CodeBuild
- CodePipeline
- CodeDeploy
- S3
キーペアとEC2
- ハンズオンではEC2にsshしなかったのでキーペアは利用しなかった
- 今回のハンズオンでは、CodeStarでテンプレートを指定したらデプロイ先が自動的にEC2で決まった
- Codeシリーズだけを使いたい分には不要だと思う
Codeシリーズ
- CodeCommit
- CodeBuild
- CodePipeline
- CodeDeploy
- ビルド成果物のデプロイを行う。デプロイ先はAWS以外も選択できる
- CodeStar
クラウドIDE
S3
- CodeBuildで作成した成果物を保存
CloudFormation
明示的に利用しないので構成図にはないが、CodeStarでリソースを作成するとCloudFormationが利用されていた
前半: 準備+CodeStarでリソースを作ろう
CodeStarの利用
AWS CodeStar のセットアップ - AWS CodeStar
前提
『ステップ 3: ユーザーの IAM アクセス許可を設定する』に書いてある。
ハンズオンではAdministratorAccess管理ポリシーを持つIAMユーザで操作した
サービスロールの作成
初回はサービスロールの作成を求められる。これで開発者の代わりにCodeStarが様々なリソースを作ってくれる
Amazonアカウントとの連携
しばらくしたら表示されなくなった。AWSアカウント作成直後などに表示されることがある模様
その他
- リポジトリの指定
- プロジェクトテンプレートを選択
- 今回はHTMLを選択
- デプロイ先のサービスはEC2
- EC2の作成
ここまで操作するとCloudFormationが必要なリソースをまとめて作成していた
Cloud9環境の作成
ソースコードの修正とpush
Cloud9でソースコードを作成してpushすると、EC2に自動で修正がデプロイされた
ビルドが動く仕組み
buildspec
に書いてある
CodeBuild のビルド仕様に関するリファレンス - AWS CodeBuild
後半:手動でリソースを作成しよう
CodeStarで作成されたリソースとIAMロールを手で作成して、EC2のデプロイを試してみた
後片付け
EC2の止め忘れがないよう注意
雑談
最後の雑談で週末何をするか、の話から、AWS資格の取りやすさと勉強のコツの話に
- Solution Architect Associateは難しい
- 最初はSysOps アドミニストレーター – アソシエイトから入ると簡単
- Solution Architect Professionalに合格するためには、ドキュメントを全部読むこと
ここは経験者のコツや職場の考え方次第で色々見方があるなあと思った。ハンズオン中の運営さんの雑談も勉強になった
トラブルシューティング
ハンズオン中に起きた困りごとの対策
AWSからYour Request For Accessing AWS Resources Has Been Validatedという件名のメールが来る
ハンズオン中にAWSからメール受信。
何がValidatedなのかわからないので運営さんに質問したところ、AWSアカウント作成直後に起きることがあるということで、特に対応不要だった。
Dear AWS Customer, Thank you for using Amazon Web Services! You recently requested an AWS Service that required additional validation. Your request has now been validated for AWS Asia Pacific (Tokyo) region(s). If you are still experiencing difficulty, please contact us at aws-verification@amazon.com <[[mailto:aws-verification@amazon.com]]>. Thank you for your patience. —The Amazon Web Services Team
デプロイに失敗する
参加上の振り返り
印象的なコメント
- CodeCommitに課題がないのが不便なので、CodeCommitにJIRA連携機能があるのではないか?
勉強会への取り組み方
- 仕事でないので仕事部屋にあるモニタを使わなかったが、PCのモニタがあったほうが良かった。ハンズオン資料を見ながらAWSコンソールを触ることが出来るので効率がいい
- AWSの画面キャプチャを撮るときは個人情報を載せないように注意
- IAMユーザに自分の名前などを付けなければ回避できると思う
AWSの知識
- 事前にEC2, VPC, IAM, CloudFormationの知識があったので比較的困らなかった
- AWSのリソース作成は、手動よりCloudFormationやCodeStarを使ってまとめてリソースを整理したほうが便利
- 作成忘れやミスがない
- 一括でリソースを削除できる
- EC2のデプロイが完全に自動でできるのは嬉しい。その昔はEC2でも手動で切り替えをしていた
- CodeCommitは課題やプルリクエストのマージ権限などが充実すると仕事で嬉しい
- AWSアカウントを本番と本番以外で分割する場合、Codeシリーズのリソースはどちらのアカウントに配置すると良いのだろう
ありがとうございました。