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

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

AWS Lambda関数をGithubで管理・デプロイさせよう

## 入る前に

こんにちは、
アプリケーションエンジニアのキムです。
現在、自分が配属されてるチームでは複数のAWS Lambda関数を運用してます。

AWSが提供しているバージョン管理も有効に使っていますが、Lambdaコードをもっと細かく管理したい意見が多くなり、主にLambdaを生産してる私さえ必要性を感じているので、この機会にGithubに移住させてみたいと思います。

どうせGithub上での管理する以上、現在運用中のアプリケーションと同様に、PR・コードレビューが正常に完了してから自動的にdeployされてほしいという気持ちがあったので、今回の作業を実行することになりました。

## 頼みの言葉

様々な試みの末、手作業で作られたコードです。 とても粗雑かもしれませんので、修正案について良い意見がありましたらコメントをお願いします。
Github marketplaceで気に入りのActionsが特になかったのでこのような感じになりました。
今後良いActionsがマーケットに登場するようになったらアクション内容についても共有していただければ嬉しいです。

## やりた

元記事を表示

Active Directory、AWS IAM Identity Centerを使用したAmazon QuickSightへのシングルサインオン環境を構成する

Amazon QuickSight(以下QuickSight)向けにシングルサインオン環境を構築する機会があったのでメモ。
なお、歴史的経緯から現在のAWS SSOあらためAWS IAM Identity Center(以下Identity Center)がそれなりに複雑な構成になっていたので、そのあたりについても簡単にまとめておく。

# やりたいこと
QuickSightとActive Directory(以下AD)でシングルサインオンを行えるようにする。
シングルサインオンは、いわゆるIdP-Initiatedで構成する。

# 構成図
シングルサインオンを設定する前のIdentity Centerの構成が既にいい加減複雑だったが、まとめると最終構成図は以下のようになる。
なお、Identity Center、QuickSightともホームリージョンはバージニア北部。
![QS-IIC.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609876/f75e29e7-9cd5-0df4-

元記事を表示

マネジメントコンソールとダッシュボード

# マネジメントコンソールとは
Webブラウザ上でAWSのサービスを管理する画面(ユーザーインターフェース)
サービスごとに固有の画面(ダッシュボード)が用意されていて、サービスの設定やリソースグループ(リソースとは各種インスタンスなど稼働中のサービスや、容量を確保したサービスなど利用中のもの一式)の検索と使用、AWSのドキュメントの参照などさまざまな管理ができる。
マネジメントコンソールによって、複雑なコマンド入力してサービスを操作する必要がない。
## マネジメントコンソールでできること
* AWSのアカウント管理
* サービスの利用
* サービスの設定
* ドキュメントの参照
* モバイルデバイスからの管理
* 請求の確認
# リージョンの選択
マネジメントコンソールは地域を表すリージョン単位で操作する。
同じAmazon EC2サービスでもリージョンが違うと別のものと扱われる。
※マネジメントコンソールは最初ログインするとデフォルト設定がバージニア州になっているので、使用したいリージョンに切り替える。
**リージョンによって使用できるサービスが異なる**
使用できないサービスを

元記事を表示

【試験合格記】DOP-C01 && ANS-C00 && SCS-C01 && MLS-C01

お疲れさまです。
表題の試験を更新したため記録として残したいと思います。

# 受けた試験

– DOP-C01( AWS Certified DevOps Engineer – Professional )
– 受験日: 2022-05-22
– 受験者スコア: 910/1000
– ANS-C00( AWS Certified Advanced Networking – Specialty (Retiring July 11, 2022) )
– 受験日: 2022-07-06
– 受験者スコア: 848/1000
– SCS-C01( AWS Certified Security – Specialty )
– 受験日: 2022-08-10
– 受験者スコア: 890/1000
– MLS-C01( AWS Certified Machine Learning – Specialty )
– 受験日: 2022-08-17
– 受験者スコア: 777/1000

# 前回の受験記録

– [【試験合格記】AWS 認

元記事を表示

CodeCommitのgit clone時にfatal: repository <リポジトリURL> not foundが出た場合の対処法

## 事象
複数のAWSアカウントでCodeCommitでリポジトリを作ってgit cloneしたところ、not foundのエラーが出力された。
“`
$ git clone <リポジトリURL>
Cloning into ‘<リポジトリ名>‘…
fatal: repository ‘<リポジトリURL>‘ not found
“`

## 結論(対処)
namespaceを作って、そのnamespaceに対する認証情報を登録してあげる。
“`
$ git -c credential.namespace=<任意のnamespace名> clone <リポジトリURL>
[windowsだとここで認証情報問われるので該当AWSアカウントで発行したCodeCommit用の認証情報を入力]
Cloning into ‘<リポジトリ名>‘…
$ cd <クローンしたリポジトリのディレクトリ>
$ git config –local credential.namespace <2つ上のコマンドでクローン時に指定したnamespace名>
“`

## 原因と解説
別AWSアカ

元記事を表示

Amazon EC2のストレージボリューム(EBS)

# EBSとは
**Amazon Elastic Block Store**(Amazon EBS)
永続的なブロックストレージボリューム。EC2インスタンスと組み合わせて使う。
ストレージ:データを保存する先。SSDやHDDがある。
**ブロックストレージボリューム**とは、データをバイトのブロック単位で保存する方式で、ディスクに保存するときの最も一般的な方式。
一方で、同じAWSサービスであるAmazon S3は**オブジェクトストレージ**と呼ばれる方式を採用。
EBSではHDDとSSDを選択できる。
**HDDとSSDの違い**
|項目|HDD(ハードディスクドライブ)|SSD(ソリッドステートドライブ)|
|-|-|-|
|読み書き速度|普通|**速い**|
|値段|普通|**高い**|
|消費電力|**やや大きい**|普通|
|衝撃に対して|弱い|**強い**|
|故障|冗長化されている|冗長化されている|
# EBSのボリュームタイプ
HDD、SSD共にIOPS保障やスループット最適化などのボリュームタイプがあり、パフォーマンスとの料金バランスを見て選択
# EBSの機能

元記事を表示

AWS Lambda + API Gatewayでエラーになったら確認すること

Lambda + APIGatewayでREST APIを構築し、いろんなエラーに遭遇しました。
確認すべき箇所をメモしておきます。

## 403 {“message”:”Forbidden”}

### → **リクエストURLは正しいでしょうか**
API Gatewayはpath+ステージ名を付けたりします。
このステージ名が抜けてるとForbiddenになりますので、確認してみてください。

構成
“`
https://{APIのID}.execute-api.{リージョン}.amazonaws.com/{ステージ名}/{リソース名}
“`


“`
https://api-id.execute-api.us-east-2.amazonaws.com/default/pets?id=4&type=dog
“`
### → **リソースポリシーが間違っていないでしょうか**
リソースポリシーが真っ白だとエラーになります。
左メニ

元記事を表示

インスタンスタイプ

# インスタンスタイプとは
**インスタンスタイプとは、マシンの用途**。
CPU、メモリ、ストレージ、ネットワークキャパシティーなどが用途によって組み合わせられる。
**用途は主に5つの種別があり、それぞれ複数のインスタンスタイプが存在する**。
**インスタンスタイプの用途とタイプ名**
* 汎用
インスタンスタイプ:A1、T3、T2、M5、M5a、M4、T3a
* コンピューティング最適化
インスタンスタイプ:C5、C5n、C4
* メモリ最適化
インスタンスタイプ:R5、R5a、R4、X1e、X1、ハイメモリ、z1d
* 高速コンピューティング
インスタンスタイプ:P3、P2、G3、F1
* ストレージ最適化
インスタンスタイプ:H1、I3、D2
# インスタンスタイプとインスタンスサイズ
インスタンスタイプを選択後、**インスタンスサイズ**を選択する。インスタンスサイズは簡単にいうと、**性能**です。
ex)T2という一時的に性能を上げるバースト機能に対応したインスタンスタイプには、「nano」「micro」「small」「medium」「large」「xlarge」「2

元記事を表示

steps functionでtraining jobを実行する

# 背景
* AWS Step FunctionsでAWS APIを利用してAWS Serviceを操作できる
* APIのパラメーターは、SDKと違いある

# SageMaker CreateTrainingJob
![スクリーンショット 2022-08-18 16.33.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13451/47a4bdef-fe95-3cdf-5a30-e2b0a719a080.png)

# APIパラメーター

“`
{
“AlgorithmSpecification”: {
“TrainingImage”: “{AWS::AccountId}.dkr.ecr.ap-northeast-1.amazonaws.com/{repository_name}:latest”,
“TrainingInputMode”: “File”
},
“InputDataConfig”: [
{
“ChannelName”: “tr

元記事を表示

仮想サーバーの作成と料金

# インスタンス作成の例
**インスタンスの設定値例**
|項目|設定値の例|
|-|-|
|AMI|Amazon Linux 2|
|インスタンスタイプ|t2.micro|
|リージョン|東京|
|インスタンス数|1|
|購入オプション|なし|
|ネットワーク|デフォルトのVPC|
|サブネット|優先順位なし|
|配置グローブ|なし|
|IAMロール|なし|
|シャットダウン動作|停止|
|削除保護の有効化|なし|
|モニタリング|なし|
|テナンシー|共有・共有ハードウェアインスタンスの実行|
|T2/T3無制限|なし|
|ストレージの容量と種類|8GBの汎用SSD|
|タグ|キーはName,値はサーバーなどの名称|
|セキュリティグループ|SSH(ポート22)、HTTP(ポート80)、HTTPS(ポート443)など|

※T2/T3無制限とは
インスタンスタイプがT2またはT3の場合に限り、表示される選択肢。
負荷がかかった時のバースト(一時的に高いパフォーマンスを出す機能)を無制限にすることが可能。ただし、その分コストがかかるので、常時サーバーに負荷がかかるときは高コストになる

元記事を表示

AWS ソリューションアーキテクトプロフェッショナルに合格してみた!

7月31日にAWS ソリューションアーキテクトプロフェッショナル(以下SAP)に
合格したため、受験した際の所感や勉強方法を備忘録として残そうと思います。
今後受験される方の参考となれば幸いです。

## 自己紹介
・某IT系企業で働く新卒2年目
・文系の大学卒業
・現在までAWSの実務経験なし
・AWS クラウドプラクティショナー,
ソリューションアーキテクトアソシエイト取得済み(2022年2月,4月)

## 勉強期間
5月の中旬から主に勉強を始めました。
5,6月は業務が忙しく、仕事終わりに勉強が出来ず、
また平日の疲れからか土日はダラダラしておりました。
実質的には7月から本腰を入れてきっちり勉強しました。
累計としては100~120時間くらい勉強した気がします。
(あくまで目安ですので鵜呑みにしないでください!)

## 勉強に使った教材など

■書籍

[AWS認定ソリューションアーキテクト-プロフェッショナル~試験特性から導き出した演習問題と詳細解説](https://www.amazon.co.jp/AWS%E8%AA%8D%E5%AE%9A%E3%82%BD%E3%8

元記事を表示

Amazon EKS 上でKarpenter + HPA のスケーリングの動作を確認する

# はじめに

本記事は、[Amazon EKS](https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/what-is-eks.html) 上でNode のオートスケーラーである[Karpenter](https://aws.amazon.com/jp/blogs/news/introducing-karpenter-an-open-source-high-performance-kubernetes-cluster-autoscaler/) とPod のオートスケーラーである[Horizontal Pod Autoscaler(HPA)](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/) を組み合わせたスケーリングの動作を確認をした際の作業メモです。

主に、次の2点について記載しています。
– 動作確認をした環境の構築手順
– 簡単なスケーリングの動作確認

Karpenter と HPA を導入する際の参考になれば幸いです

元記事を表示

初心者がわかるVPCとは?

## VPCとは

一言で言うと自分用のバーチャルなクラウド環境。

## VPC の規模感

AWS > Region > Availability Zone > VPCといった感覚。

![https://i.gyazo.com/13207fb617b6f7184b9092cd8e74c10c.png](https://i.gyazo.com/13207fb617b6f7184b9092cd8e74c10c.png)

### Region(リージョン)

– 地理的に独立したAWSのリソース群。
– Regionの中ごとにいろんなサービスが存在している。
– Regionごとに存在しているサービスが違う。

### AvailabilityZone

– 冗長的な電力源・ネットワーク・接続機能を備えているデータセンター。
– Regionの中で切り離されて分離している。
– 例えばAvailabilityZone Aが潰れてもAvailabilityZone Bがあれば大丈夫。

### VPC

– Regionに属していて複数のAvailabilityZoneにまたがっている

元記事を表示

AWS クーポンの適用方法

AWSからクーポンコードをいただいたのだが、公式サイトの手順とクーポン適用画面のUIが変更されていて戸惑ったのでメモ

下記の公式サイトを参考に適用する

https://aws.amazon.com/jp/apply-coupon/

# 前提条件
クーポンを適用するAWSアカウントにログインしていること

# クーポン適用手順

1. 画面右上のアカウント名をクリックして、`請求ダッシュボード`をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1719666/2e71dc9c-67c5-9055-f1d9-91e4917e47e7.png)
1. 画面左の`クレジット`をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1719666/89372adc-dcf9-3cef-4889-eacbf7951979.png)
1. 画面中央の`クレジットを適用`をクリック

元記事を表示

ECSハンズオンをやったメモ

# はじめに

今どきの新人は新人研修でコンテナ周りの扱いを一通りやって簡単なサービスを作るところまで行くらしい。
いいなぁ新人は。僕は教えてくれる人がいないから自分で勉強するしかない。
ハンズオンという良い勉強資材があるらしい。

https://aws.amazon.com/jp/aws-jp-introduction/aws-jp-webinar-hands-on/

今回はこれをやりました。

https://pages.awscloud.com/JAPAN-event-OE-Hands-on-for-Beginners-ECS-2022-reg-event.html?trk=aws_introduction_page

# ECRでリポジトリ作る
WebコンソールでECRのページにいく。左のメニューからリポジトリを選択。
リポジトリを作成→リポジトリ名を記入してそのまま作成。
URIをコピーしておく。12ケタ.dkr.ecr.ap-northeast-1.amazonaws.com/h4b-ecs-helloworldという風になってるはず。

# Cloud9で作業
Cl

元記事を表示

AWS SSOを使ってSonarQubeにSAML認証でログインする

IAM Identity Center(旧AWS SSO)でSonarQubeをアプリケーション登録する手順を確認した時のメモ。
作業手順としては以下のようになる。
1. AWSで雛形のアプリケーションの作成
2. SonarQubeの設定変更
3. AWSで残りのアプリケーション設定

なお、SonarQubeは構築済みであることが前提となる。

## AWS側作業その1
IAM Identity Centerからアプリケーションの割り当ての中のアプリケーションを選択し、「アプリケーションの追加」をクリックする。\

「事前統合アプリケーション」でSonarQubeを入力し、出てきたものをクリックして次へを押す。\
「アプリケーションを設定」の表示名と説明を好きなもので埋めて一旦SonarQubeに移動する。

## Son

元記事を表示

IAM の Switch Role の設定方法

アカウントが増えてくると、それぞれのアカウントでどうやって効率よくサインインするか、ということが問題になります。

Single Sign On はひとつの手段でしょうが、Switch Role 機能を利用するのもよいと思います。

ここでは、ひとつのアカウントから、他のアカウントに Switch Role する方法を述べます。
他のアカウントが、3つあるとします。

Switch Role 元のアカウントで作成するポリシー(Development グループにアタッチ)
ポリシー名:OrganizationAccountAccessRoleDevAssumePolicy

“`
{
“Version”: “2012-10-17”,
“Statement”: {
“Effect”: “Allow”,
“Action”: “sts:AssumeRole”,
“Resource”: [
“arn:aws:iam:::role/OrganizationAccountAccessR

元記事を表示

AWS LambdaのPythonアップデート手順について

# はじめに
LambdaにおけるPython3.6のサポート終了についてAWSから通知があり、
Python3.6からPython3.9にアップデートする必要がありました。
アップデート作業の備忘として、AWSコンソールでの操作手順をまとめてみました。

# アップデート対象の確認

AWSコンソールにログインし、Lambdaの関数一覧画面に遷移します。
「ランタイム」欄に使用している言語のバージョンが表示されています。
今回はPython3.6を使用している「cwlog_S3export」を例に記載します。
![Lambda_update1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2740559/d5f4167f-1fb7-d6a5-bebc-0eb5badec70f.png)

# アップデート作業

関数名を押下し、関数の詳細画面を表示します。
デフォルトで「コード」タブが表示されており、最下部にスクロールすると「ランタイム設定」欄が表示されます。
「ランタイム設定」欄の「編集」を押下し、

元記事を表示

module化したterraformをfor eachでリファクタリング →moved block で再作成防ぐ

前提:module化してある
概要:再作成防ぐ楽な方法ないのか模索
①for eachのリファクタリングで関連するリソースをすべてmoved blockで定義 → 王道
②module 名を無理やり変えてmoduleで作成されるリソースはすべてmovedで切り替えるといった手法を取る → 楽にできたら神
https://www.terraform.io/language/modules/develop/refactoring#enabling-count-or-for_each-for-a-module-call
結論:結局①に落ち着いた

### 本編

#### module側
変更前
“`
“`

変更後
“`
resource “aws_efs_file_system” “a-efs” {
for_each = var.efs-list
encrypted = true
performance_mode = “generalPurpose”
throughput_mode = “bursting”
tags = {

元記事を表示

Lambdaのレイヤーの参照方法

Layerに配置したファイルは `/opt`で参照可能。
試しに表示してみる。

Google fontから[Noto Sans Japanese](https://fonts.google.com/noto/use#how-are-noto-fonts-organized)をダウンロードし、`.font.zip`にしてLayerにアップロード。
Lambda側でLayer参照の設定をしてから以下を実行

“`js
const fs = require(‘fs’);

exports.handler = function(event, context){
fs.readdir(‘/opt/’, function(err, files){
console.log(files);
context.done(null, err);
});
}
“`

Cloud Watchに以下のように出力される
“`
[ ‘.font’ ]
“`

さらに`.font`ディレクトリの中身を表示してみる
“`js
const fs = requir

元記事を表示

OTHERカテゴリの最新記事