Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWS CloudShellを活用して簡単に!TerraFormによる AWSリソース構築(I...

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.

AWS CloudShellを活用して簡単に!TerraFormによる AWSリソース構築(IaC)を体験しよう

IaC
Terraform
AWS CloudShell
Handson

More Decks by キャリアチェンジAWSエンジニア

Other Decks in Technology

Transcript

  1. 2 IaC (Infrastructure as Code)とは?Terraformとは? インフラを手動で管理・デプロイするのではなく、 「コード」で定義・管理する手法 以下のプログラミング言語 を使用可能 ・TypeScript

    ・JavaScript ・Python ・Java ・C# ・Go AWS CDK (AWS Cloud Development Kit) ・AWS・Azure・GCPなど 1000以上のクラウドプロバイ ダで使用可能 ・言語はHCL(HashiCorp Configuration Language) ・可読性高い(人間にとって 読みやすい) ・JSONに近い Terraform 等 AWS CloudFormation (Cfn) ・AWSリソースをコードで 定義・管理できるIaC ・データ記述言語はYAML またはJSON
  2. 3 AWS ClouldShellを使うメリット AWSユーザーがブラウザ上で簡単にコマンドライン作業を行えるサービス AWS ClouldShellとは ローカル環境用意、が不要! ▪詳細仕様 ・OS: Amazon

    Linux 2023 ・ストレージ: 追加料金なしで、リージョン毎に最大 1 GB (もちろんClouldShellから作成したAWSリソースには通常通り課金されるので、試行後作 成したAWSリソースは削除必要) ・AWS CLIをCloudShellから起動できる ・広範な開発ツールがプリインストール済み:node.js、npm (・VPC内でも起動可能(1リージョン同時に最大2個まで)) ・AWS CloudShellの環境は「IAMユーザー単位 + IAMロール単位 + スイッチロール元のIAM ユーザー単位」で分離されている=他のユーザと同じ画面が見える訳ではない(private to you)
  3. 4 ClouldShell 注意点 ▪注意点 ・20~30分の非アクティブ状態が続くとセッションがタイムアウト ・キーボードまたはポインタを使用して 20~30 分間操作しないとシェルセッションは終了 ・実行中のプロセスは、操作数としてカウントされない →タイムアウト後は、再接続(少し時間かかる)すると、タイムアウト前と同じ作業が可能

    (CloudShellの仕組み:一時的な計算環境を使い、接続時にホームディレクトリに 保存されたデータを復元する) ・データは、最後のセッションの終了から 120 日間アクションしないと削除されるの で注意! ・月間使用量制限がある (制限目安:複数名で毎日終日作業していると月末に使用不可。200時間との情報も。) →使用制限で使えなくなったら、試行であれば、他のリージョンで使用すればよい (制限引上申請も可能だが課金される) ClouldShellでCDK体験 詳細手順
  4. 5 作業内容概要 wget https://xxxxx sudo unzip xxxxx terraform init AWS

    ClouldShellを立上 Terraformをインストール Terraformを初期化 vi main.tf main.tfファイルを作成し viエディタで編集 1 2 3 terraform apply terraform applyを実行し、 main.tfファイルに記述した AWSリソースを作成 4 参考元:https://qiita.com/free-honda/items/19b4e7db8b8f24d41277
  5. 4)main.tfファイルを作成し、S3バケットを作成する記述を、言語 HCLで記述する ファイル編集後にESCキーを押し、:wqで保存して終了する 11 ❸詳細手順 vi main.tf Provider “aws” {

    region = "ap-northeast-1" } resource "aws_s3_bucket" "example" { bucket = “xxx-cloudshell-terraform-demo-yourname" aws_s3_bucket_acl = "private" tags = { Name = "ExampleBucket" Environment = "Demo" } } S3バケット名は世界中で一意 でないといけないので、 末尾に自分特有の名前を付与 してください 青色枠内:作業手順
  6. ~ $ pwd/home/cloudshell-user ~ $ ~ $ ll total 12

    -rw-r--r--. 1 cloudshell-user cloudshell-user 226 Xxx XX XX:XX main.tf -rw-r--r--. 1 cloudshell-user cloudshell-user 3171 Xxx XX XX:XX terraform.tfstate -rw-r--r--. 1 cloudshell-user cloudshell-user 181 Xxx XX XX:XX terraform.tfstate.backup ~ $ ~ $ rm main.tf ~ $ ~ $ rm terraform.tfstate ~ $ ~ $ rm terraform.tfstate.backup ~ $ ~ $ ll total 0 20 詳細手順 2)CloudShell上に作成保存した/生成されたファイルを削除 青色枠内:作業手順