techblog

AWSにおけるInfrastructure as Codeの考え方

目次

IaCのイメージ

IaC(Infrastructure as Code)のイメージとして下記に示します。

サービス名特徴影響範囲
AWS CloudFormationAWSリソース(VPC・EC2・RDS・Lamda等)のインフラ基盤をコード形式で管理するサービスGlobal/Mutable
TerraformHashiCorp社より提供されているオープンソースのインフラ基盤を宣言型コードで管理できるツールでaws・azure・gcp等の各種クラウドに対応している。Global/Mutable
AWS OpsWorksサーバの内部設定(ミドルウェア等のデプロイ自動化)管理をコード形式で管理するサービス。
CloudFormationよりも上のレイヤーになる。
Local/Mutable
AnsibleLocal/Mutable
KubernetesLocal/Immutable
DockerLocal/Immutable

※その他に「AWS Systems Manager(OSのパッチ適用やWindows、LinuxといたOS設定の自動化)」やAWS Config(フルマネージド型の構成履歴や構成変更通知機能を備えた監査サービス) が存在しますがここでは扱わないものとします。

aws iac 冪等性 純粋性 再現性

AWSにおけるサーバレスの定義は「お客様からみてサーバの存在を意識しない環境」のことをいう。

参考文献

【#CODT2020 解説】Infrastructure as Code の静的テスト戦略
C-1-5 Infrastructure as Code の静的テスト戦略
AWS CloudFormationをちょっとだけ理解した
インフラ技術を網羅的に学ぶ Infra Study Meetup シリーズ
search results for “Infrastructure as Code”
「Infrastructure as Codeに疲れたので、僕たちが本来やりたかったことを整理する」を1年掛けて整理した