LoginSignup
2
2

AWS CodeDeploy EC2 appspec.ymlを簡単に解説してみる

Last updated at Posted at 2023-12-14

概要

CodeDeployのデプロイで使うappspec.ymlの項目をちょっとだけ簡単に解説してみる。

対象のファイル

appspec.yml
version: 0.0
os: linux
files:
  - source: ./
    destination: /var/www/html/test
file_exists_behavior: OVERWRITE
hooks:
  ApplicationStop:
    - location: scripts/application_stop.sh
      timeout: 60
      runas: root
  BeforeInstall:
    - location: scripts/before_install.sh
      timeout: 60
      runas: root
  AfterInstall:
    - location: scripts/after_install.sh
      timeout: 60
      runas: root
  ApplicationStart:
    - location: scripts/application_start.sh
      timeout: 60
      runas: root
  ValidateService:
    - location: scripts/validate_service.sh
      timeout: 60
      runas: root
キー 内容の概要 備考
version appspec.ymlそのものの内容 初めて作ったときは0.0を記載
os 動作OSを記載 今回はAmazonLinux用なのでlinuxと記載
files デプロイするファイルの設定
┗ - source デプロイ元となるコードの階層指定 Githubで管理されているリポジトリのルートがデプロイルートの場合./になる
┗ destination デプロイ先ディレクトリ指定 EC2インスタンスのどこのディレクトリに- sourceで指定したファイル群を設置するのかを指定する
file_exists_behavior インスタンス内のファイルのふるまい設定 OVERWRITEとすることで上書きしてデプロイが可能
hooks デプロイ時の詳細な命令郡
┗ ApplicationStop デプロイの最も最初に実行される処理郡 サーバー停止処理などを記載
┗ BeforeInstall コード取得直前に実行される処理郡 キャッシュ削除やクリーンアップ処理などを記載
┗ AfterInstall コード取得直後に実行される処理郡 関連パッケージの取得やサービスの初期化処理などを記載
┗ ApplicationStart アプリケーション起動のための処理群 サーバー起動処理などを記載
┗ ValidateService デプロイの最も最後に実行される処理群 ヘルスチェック処理などを記載

上記の各hooks内部の要素を簡単に下記に記載する。

  • location: スクリプトファイルを指定
  • timeout: 当該hooksのタイムアウトを指定
  • runas: スクリプト実行時のユーザー指定

参考文献

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2