AWS関連のことを調べてみた2022年12月11日

AWS関連のことを調べてみた2022年12月11日

[AWS] LambdaでS3の署名付きURLを発行する時に読む記事

# これは何?

LamdbdaでS3の署名付きURLを発行する時に、個人的につまづいたポイントを書いた記事です。

具体的なつまづいた現象としては、「Lamda上の処理で指定した有効期限に関わらず、有効期限が12時間程度になってしまう」というものでした。

「LambdaでS3の署名付きURL発行したけれど、長めに有効期限に指定したのに有効期限が切れてる~~~」でお困りの方、参考になると幸いです。

# 大まかな原因と解決方法

※ 私の解釈によるものが多いので、間違えていたら教えてください

## 原因

LambdaのIAMロールによって発行されたAWS Credentialを使用する場合、IAMロールによる一時的な認証が適用される。
※ 該当IAMロールの設定にもよるが、セッション期間は1時間~12時間で設定可能

https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html#permissions-executionrole-session

その際に、`IAMロールのセッション有効

元記事を表示

メモ:[CloudFormation:その2]CloudFormation説明編

## [CloudFormation:その2]CloudFormation説明編

– Parametersの設定、DomainNameなどdefault部分は自身で適切な値を入れて下さい.
“`CloudFormaiton:cloudformaiton.yml
AWSTemplateFormatVersion: ‘2010-09-09’
Transform: AWS::Serverless-2016-10-31
Description: ECS Cluster in a new VPC

Parameters:
DomainName:
Description: HostZone
Type: String
Default: ‘xxx.com’
DBBackupRetentionPeriod:
Description: “backupdays”
Type: Number
Default: 7
RDSAuroraInstanceClass:
Description: “RDS Aurora Instance Clas

元記事を表示

メモ:[CloudFormation:その3]pipeline編

## [CloudFormation:その3]pipeline編

## その2までで、インフラ部分とAWSの各リソースを作成しました。次に pipelineを作成します。
– ECSとDBを何にするかなどありますが、今回はECSの中にAPP、AWSのマネージドサービスのaurora(MySql)の環境でpipelineを作成していきます。
SecretsManagerやalbなど複雑な設定を使用しない場合は、[docker compose up]でAWSの仕組コンバートを利用して行う方法もありますが、今回は詳細な設定があるのでblue/greenデプロイメントを使用した形でpipelineを構築していきます。

※ [docker compose up]を使用したケースは以下参考まで記載。
上記コマンドのみで、dockerfileからイメージを作成して、ECRにプッシュを行い、そのECRからECSへのデプロイを行っています。
[Docker Compose と Amazon ECS を利用したソフトウェアデリバリの自動化](https://aws.amazon.com

元記事を表示

CloudFront DistributionからALB-Lambdaを呼び出す構築ハンズオン

## はじめに
##### 先日CloudFrontからAPIGateway経由でLambdaへの構築を行なったので、そしたらセットでALB経由でLambdaこ構築に関してもCFn化しておこうと思い立ち、さっそくハンズオンしていきます。

————

## 構成図
![](https://cloud5.jp/wp-content/uploads/2022/12/スクリーンショット-2022-12-11-8.39.11-640×284.png)

————

## ハンズオン
### 構築の流れ
#### 1.VPC作成
#### 2.Lambda作成
#### 3.ALB作成
#### 4.CloudFront作成
##### 上記の順番で構築を行なっていきます。

##### 最終的には、CloudFrontのディストリビューションドメインから、ALB経由でLambdaのメッセージ部分をダウンロードできるまでを行なっていきます。

———–

### 1.VPC作成
以前記載したブログ[CloudFormationを使ってVPC構築](

元記事を表示

CloudFront DistributionからAPI Gatewayを呼び出す構築ハンズオン

## はじめに
##### IAM認証や、ACM,Route53などの検証の際に、自分でよく利用する構築をCloudFormation化していなかったと思い着手してみました。
##### まずは背骨となる、 CloudFront から APIGateway – Lambdaを呼び出す構築部分のCFn化を行なっていきたいと思います。

————

## 構成図
![](https://cloud5.jp/wp-content/uploads/2022/12/スクリーンショット-2022-12-10-15.03.31-640×295.png)

————

## ハンズオン
### 構築の流れ
#### 1.Lambda作成
#### 2.APIGateway作成
#### 3.CloudFront作成
##### 上記の順番で構築を行なっていきます。

##### 最終的には、CloudFrontのディストリビューションドメインから、Lambdaを呼び出せるまでを行なっていきます。
![](https://cloud5.jp/wp-content/uplo

元記事を表示

AWS Lambdaでnode_modulesを使う時のメモ

AWS LambdaでNode.jsを使っていた時にnode_modulesにあるライブラリを使おうとした時にちょっと詰まったので、備忘録として残そうと思います。

あとは、アドベントカレンダーに沿ってアウトプットの大切さを書きます。

# node_modulesの導入

## 前提条件
– npm コマンドが使える環境があること
– ローカルマシンでも問題ありません

## 簡単な流れ
1. ディレクトリの用意
1. 必要なライブラリをインストール
1. ディレクトリのzip化
1. レイヤー登録
1. Lambda関数でレイヤー追加
1. Lambda関数のコードでライブラリを読み込む

## ディレクトリの用意
初っ端から一番大事です。作成する場所はどこでも良い(ローカルマシンでも可)ですが、ディレクトリの名前が重要です。
「nodejs」という名前のディレクトリを生成します。

“`
$ mkdir nodejs
“`

これについては[ドキュメント](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/conf

元記事を表示

AWS PrivateLink経由のHULFT転送

# はじめに
クラウド環境は個社に閉じたシステムだけでなく、会社間や共同サービスでも利用が拡大しており、
それらとのHULFT通信にAWS PrivateLinkを利用するケースが増加している様です。
こうした背景を踏まえ、ご覧頂いている皆様にお役立て頂ければと思い、
何回かに分けてAWS PrivateLinkを介したHULFT通信について記載しようと思います。
※以降、本記事ではAWS PrivateLinkをPrivateLinkと表記します。

**1 PrivateLinkとは
2 PrivateLink経由のHULFT転送設定方法
3 HULFT通信に関するTips
4 PrivateLink経由の送信要求
5 HULFT-HUBを利用した構成**

## 1、PrivateLinkとは ~特徴~

「PrivateLink」という名前の機能やサービスを探してしまいそうですが、
AWSにそんなメニューがある訳ではありません。
エンドポイントとロードバランサを組み合わせた通信構成の総称を
PrivateLinkと呼んでいる様です。
![image.png](https://q

元記事を表示

【AWS】IAM認証を使用したLambdaの関数URL呼び出しをやってみた

# はじめに
LambdaをAWSの外部から呼び出す方法として、APIGatewayでエンドポイントを作成し、そのURLにアクセスすることでLambdaが実行される仕組みがありますが、Lambdaから呼び出し用URLを生成することができるようになっていたことをご存知でしょうか。(最近って程でもないですが2022年4月のアップデートです)

存在は知ってましたが動かしたことなかったので軽く触ってみようと思います。

https://aws.amazon.com/jp/blogs/aws/announcing-aws-lambda-function-urls-built-in-https-endpoints-for-single-function-microservices/

# 目次

1. [IAM認証とは](#iam認証とは)
1. [アクセスキー・シークレットアクセスキーとは](#アクセスキーシークレットアクセスキーとは)
1. [使用するコード](#使用するコード)
1. [Lambda関数の作成](#lambda関数の作成)
1

元記事を表示

チケット販売サイト アクセス集中対策

# はじめに
株式会社メタップスのアドベントカレンダー11日目の記事です。

メタップスの子会社であるメタップスペイメント社のチケット販売サービス「チケットペイ」では、販売するイベントによっては販売申し込み開始時に大量のサイトへのアクセスが発生します。

本記事では、チケットペイにて行っている負荷対策についてご紹介します。

# 環境

RDB: MySQL

基盤: AWS

本記事で登場するAWSサービス: CloudFront, Aurora MySQL, SQS, ALB, ECS

# CDN(CloudFront)の利用

CloudFrontの利用がアクセス負荷対策の効果が一番大きいです。

全リクエストの大体4/5がCloudFrontから返却されるようになっています。

ビヘイビア設定では、パスパターンにjs,css,画像のパスを指定し、S3上にファイルがある場合はS3にリクエストさせ、ホストに配置してあるファイルはキャッシュ上から取得させるようにしています。

キャッシュポリシー CachingOptimizedAllQuery は、デフォルトである Cachin

元記事を表示

AWS認定クラウドプラクティショナー合格に向けて Day10

# 前回の内容
[AWS認定クラウドプラクティショナー合格に向けて Day9](https://qiita.com/Ayako_0224/private/dc9afb65197a4f891693)

# EC2インスタンス操作 1/2
前回はインスタンスのセッティングをして起動をした
今回は操作方法について確認する

## 操作方法
サーバーの種類によって異なるが2種類
– GUI(Windowsサーバー向け操作)
– SSHソフト(Linuxサーバー操作)

SSH接続方式は操作するPCがMacかWindowsかで異なる
Windowsの場合はTera Termのインストールが必要
MacはTerminalで行える
今回はMacで操作したためMacのみの紹介

# SSHの接続設定
Amazon Linuxサーバーでインスタンスを起動したためSSHの接続設定を行う
## 初回時
1行目…ダウンロードした秘密鍵ファイルを.sshに移動
2行目…秘密鍵の権限を400に変更
“`
~ $ MV ~/Downloads/sample.pem ~/.ssh
~ $ chmod 400

元記事を表示

「ワイくん、来月からサーバー費用30%削減でよろしく。」

[Ateam Group U-30 Advent Calendar 2022](https://qiita.com/advent-calendar/2022/ateam-group-u30)の11日目は
株式会社エイチームライフデザインの @yutaroud が担当します。

# はじめに
この1年で、円安によって1ドルの価値がかなり上がってしまいました。
結果、AWSやGoogleCloudなど海外のクラウドサーバーを使用している場合、同じ性能のものであっても、1年前とではコストに大きな違いが発生しています。

今回は、工夫次第で、コストは削減できる!という話をします。
私の所属している開発チームでは主にAWSを使用しているので、AWSのコスト削減について取り上げます。

※先に断っておきますが、この話はフィクションです。実際の人物・団体とは関係がありません。

## とある日

シャチョウ「ワイ君、システムの費用、最近上がってきてない? 特に何も聞いてないけど、このままだと厳しいよー」

ワイ「すんません。円安の関係で、システムは何も変えとらんのですけど、費用が高くなってきとるんで

元記事を表示

[cdk] L2の既存リソースに、L1にしかない設定をした話

# この記事の想定読者

– AWSの基本知識がある
– CloudFormationを使った事がある
– cdkも使った事がある

# L1とL2(とL3)

スタックをコードとして管理したい時、CloudFormationではyamlかjson形式で記述します。cdkでは、TypeScriptなどのメジャーな言語で記載する事が出来ます。cdkは、内部的には一旦CloudFormationに変換します。

そのcdkでは3種類の記述方法があります。下に紹介した公式ページに詳細はお願いしますが、L1はCloudFormationと同レベルの細かい設定が必要ですが、L2は必須の情報だけ設定すればあとはcdkがよしなにデフォルト設定してくれます。

https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/constructs.html

L3では標準的な構成に関してさらにサービスをまとめてくれます。例えば`ApplicationLoadBalancedFargateService`ではALBとFargateのスタックをまとめて対応してくれます。

ht

元記事を表示

SSH接続をせずに踏み台サーバー経由でDBへ接続してみた

## 0. 目標

– SSH接続は使用しない
– 構築した踏み台サーバー(EC2インスタンス)へ接続する
– ローカルPCからDBへ接続し、任意のSQLファイルを実行してDBの初期化等を行えるようにする

# 1. リソースを構築する

ここではAWS CDKを使用しています。

最終成果物は[こちら](https://github.com/glaceef/uv-advent-calendar-2022)にあります。
必要な部分だけを抜粋して説明します。

## 1.1 Bastion Host (EC2インスタンス) の構築

### VPCエンドポイントの作成

“`typescript
[‘ssm’, ‘ec2messages’, ‘ssmmessages’].forEach(label => {
const endpoint = `com.amazonaws.ap-northeast-1.${label}`; //
new InterfaceVpcEndpoint(this, `example-interface-vpc-endpoint-${label}`, {

元記事を表示

ScanではなくQueryで取得するAppSyncのリゾルバー

# 概要
この記事では、AppSyncのlist機能をScanではなくQueryでおこなうリゾルバーを紹介します。

# 前提条件
– DynamoDBが用意されていること
– AppSyncのスキーマが作成されていること

# デフォルト
AppSyncをウィザードで作成すると、デフォルトで下記のようなリクエストマッピングテンプレートが生成されます。
“`
{
“version”: “2017-02-28”,
“operation”: “Scan”,
“filter”: #if($context.args.filter) $util.transform.toDynamoDBFilterExpression($ctx.args.filter) #else null #end,
“limit”: $util.defaultIfNull($ctx.args.limit, 20),
“nextToken”: $util.toJson($util.defaultIfNullOrEmpty($ctx.args.nextToken, null)),
}
“`
“opera

元記事を表示

初心者:AWS AutoScaling試してみた

# はじめに
いろいろと触る機会が多かったので自分でも試してみました。
VPC・EC2インスタンス周り等は作成済み想定です。
AutoScalingに関しては下記サイト参考。
[Amazon EC2 Auto Scaling とは](https://docs.aws.amazon.com/ja_jp/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html)

# 大まかな流れ

1. AMI作成
2. 起動テンプレート作成
3. AutoScalingグループ作成
4. 動作確認

# 1. AMI作成

* ナビゲーションペインより「インスタンス」
対象のEC2インスタンスを選択し「アクション」を押下、「イメージとテンプレート > イメージを作成」を押下する。
イメージ作成画面が表示されるので名前等設定する。
![QT-AS-01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629107/1a37e499-2545-62c3

元記事を表示

【AWS x ECS x Go】New Relic の導入② APMの取得

# はじめに
こんにちは、[rendaman0215](https://twitter.com/rendaman0215)です。

弊社では、ログ保管やAPM・メトリクスの収集先としてNewRelicを採用しています。
私は認証チームとして、Go言語のサービスにNewRelicを導入したため、その方法を紹介できればと思います。

本記事は、その取り組みの中で行なった、APMの取得に関する記事になります。

# 実施環境
言語:Go言語
フレームワーク:[go-chi](https://github.com/go-chi/chi)
実行環境:ECS on Fargate

# 導入
## 初期化
NewRelicのAPM計測用Goエージェントを初期化する。

まずは、アプリケーションに `github.com/newrelic/go-agent/v3/newrelic`パッケージをインポート
“`golang
import github.com/newrelic/go-agent/v3/newrelic
“`

次にmain関数、またはinitブロックに以下を追加することで、Goエー

元記事を表示

EventBridgeからEventBridge Schedulerに移行してみる

## はじめに

この記事は、[ミロゴス Advent Calendar 2022](https://qiita.com/advent-calendar/2022/milogos) 11日目の記事です。

先月の11/10にEventBridge Scheduler(以降、Scheduler)が発表されました。
[Introducing Amazon EventBridge Scheduler](https://aws.amazon.com/jp/blogs/compute/introducing-amazon-eventbridge-scheduler/)

これまで社内システムにてStep Functionsをcronで指定した時刻に実行するために、EventBridge Rule(以降、Rule)を使っていました。
今回、発表されたSchedulerはまさにこのユースケースにはまる内容でした。

本記事ではRuleをSchedulerに変える際に、現状実施していることは変えずに移行できるのか確認していきます。

なお、呼ばれるStep Functionsのワークフローは以前に[S

元記事を表示

AWS認定試験(SAA)の合格に100時間かかった話

この記事は Cocone Advent Calendar 2022の11日目の記事です。

# はじめに
![2022-12-11 0.01.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/574237/d243b764-0d4b-4dbe-4e90-8c1539c3cde2.png)
> 学習時間の中央値が、だいたい40~50Hあたりと思われます。

~~**みんなカッコつけてないか?**~~
AWS認定ソリューションアーキテクトのアソシエイト(通称SAA)に合格したのですが、勉強時間**100時間**かかりました。その全勉強記録をかっこつけずに赤裸々に共有したいと思います。

これから受験しようとしている方の参考になれば幸いです。

# 試験について
> AWS Certified Solutions Architect – Associate (SAA-C03) 試験は、ソリューションアーキテクトのロールを担う個人を対象としています。
受験者はこの試験で、AWS Well-Architecte

元記事を表示

ある日のssh接続エラー

# はじめに
qnote Advent Calendar 2022 :cat:11日目

エンジニアとして転職時に初めて開発をしたポートフォリオにて、
ローカル環境(cloud9)からAWS上の仮想サーバー(EC2)へssh接続をする際にエラーになってしまった時の簡単な解決までの流れです。

# エラー
“`
ssh: connect to host *****(Ip) port 22: Connection timed out
“`

(ssh: ホスト ec2-X-X-X-X.compute-1.amazonaws.com ポート 22 への接続: 接続がタイムアウトしました)

数時間前までは普通に接続できており、
特に大きな変更をしていない中突然繋がらなくなりました・・・

# 解決手順
検索をしてみたところ公式でまとめられていました。

https://aws.amazon.com/jp/premiumsupport/knowledge-center/ec2-linux-resolve-ssh-connection-errors/

怪しいものは以下2つでした
– セ

元記事を表示

【0から作成!】VMware Cloud on AWSでFSx for NetApp ONTAPを外部ストレージとして利用する

# はじめに

本記事は [vExperts Advent Calendar 2022](https://adventar.org/calendars/7894) の 11日目の記事になります。

本記事では、VMware Cloud on AWS(VMC) で FSx for NetApp ONTAP を NFS データストアとして利用するまでの環境を0から作成し、最終的に FSx for ONTAP を NFS データストアとして認識するまでの全ステップを網羅してみます。
VMC 及び AWS を利用された事がない方でも手順を辿っていけば NFS データストアとして利用できるよう、スクリーンショットをほぼ全部載せてみます。

FSx for ONTAP を NFS データストアとして利用する過去の記事については以下も参照下さい。

https://qiita.com/mtoyoda/items/a044d4f93d7af9aa2bda

https://qiita.com/mtoyoda/items/cd6f524faa56e3a2d2dd

元記事を表示

OTHERカテゴリの最新記事