AWS CodeDeployからEC2 Auto Scalingにデプロイするチュートリアル
公式チュートリアルチュートリアル: アプリケーションを CodeDeployグループにデプロイするために使用します。Amazon EC2 Auto Scalingをベースにやってみます。
目次
IAMロールを作成
CodeDeploy向け
AWS管理ポリシーAWSCodeDeployRoleをアタッチしました。
関連のAWS管理ポリシーの名前を見てるとCodeDeployができることが見えてきますね。
###EC2インスタンス向け
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::replace-with-your-s3-bucket-name/*", "arn:aws:s3:::aws-codedeploy-us-east-2/*", "arn:aws:s3:::aws-codedeploy-us-east-1/*", "arn:aws:s3:::aws-codedeploy-us-west-1/*", "arn:aws:s3:::aws-codedeploy-us-west-2/*", "arn:aws:s3:::aws-codedeploy-ca-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-2/*", "arn:aws:s3:::aws-codedeploy-eu-west-3/*", "arn:aws:s3:::aws-codedeploy-eu-central-1/*", "arn:aws:s3:::aws-codedeploy-ap-east-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ] } |
チュートリアル向けのこちらと、エージェントをインストールするためのAmazonSSMManagedInstanceCoreをアタッチしました。
起動テンプレート作成
AMIはAmazon Linux 2 にしました。
インスタンスタイプはt3.microにしました。
キーペアは事前に作成していたものを使いました。
セキュリティグループはHTTP 0.0.0.0/0のものを使いました。
IAMロールには、
オートスケーリンググループ作成
起動テンプレートを選択して、
グループサイズを1にして、
タグにCodeDeployDemoを設定したぐらいです。
CodeDeployエージェントのインストール
オートスケーリングで起動したインスタンスにCodeDeployエージェントをインストールしました。
インストールは、Systems Manager RunCommandで、AWS-ConfigureAWSPackageで、AWSCodeDeployAgentをNameに指定して行いました。
デプロイの作成
CodeDeployのメニューから[アプリケーションの作成]ボタンを押下しました。
コンピューティングタイプは、EC2/オンプレミスを選択しました。
[デプロイグループの作成]ボタンを押下しました。
作成済みのIAMロールARNを入力して、
デプロイタイプはインプレース、
環境設定はAmazon EC2 Auto Scalingグループを選択しました。
デプロイ設定はCodeDeployDefault.OneAtATimeで、ALBのチェックを外しました。
[デプロイグループの作成]ボタンを押下しました。
デプロイグループが作成できました。
次に、[デプロイの作成]ボタンを押下しました。
チュートリアルのサンプルアプリケーションのS3のzipファイルのパスを入力しました。
他にはGitHubも選択できます。
[デプロイの作成]ボタンを押下しました。
成功しました!
EC2インスタンスのWebサーバーにも無事、アクセスできました。
appspec.yml
サンプルアプリのzipの中身を見てみますと、appspec.ymlがありました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
version: 0.0 os: linux files: - source: /index.html destination: /var/www/html/ hooks: BeforeInstall: - location: scripts/install_dependencies timeout: 300 runas: root - location: scripts/start_server timeout: 300 runas: root ApplicationStop: - location: scripts/stop_server timeout: 300 runas: root |
それぞれのスクリプトファイルも見てみます。
install_dependencies
1 2 3 |
#!/bin/bash yum install -y httpd |
start_server
1 2 3 |
#!/bin/bash service httpd start |
stop_server
1 2 3 4 5 6 |
#!/bin/bash isExistApp = `pgrep httpd` if [[ -n $isExistApp ]]; then service httpd stop fi |
なるほど、ですね。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
![](https://www.sbcr.jp/wp-content/uploads/2023/01/9784815617929-1-407x596.jpg)
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
![](https://www.sbcr.jp/wp-content/uploads/2024/01/9784815625382-3-420x596.jpg)
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
![](https://www.shuwasystem.co.jp//images/book/637791.jpg)
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
![](https://book.mynavi.jp/files/topics/135344_ext_06_0.jpg?v=1673514682)
「AWSではじめるLinux入門ガイド」という本を書きました。
![](https://www.yamamanx.com/wp-content/uploads/2023/12/81Rp5O9We6L._SY522_.jpg)
![@yamamanx](https://www.yamamanx.com/wp-content/plugins/lazy-load/images/1x1.trans.gif)
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
AWS Summit 2016 Tokyoに参加してきました (Day3)
飛天3日目です。 JAWS-UGブースのすぐ前にあったこのお水がめちゃめちゃおい …
-
-
Selenium, Headless ChromeとAWS Lambdaで夜な夜なスクレイピング
このようなアーキテクチャで、Alexaスキルの開発を進めていまして、元となる情報 …
-
-
RDSの拡張モニタリングを有効にしました
RDS for MySQLです。 変更メニューで、[拡張モニタリングを有効にする …
-
-
AWS BackupでRDSスナップショットをクロスリージョンコピー
クロスリージョンでコピーしたい対象と理由 このブログはブログのアーキテクチャをコ …
-
-
EC2インスタンスを必要最小限のパラメータでCLIとSDKから起動する
EC2インスタンスをCLIとSDKから起動するデモで、パラメータを必要最小限にし …
-
-
AWS CloudFormationでAmazon DynamoDBテーブルを作ってアイテムを追加する
デモ用にDynamoDBテーブルを作って消して、ということをたまにするので、Cl …
-
-
EC2スポットインスタンスの中断通知を受ける
オートスケーリンググループでEC2インスタンスをスポットインスタンスで使用してい …
-
-
TuneCoreの売上データCSVをS3に格納してAthenaのクエリをRe:dashのデータソースにして可視化する
先日参加しましたAWS Summit Tokyo 2017で、 [JapanTa …
-
-
EFSのマウントターゲットがデフォルトで作成されるようになってました
ひさしぶりにAmazon EFSファイルシステムを作成しました。 作成手順がすご …
-
-
AWS Application Discovery Serviceのエージェントを実行
本来はオンプレミスのサーバーにエージェントをインストールして、自動でアプリケーシ …