IT人材をお探しの方は、まずはお電話ください。担当営業がすぐにご要望にマッチした人材をご提案いたします。
tel:03-6409-6766 お急ぎの方はお電話ください

ブログTOP > IT・技術関連 > 「AWS CloudFormation package」コマンドで簡単アップロード!

「AWS CloudFormation package」コマンドで簡単アップロード!

IT・技術関連 更新日:2024.09.05
エンジニア採用
「AWS CloudFormation package」コマンドで簡単アップロード!

「AWS CloudFormation package」コマンドとは?


「AWS CloudFormation package」とは、「AWS SAM(※後述します)」テンプレートを利用して、ローカルPC上にある様々なファイルを「Amazon S3」にアップロードしてくれるコマンドです。

このコマンドにより、「Amazon S3」のリソース配置場所(一般的には「バケット名」や「ファイル名」) のURL情報を必要とする「リソースプロパティ」に対して、ローカルのパス(参照先)を指定できるようになります。

それでは、具体的な利用方法や関連用語について解説していきます。

「AWS Serverless Application Model(AWS SAM)」とは?

「AWS Serverless Application Model(AWS SAM)」とは、AWS上で「サーバーレスアプリケーション」構築に用いられるオープンソースのフレームワークです。

この「サーバーレスアプリケーション」は、「AWS Lambda」関数を中心として、イベントソース等のリソース類で構成されたものです。そして、各リソース間が協調して動作しながら、各種タスクを実行するという形態を取ります。

こちらの具体的な内容について、詳細に解説していきます。

「AWS Serverless Application Model(AWS SAM)」の特徴

「AWS Serverless Application Model(AWS SAM)」の特徴として、「AWS SAM」を利用することで「サーバーレスアプリケーション」を定義することが可能である点です。

そして定義する対象の「サーバーレスアプリケーション」は、「AWS Lambda」関数だけでなく、データベース(DB)、各種API、イベントソースのマッピング等の追加リソースまでも含めることができます。

これらの定義にはシンプルな記載が可能な「SAM構文」を用い、Lambda関数、DB、API、イベントソースマッピングを記述することができます。

またデプロイ中に、「SAM構文」を「AWS CloudFormation構文」に変換や拡張することにより、「サーバーレスアプリケーション」構築を高速化することも可能です。

「AWS Serverless Application Model(AWS SAM)」コンポーネント

「AWS Serverless Application Model(AWS SAM)」のコンポーネントは、「AWS SAM テンプレート仕様」、「AWS SAM コマンドラインインターフェイス(AWS SAM CLI)」の2つで構成されています。

「AWS SAM テンプレート仕様」に沿って、「サーバーレスアプリケーション」を定義しますが、アプリを構成するLambda関数、アクセス権限、API、各種設定、イベントを記述するためのシンプルで簡潔なSAM構文を用います。

そして「AWS SAM テンプレートファイル」によって、デプロイ可能でバージョン管理された「サーバーレスアプリケーション」を操作します。

一方、「AWS SAM コマンドラインインターフェイス(AWS SAM CLI)」を利用して、「AWS SAM テンプレート」で定義された「サーバーレスアプリケーション」を構築していきます。

「AWS CLI」によるコマンド使用方法について


「AWS CloudFormation package」コマンド利用方法を説明する前に、「AWS Command Line Interface(CLI)」によるAWS上でのコマンド使用方法を解説します。

「AWS CLI」を使用することで、AWS上のシステムリソースを対象として、作成、更新、削除等を実施することが可能です。

「AWS CLI」の概要

「AWS Command Line Interface(CLI)」は、コマンドラインシェルのコマンドを利用することで、AWS上の各種サービスと通信するためのオープンソース・ツールです。

「AWS CLI」を利用することで、「AWS マネジメントコンソール」画面上で提供される機能と同等の機能を実装するコマンドを実行できます。

「AWS CloudFormation package」コマンドの利用方法


「AWS CloudFormation package」コマンドの利用方法の例として、「AWS SAMテンプレート」を利用し、ローカルPC上に配置されている「zipファイル」を「Amazon S3」にアップロードするまでを解説していきます。

手動で「zipファイル」を「Amazon S3」のバケットにアップロードしてから、テンプレートにそのアップロード先の場所を追記するのではなく、「ローカルアーティファクト」と呼ばれるローカル上の配置場所を「AWS SAMテンプレート」内で指定します。

「ローカルアーティファクト」とは、ここでは「AWS CloudFormation package」コマンドが「Amazon S3」にアップロードしたファイルやフォルダへのパス(場所)を指しています。

「AWS CloudFormation package」コマンドのアップロード方法の種類

「AWS CloudFormation package」コマンドのアップロード方法の種類には、「ファイル指定」と「フォルダ指定」があります。

「ファイル」指定の場合は、コマンド実行により「Amazon S3」バケットにファイルを直接アップロードします。

アーティファクトのアップロード後に、コマンドはテンプレートのコピーを返却します。そのローカルの「アーティファクト」への参照は、「AWS CloudFormation package」コマンドによってアーティファクトをアップロード先の「Amazon S3」の場所に置換されます。

そして、返却されたテンプレートを利用して、「AWS CloudFormation」のスタックを作成や更新が可能となります。

「フォルダ」を指定した場合には、「AWS CloudFormation package」コマンドはフォルダの「zip ファイル」を作成してアップロードします。

「AWS SAMテンプレート」のヘッダ

AWS SAMテンプレートの「ヘッダ」は、「AWSTemplateFormatVersion」、「Transform」、「Description」で構成されます。

例えば、以下のような記載になります。

AWSTemplateFormatVersion: 2021-05-05
Transform: AWS::Serverless-2021-05-01
Description: AWS Cloudformation Package Command Test 

「AWS SAMテンプレート」のリソースの種類

「AWS SAMテンプレート」のリソースの種類(タイプ)には、「AWS::Serverless::Function」、「AWS::Serverless::Api」、「AWS::Serverless::SimpleTable」、「AWS::Serverless::LayerVersion」、「AWS::Serverless::Application」があります。

それぞれのデプロイ内容は、「AWS Lambdaをデプロイ」、「API Gatewayをデプロイ」、「Amazon DynamoDBのテーブルをデプロイ」、「Lambda Layerをデプロイ」、「Serverless Application Repositoryに存在するアプリケーションをデプロイ」となっています。

これらのリソースは、ローカルPC上のファイルを「Amazon S3」にアップロードが可能となります。

「AWS SAMテンプレート」例

「AWS SAMテンプレート」例としては、以下のような記述になります。

AWSTemplateFormatVersion: 2021-05-05
Transform: AWS::Serverless-2021-05-01
Description: Test


Resources:
  TestFunc:
    Type: AWS::Serverless::Function
    Properties:
      Handler: index.handler
      Runtime: nodejs8.10
      CodeUri: /home/user/src/test.zip

そして、実行する「aws cloudformation package」コマンドは以下の通りです。

aws cloudformation package --template /path_to_template/template.json --s3-bucket mybucket --output json > packaged-template.json

「aws cloudformation package」コマンドで簡単デプロイを実現しよう!


こちらの記事でご紹介してきた通り、「aws cloudformation package」コマンドを利用することで、ローカルPC上のファイルやフォルダを簡単に自動でデプロイできるようになります。

つまりこのコマンドを利用することで、「AWS SAM」を「継続的デリバリ(CD)」が簡単に構築できるようになります。

「aws cloudformation package」コマンドを活用して、「Amazon S3」へのCDに挑戦してみてはいかがでしょうか?

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニアAWSパートナー/Salesforce認定コンサルティングパートナー 認定企業
ITエンジニア派遣サービス事業を行っています。AWSやSalesforceなど専門領域に特化したITエンジニアが4,715名在籍し、常時100名以上のITエンジニアの即日派遣が可能です。

・2021年:AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
・2022年3月:人材サービス型 AWSパートナー認定
・AWS認定資格保有者数1,154名(2024年6月現在)
・Salesforce認定コンサルティングパートナー
・Salesforce認定資格者276名在籍(2024年5月現在)
・LPIC+CCNA 認定資格者:472 名(2024年6月時点)
ITエンジニアの派遣を利用したい企業様へ
ITエンジニアを派遣で採用したい企業様へ
  • 求人・転職サイトや自社採用サイトを使っているが、自社に合ったITエンジニアが応募してこない…
  • すぐに採用したいが、応募がぜんぜん集まらない
こんな悩みをお持ちの採用・人事担当者の方は、
オープンアップITエンジニアをご検討ください!

当社のITエンジニア派遣サービスは

  • 派遣スピードが速い!(最短即日)
  • 4,500名のエンジニアから貴社にマッチした人材を派遣
  • 正社員雇用も可能

こんな特長があり、貴社の事業やプロジェクトに合った最適なITエンジニアを派遣可能です。
まずは下記ボタンから無料でご相談ください。

無料相談のお申し込みはこちら
IT・技術関連の記事一覧へ

カテゴリから記事を探す

すべての記事一覧へ