AWS関連のことを調べてみた2023年07月18日

AWS関連のことを調べてみた2023年07月18日

Falco Ruleを紹介するシリーズ – Console Login Through Assume Role

本シリーズでは、ランタイム脅威検知のデファクトスタンダードであるFalcoの検知Ruleを、1つの記事で1つ簡単に紹介していきます。
ランタイムセキュリティやFalco自体の概要を知りたい方はこちらのブログ記事をご参照ください。
今回ご紹介する検知Ruleは「Console Login Through Assume Role」です。
# Rule記述
“`
– rule: Console Login Through Assume Role
desc: Detect a console login through Assume Role.
condition:
ct.name=”ConsoleLogin” and not ct.error exists
and ct.user.identitytype=”Assume

元記事を表示

ちゃちゃっと使えるEC2のクローンツールつくったわ

# まえせつ

EC2を運用してると様々なシーンでクローンを作りたい時出てきますよね。
snapshot取ってればできるんだけど、もっと直感的にコピペ!って感じでつくってしまいたい、、
そんな事を実現するのがこのツールとなります!

# なにこれ?

EC2をパッとクローンする方法を探していたところterraformで複製できるリポジトリを発見!

https://github.com/AKSarav/terraform-ec2-clone

ただ、これだとインスタンスIDを調べたりめんどくさかったのでpecoを使って**魔改造**してみた

# これ

# セットアップ

– chmod 755 clone.shとかで実行権付けてく

元記事を表示

【爆速】Seekable OCIでECSのコンテナ起動を約50%高速化しよう!

## はじめに
2023/7/17に、AWSがオープンソース化したSeekable OCI(以下SOCI)がECS on Fargateで利用可能になったことが発表されました!

SOCIを利用する事によってコンテナイメージ全体のダウンロードを待たずにコンテナを開始出来るようになり、アプリケーションのデプロイとスケールアウトが高速化出来るというものらしいです。

https://aws.amazon.com/jp/about-aws/whats-new/2023/07/aws-fargate-container-startup-seekable-oci/

全ECSユーザ必見のリリースだと思うので早速やってみようと思います。

## Seekable OCIとは
2022年の9/8にAWSによってオープンソース化され、**コンテナイメージの遅延読み込みを行う事でコンテナを高速に起動出来るた技術**です。既存のコンテナイメージにあるファイルのインデックス (SOCI インデックス) を作成することによって機能し、アーカイブ全体をダウンロードする前にコンテナイメージから個々のファイルを抽

元記事を表示

EventBridgeからLambda起動

# はじめに
2年目に突入したエンジニアでございます。

今回はAWSを少し触れることがあったので忘れないためにここに備忘録として記載しておきます。

# 今回の内容:EventBridgeからLambdaを起動する。

[1. Lambda関数の用意](#1-Lambda関数の用意)
[2. EventBridgeルールの作成](#2-sEventBridgeルールの作成)
[3. 結果の確認](#3-結果の確認)

## 1. Lambda関数の用意

まずは今回実行するLambda関数を用意します。

https://qiita.com/Hamoto/items/bd486937de142a589f8f

上記の記事を参考にしましたが、今回EventBridgeからLambdaを起動するだけの構成を予定しているため、
メッセージを返すのではなくS3にファイル出力するようなコードにしてみました。

### コードの修正

“`python:lambda_function.py
import boto3

def lambda_handler(event, context):

元記事を表示

Railsデプロイ時のエラー:error Command “webpack” not found.

ElasticBeanstalkでRailsをデプロイ時に遭遇したエラーについて記載します。
誰かのお役に立てれば幸いです。

## 環境
– Elastic Beanstalk Ruby 3.6.7@Ruby 3.0 running on 64bit Amazon Linux 2
– Rails 7.0.4.3
– bundler_version: 2.2.33
– rake_version: 13.0.6

## エラー内容

>[INFO] Running command /bin/su webapp -c bundle exec /opt/elasticbeanstalk/config/private/checkforraketask.rb assets:precompile
[INFO] Found assets:precompile task in Rakefile
[INFO] Running command /bin/su webapp -c bundle exec rake assets:precompile
[INFO] Compiling…
Compilati

元記事を表示

VMware Cloud on AWS におけるインスタンスの種類、料金、ESXi ホストの増減、制約のまとめ

# はじめに
VMware Cloud on AWS でよく聞かれるインスタンスの種類、クラスタタイプの違い、ESXi ホストの増減の可否、制約についてまとめてみます。

# VMware Cloud on AWS で利用できるベアメタルインスタンス
VMware Cloud on AWS は Amazon EC2 ベアメタルインスタンスを利用して VMware の Software-Defined Data Center(SDDC)が展開されます。

2023/07/16 時点で利用できるベアメタルインスタンスは以下の 3つ になります。

| | i3.metal | i3en.metal | i4i.metal |
| ———————- | ————————-

元記事を表示

Lambdaでコンテナイメージから関数を作成する

# 目的
Lambdaの関数を作成する際、3つのケースから選択できます。
– 一から作成
– 設計図の使用
– コンテナイメージ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621838/df642e70-7f56-a11c-6d31-64492721ca18.png)

今回はこの「コンテナイメージ」から関数の作成を行う方法について、AWSベースイメージを使う場合と代替イメージを使う場合に分けて示します。

公式サイトは以下↓
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/images-create.html

# コンテナを使用するメリット
– カスタムランタイムの使用:
– 従来のLambdaでサポートされている実行環境に依存することなく、好みの言語、フレームワーク、ライブラリを選択し、独自の実行環境を構築できる
– バージョン管理:
– コンテナのイメージはイメージレジストリであるECRで管理されるため、

元記事を表示

Amazon Connect のクイック接続反映手順

ジャーニーマン( @beajourneyman )です。

Amazon Connect のクイック接続の反映手順です。

# 実施場面

新規エージェントを追加した後に、CCPの「クイック接続リスト」に対象エージェントが表示されない時に実施します。クイック接続の設定がされていない場合、設定はされているが、キューへの紐付けがされていない場合の手順を残します。

# 反映手順

## クイック接続への新規追加

Amazon Connect のコンソールに入ります。

左サイドバーのメニューから「Quick connect(クイック接続)」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155285/4a097751-f35e-04b7-f09c-229dfa6732bc.png)

対象エージェントの名前を入力しクイック接続に登録されているか確認します。
 ・登録されている場合はこの画面では何もしません。次節の「キューとの紐付け」に進みます。
 ・登録されていない場合は

元記事を表示

Data Lifecycle Managerを使ってみた

AMIの定期的な取得をする為「Data Lifecycle Manager」を使ってみた。

①「EC2」→「ライフサイクルマネージャー」を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3472386/6bda8859-6089-72c3-c781-8eeb314291c4.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3472386/35a9b758-d31f-3182-1e6d-ab8d5bcc5432.png)

②「EBS-backed AMIポリシー」を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3472386/0347dfd7-550b-845e-25dd-8f4581eb74ed.png)
![image.png](https://qiita-ima

元記事を表示

dbtを試してみた

# 背景・目的
クラウドデータ基盤のELTツールのdbtについて、特徴の整理と簡単な動作を確認してみます。

# まとめ
– dbtは、SQLファーストのELTをツールです。
– dbtのアカウントは、下記の3種類あります。
– Developer
– Team
– Enterprise

# 概要
## The analytics engineering workflow
dbt を使用すると、データ チームはウェアハウス内で直接作業して、レポート、ML モデリング、運用ワークフロー用の信頼できるデータセットを生成します。

## What is dbt?
https://www.getdbt.com/product/what-is-dbt/

dbt は、モジュール性、移植性、CI/CD、ドキュメントなどのソフトウェア エンジニアリングのベスト プラクティスに従って、チームが分析コードを迅速かつ共同で展開できるようにする SQL ファーストの変換ワークフローです。

### How dbt works
#### Version Control and

元記事を表示

【GitHub Actions】Git管理外のファイルを扱った時のエラー

## はじめに
最近GitHub Actionsの学習を始めました。
GitHub Actions×S3で静的ウェブサイトのホスティングを実装中、少し詰まったので記事にしました。ホスティング方法の詳しい解説は行いません。

## 環境
MacBook Pro intel
macOS Monterey バージョン12.6

## GitHub Actions×S3で静的ウェブサイトのホスティング
ひとまずデプロイだけ挑戦してみたかったので、GitHub Actions上ではテストもビルドも行いません。ローカルでビルドした成果物をデプロイします。

“`yaml
name: frontend

on:
push:
branches:
– main

defaults:
run:
working-directory: frontend

jobs:
deploy:
runs-on: ubuntu-latest
steps:
uses: actions/checkout@v3

– name: デプロイ

元記事を表示

AWS のIAM ID センターのcredentials取得までの流れ(AWS SDK ローカル接続で必要な)

# はじめに
記録に残しておこうと言った感じです!(✿´ ꒳ \` )
あと少し書いた後で調整しています。きっと大丈夫かと思いますが不安な際は都度公式のリンク貼っているのでそちら確認もいいかもしれません!ちなみに`credentials`は期限設定によりますがセッション切れたらちゃんと新しいのにしないと使えません。(セッションの時間は許可セット設定の箇所で調整できます。自分は1時間にしています。)

ちなみに最終的に獲得したい値達は以下のようなものです!
“`
[277650267482_PowerUserAccess]
aws_access_key_id=XXXXXXXXXXXXXXXXXXXXXXXXX
aws_secret_access_key=XXXXXXXXXXXXXXXXXXXXXXXXX
aws_session_token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

元記事を表示

Terraform CloudからAWSを管理する

Terraform CloudからAWSに接続し管理する方法を記述します。

# 参考
https://developer.hashicorp.com/terraform/cloud-docs/workspaces/dynamic-provider-credentials/aws-configuration#optional-environment-variables

https://dev.classmethod.jp/articles/terraform-cloud-dynamic-provider-credentials/

# 前提
1. Terraform Cloudにプロジェクト、ワークスペースは作成済み
1. プログラムはVSCで管理しています。
# 手順
1. OIDC Identity Providerを作成します。
1. IAMロールを作成します。
1. ワークスペースのVariableに作成したIAMロールの情報を登録します。

## OIDC Identity Provider作成
AWSコンソールのIAM > アクセス管理 > IDプロバイダ > プロバイダ

元記事を表示

DockerからSDK経由でAWSのS3にアクセスする時に出会ったエラーの正体は、、、

# はじめに
自分がだいぶ遠回りしたので同じような人がなんだそういうことかよとなるようにここにメモしておきます!(*´ω`*)
ちなみに後々出てくる`credentials`は期限設定によりますがセッション切れたらちゃんと新しいのにしないと使えません。

# どんなコードを書いていた?

“`PHP

$s3Client = new S3Client([
‘profile’ => ‘277650267482_PowerUserAccess’, //どのプロファイル使うか(後で詳細記載します。)
‘region’ => ‘ap-northeast-1’, //SSO Regionの箇所のとこなのかなと?(後で詳細記載します。)
‘version’ => ‘2006-03-01’, //ここ決まりっぽいです。またはlatestかと
]);

try {
$result = $s3Client->createBucket([
‘Bucket’ => ‘abcde-img’,
]);
} catch (AwsException $e)

元記事を表示

AWS CloudFormationを使用したVPC環境作成

# はじめに
最近、自身のAWS環境でネットワークのスタディーをするために、主要なネットワーク関連のサービス(S3ゲートウェイ・エンドポイント、PrivateLink、トランジット・ゲートウェイ、ゲートウェイ・ロードバランサー)の環境構築・実機検証をやっていました。その際、事前準備としてVPC環境作成(サブネットや、インターネットゲートウェイ、セキュリティー・グループ作成など)が必要となりますが、毎度毎度同じセットアップをすることになり手間もかかります。そこで、本来試したいネットワーク関連サービスの検証に時間を割けるようにすべく、事前準備部分のVPC環境作成をCloudFormationのコードを書いて自動作成できるようにしてみました。本記事では、筆者が作成したCloudFormationのサンプルコードをご紹介します。
なお、CloudFormationの詳細については、[AWS CloudFormationドキュメント](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)を参照くだ

元記事を表示

github + CircleCi + s3でCI/CDの構築

ポートフォリオ作成の過程でgithubに各ブランチでプッシュした場合はJestを走らせて、mainブランチにプルリクした場合のみs3のwebホスティングしているバケットにデプロイするようなCI/CDを構築したかった。
その過程でcicle ciのconfig.ymlについて理解をする必要があったので載せておく。

## とりあえず、結論

“`yml
version: 2.1

orbs:
aws-s3: circleci/aws-s3@3.0.0

executors:
default:
docker:
– image: cimg/node:14.15.0
– image: cimg/python:3.10

commands:
npm_install:
steps:
– restore_cache:
key: dependency-cache-{{ checksum “package.json” }}
– run:
name: install npm

元記事を表示

Cloudformationを使用したNATゲートウェイ,VPCエンドポイントのオプション化

# 目的
題名にあるように、NATゲートウェイとVPCエンドポイント(インターフェイス型)をCloudformationの更新で手軽に作成・削除できるようにします。

# 背景
学習用の自己アカウントの場合、NATゲートウェイや、VPCエンドポイントは頻繁には使用しないけど、プライベートサブネットからの通信を試したい時とかだけに使用したいことってあると思います。

ですが、これらは作成してあるだけでお金が発生してしまうので、都度手動で作成・削除をする必要があります。
NATゲートウェイのルートテーブルの設定だったり、必要なエンドポイントが複数あったりすると、地味にめんどくさいです。

そこで、CloudformationのConditionsを使用して、使用したい時だけ作成できないかなと思い試しました。

# 実装

テンプレート

“`yaml
AWSTemplateFormatVersion: “2010-09-09”

Parameters:
VpcCidr:
Type: String
VpcId:

元記事を表示

Terraformを使ってAWSのRDS(Postgres)へ接続する用の踏み台サーバ(EC2)を構築しよう!

## 概要
今回はTerraformを使ってRDS(Postgres)へ接続する踏み台サーバ(EC2)を構築する方法について解説していきたいと思います
構成は下記の通りです

![VPC-踏み台サーバ.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/625980/a1110878-c789-4abd-81b8-af573f1e14fa.jpeg)

## 前提
– Terraformのmain.tfを作成済み
– VPC、プライベートサブネットをはじめとするネットワークを構築済み
– RDS(Postgres)を作成済み
– TerraformのWorkspaceをDEVに選択した状態で進めています

main.tfをまだ作成していない方は下記の記事を参考にしてください

https://qiita.com/shun198/items/c13529253cea5b4f41d3

Terraformを使ってネットワークを構築する方法について知りたい方は以下の記事を参考にしてください

https://qi

元記事を表示

AWS Batch on Fargateのサーバレスなバッチ実行環境をTerraformで自動構築する(モニタリング編)

# はじめに
AWS Batch記事第2弾。[第1弾はこちら](https://qiita.com/neruneruo/items/570403dcc9c14be735d8)。

AWS Batchは標準のメトリクスでエラーをモニタリングすることが難しいので、今回はEventBridgeを使って外部に通知を行うことでモニタリング可能にする。今回はAPI Destinationsを使ってSlackに通知を行う。

前提として、本記事では、第1弾で作成した構成にAWSリソースを付け加えていくので、未読の型は第1弾から読んでいただきたい。

# API Destinationsの事前準備
API Destnationsの前準備として、Slack側の設定とIAMロールの設定が必要になる。

## Slack側の設定
[以前の別の記事でも書いたように](https://qiita.com/neruneruo/items/2cdf4fc7413d0cfbb489#%E4%BA%8B%E5%89%8D%E6%BA%96%E5%82%99)、クラスメソッド先生の記事を参考に、Slackのボットを作って

元記事を表示

Cognitoについて理解を深める

ポートフォリオ作成に伴い認証認可にCognitoを採用したいと思ったが導入に関して、理解を深めないと厳しいということがわかったので整理のために記載していく

# そもそもCognitoとは

面倒な認証・認可基盤をAWS側が提供してくれていて、最小限の開発コストで実装できるらしい

## 認証、認可について

・認証は、その人が誰なのか、を確認する
・認可は、その人が権限を持っているか、を確認する

# ユーザープールと ID プールと呼ばれる2つの大きな機能/概念

Cognito には、ユーザープールと ID プールと呼ばれる2つの大きな機能/概念がある

## ユーザプール

ユーザディレクトリ
アプリユーザのサインアップ、サインインオプションを提供する。

## IDプール

AWSの他のサービスに対するアクセスをユーザに許可する。

### 流れを整理

ユーザープールにて、認証されたユーザーに対して、AWSへのなんらかのサービスへのアクセス権限を渡すのがIDプールの役目ってことと理解

## っということは

1.まずはユーザープールで認証、認可機能をつくる

2.AW

元記事を表示

OTHERカテゴリの最新記事