0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS】Code○○系のサービスをまとめてみた

Last updated at Posted at 2025-04-20

はじめに

AWS DVAの勉強を始めて、SAAやSOAでは問われることのなかったCode○○系のサービスについての問題が多くみられるようになった。
一つも知らないので、情報を調べてまとめてみることにする。

Code○○系のサービス

CodeArtifact

さまざまなソフトウェアパッケージライブラリの保存、公開、管理を行えるサービス。

CodeBuild

継続的インテグレーション(CI)を実現するサービス
ソースコードのビルド、単体テスト、テスト結果の生成を自動化することができる。

buildspec.ymlファイル

ビルドプロセスを自動化するために、buildspec.ymlというファイルを作成し、アプリケーションのソースコードプロジェクトのルートに配置する。
buildspec.ymlの例↓


version: 0.2
phases:
  install:
    commands:
      - echo Installing dependencies...
      - npm install
  pre_build:
    commands:
      - echo Pre-build phase...
  build:
    commands:
      - echo Build phase...
      - npm run build
  post_build:
    commands:
      - echo Post-build phase...
      - npm run test
artifacts:
  files:
    - '**/*'

Secret Manager や System Manager Parametor Storeとの連携が可能。
パラメーターを環境変数経由で取得できる。

CodeCommit

2024年7月25日をもって、新規利用は終了している。既存ユーザーは使いたければ引き続き使用できるっぽいけど、実際はもう誰も使ってない認識で良さそう

マネージド型のソース管理サービス。Gitのようなもの。

CodeCommitを利用する場合、接続するための認証情報を端末にセットアップする必要がある。
主にHTTPS接続する場合と、SHH接続する場合での設定が必要。

CodeDeploy

EC2やLambda、オンプレミスインスタンスなど、さまざまなコンピューティングサービスに対してのアプリケーションのデプロイを自動化するサービス。

デプロイ方法

デプロイ方法を以下2種類から選択できる↓

In-Placeデプロイメント
デプロイ対象のインスタンもしくはコンテナに、直接アプリケーションをデプロイする

Blue/Greenデプロイメント
新しいアプリケーションのノード群を作成し、テスト完了後にトラフィックを新しいノード群に切り替える

デプロイグループ

デプロイのターゲットとなるEC2インスタンスやLambda関数をグループ化し、デプロイグループとして管理する。
これにより、どのリソースに対してデプロイを行うかを明確にする。

appspec.ymlファイル

デプロイプロセスを自動化するために、appspec.ymlというファイルを作成し、アプリケーションのソースコードプロジェクトのルートに配置する。
appspec.ymlの例↓


version: 0.0
os: linux
files:
  - source: /src
    destination: /dest
permissions:
  - object: /dest
    owner: root
    group: root
    mode: 755
hooks:
  BeforeInstall:
    - location: scripts/before_install.sh
      timeout: 300
      runas: root
  AfterInstall:
    - location: scripts/after_install.sh
      timeout: 300
      runas: root

CodePipeline

継続的デリバリー(CD)を実現するサービス

CIでコード品質のテストが行われた後の、デプロイ準備や追加のテスト(結合テスト、ユーザーテスト、ペネトレーションテスト)、デプロイを自動化できる。
上記一連の流れをパイプラインという。

パイプラインの中で、どのサービスがビルドするのか、どのサービスがテストするのか、どのサービスがデプロイするのか、という役割を決めて管理する、例えるなら監督のような立場のサービス、という認識。

おわりに

現在参画している案件で新しいアプリケーションの開発がスタートしているので、パイプライン作成などのタスクが降ってきた場合はこの辺りで得た知識を活用してやっていきたい。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?