skillup

技術ブログ

サーバー・ネットワーク

CodeDeployに関して

投稿日:2022年4月3日 更新日:

近年のプロジェクトではアプリのデプロイに関して、サーバーに入ってgitコマンドを打つようなケースは減ってきており、何らかのデプロイツールを使ってやることが一般的。

CIツールを使ってデプロイ(git仕様)

一番簡便な方法としてはCIツールからSSHでサーバーにログインして、CIツールからgitコマンドを入力させるもの。

CIにSSHキーを登録すればすぐにできるため、非常に簡便。

CIツールを使ったオートデプロイに関して

が、以下のようなデメリットもあり。

  • そもそもサーバーにgitが入っていないとNG。近年ではサーバーレスになっていることも多く、そもそもgitをインストールしないといけない
  • サーバー構成が複数になっていた場合、コマンドが複雑になる、完全な同時タイミングのデプロイは難しい?

一般的にはストレージサービスに成果物をzipで固めて、配置しておき、それをデプロイするといったようなケースが一般的かと思います。

CodeDeployを使ったデプロイ

AWSのデプロイ自動化ツールのようで、EC2のような一般的なサーバーのみならず、lambdaなどもあり。

メリットに関して。

  • デプロイ前、後のコマンドを記載し、実行させることができる
  • 複数のサーバー群に対してのデプロイを一気に行うことができる
  • デプロイ履歴をログに残しておくことができる
  • ロールバック機能などもある

成果物自体はS3などにあげておき、ここから取り出すというケースが一般的。

イメージとしては、以下のような感じ

  • CodeDeployからEC2に命令を送る
  • EC2がS3に成果物を取りに行く
    (CodeDeployが取りに行かせていると言ったほうが正確かも)
  • 実際に成果物をデプロイし、デプロイ前後のコマンドを実行

実際の構築作業

大まかな流れに関して

  1. CodeDeployでアプリケーションとデプロイグループの作成(タスク作成)
  2. CodeDeployのIAMロールを作成し、付与
  3. EC2からS3にアクセスできるように、ポリシーを追加し、EC2にIAMロールを付与
  4. EC2がCodeDeployを実行できるように(CodeDeployからの指令を受け取れるように)、CodeDeployエージェントをインストール
  5. ソース側にデプロイ時の手続きについて作成(appspec.ymlとシェルスクリプト)。
    appspec.yml・・パーミッションやデプロイ先
    シェルスクリプト・・php artisanなどのアプリのインストールコマンド
  6. CIツール起動時にCodeDeployを叩く

ちなみに上のような流れに関しての具体的なAWSの設定方法やインストールコマンドは以下の教材の6章に非常に丁寧に書かれてます。(全てスクショが入っているので非常にわかりやすい・・・CIツールから直でデプロイする手段についても記載あり。)

ここまでのクオリティの教材はすごい・・・・(アフィリ&ステマではありません)

Laravel × CircleCI × AWSで学ぶCI/CD

-サーバー・ネットワーク
-,

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

dockerでの環境構築 〜コンテナ作成し、実作業ができるまで(mac編)

今や環境構築の保存や移行などが比較的自由にできるようにはなってきていると思います。 自分の場合は未だにvagrantのイメージフォルダを移行してやっていますが(汗)。 参考リンク vagrantで仮想 …

no image

herokuでのhttpd.conf設定

前回の記事でLet’s EncryptでSSL設定する場合、 http://ドメイン/.well-known/ というURLにアクセスする必要があります。 ただherok …

no image

nginxでの設定について

何回かやったnginxの設定について。 特にサブディレクトリなどに設定したいなどの時に悩みますね・・・ Contents1 locationディレクティブ2 try_filesディレクティブ3 fas …

no image

WinSCPの活用法

WinSCPの活用方法などについて WinSCPでZIPの解凍、ZIPへの圧縮を右クリックからカスタムコマンドで実行できるようにする。 特にzipでファイルを固める処理はよくやるので覚えておきましょう …

no image

OSI参照モデル イーサネットとMACアドレス

OSI参照モデルのレイヤー1とレイヤー2で必要不可欠な規格がイーサネットです。 有線ネットワークであればほぼこの規格を採用していると思って間違いないでしょう。 MACアドレスでコンピューターを識別する …

アーカイブ