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

AWS関連のことを調べてみた2022年09月29日
目次

【Terraform】リソース名を変更した場合の対応

## はじめに
Terraform にてリソース名を変更する場合の対応方法について書きます。

## 今回対応すること
以下のコードにあるリソース名 `bucket` の部分を別のリソース名 `test_bucket` に変更

“`terraform
resource “aws_s3_bucket” “bucket” {
bucket = “test-bucket”
}
“`

## リソース名の変更手順

### 1.リソース名を `test_bucket` に変更する。

“`terraform
resource “aws_s3_bucket” “test_bucket” {
bucket = “test-bucket”
}
“`

### 2.State を `bucket` から `test_bucket` に移行する。

“`zsh
terraform state mv aws_s3_bucket.bucket aws_s3_bucket.test_bucket
“`

※`tfstate`のみを書き換える処理になります。実際のリソースが変更されることは

元記事を表示

Terraformを使ってArgoCDによるGitOpsなリリースができるEKS環境を構築してみる(前編)

# はじめに
KubernetesにおけるCICDとしては、GitOpsと呼ばれるデプロイ手法がベストプラクティスとされているようです。
個人的なお話をすると、担当案件ではECSというAWS独自のコンテナオーケストレーションサービスを使っているので、そもそもKubernetes自体あまり触れる機会がなかったりするのですが、ちょっと今回はEKSを使ってGitOpsを試してみようかなと思います。

環境構築についても、IaCを活用するケースで個人的によく使うのはCloudFormationなので、今回は普段使わないTerraformを使って構築しようかなと思います。

※尺の関係で今回(前編)はTerraformメインの記事となっております。

# CIOpsとGitOpsについて
GitOpsとは何かというお話をする際にしばしば比較されるデプロイ手法がCIOpsです。関係性としては、従来のデプロイ手法がCIOpsで、それにまつわる課題を解消した手法がGitOpsであるというところ。
端的にいうと、CIOpsはPush型のデプロイであるのに対し、GitOpsはPull型のデプロイであるとい

元記事を表示

aws lambda の Runtimeをnodejs12.xからnodejs16.xにaws cli を使って 一括で切り替えたメモ

## 概要
AWSからnode12がEOLになるので、nodejs12.xのlambdaを更新してくれとメールが来ていた。
11月になる前に対応したいので、cliを使って一括でnodejs16.xに更新した。
なお、cdkで作ったものは14.xを明示的に指定しているので、ここで更新が必要なものはCloudFormationが自動生成したLambdaであった。

メール

> Hello,
We are contacting you as we have identified that your AWS Account currently has one or more Lambda functions using Node.js 12 runtime.
We are ending support for Node.js 12 in AWS Lambda. This follows Node.js 12 End-Of-Life (EOL) reached on April 30, 2022 [1].

>As described

元記事を表示

【AWS】Route53でドメインを購入する方法(コンソールの画像付きで解説)

## 背景
– 個人の[技術ブログ](https://takuma-tech.com)の解説にあたりAWSの[Route53](https://aws.amazon.com/jp/route53/)でドメインを購入しました。
– [Route53](https://aws.amazon.com/jp/route53/)のドメインの購入方法についてまとめておきます。

## Amazon Route 53とは?
– AWSのドメインネームシステム(DNS)のサービスです。
– AWSはドメインの販売も行っており、AWSでドメインを購入できるサービスが[Route53](https://aws.amazon.com/jp/route53/)です。
– DNSサービスなので、DNSレコードの設定などにも使用するサービスです。

## [Route53](https://aws.amazon.com/jp/route53/)でドメインを購入するメリット
– ドメインは、[お名前.com](https://www.onamae.com/?btn_id=onamaetop_header_logo_

元記事を表示

小ネタ/MySQL 8.0(Aurora MySQL v3)にバージョンアップしたときの実行計画調整にオプティマイザヒントを使う

AWS の Aurora MySQL v1 の EoL が迫り、また MySQL 5.7 の EoL もそう遠い話ではなくなった現在、Aurora MySQL v3 や MySQL 8.0 への移行が進んでいるのではないかと思います。

※いや、前者は少ないでしょうね、おそらく。

バージョンアップ時、既存の SQL 文の実行計画が変わってしまい、処理が遅くなるケースがあります。

その対処としてオプティマイザヒントを使うのが今回のネタです。

## どんなケースで遅くなる?

MySQL 5.6(Aurora MySQL v1)→ MySQL 5.7(Aurora MySQL v2)のバージョンアップで最も有名なのはこちらでしょう。

– **[MySQLでIN句の中に大量の値の入ったクエリがフルスキャンを起こす話](https://developers.freee.co.jp/entry/large-in-clouse-length-cause-full-scan)(freee Developers Hub)**

こちらは MySQL 5.6(Aurora MySQL v1)→

元記事を表示

AWS CLI環境でMFAの有効化と、MFAの認証を行う方法

## 概要

AWSに限ったことではありませんが、今どきの個人認証ではMFA(多要素認証)を行うことが一般化しつつあります。

AWSにおいては、AWSマネジメントコンソールにサインインする際にMFAを有効化することができます。

このMFAですが、アクセスキー・シークレットアクセスキーを用いる環境でも有効化できます。なるべくでしたらアクセスキー・シークレットアクセスキーを使わないで運用したいところですが、CLI環境やCDKなど、開発者のPCでアクセスキー・シークレットアクセスキーが必要となる場面は今でも存在します。

本記事では、アクセスキー・シークレットアクセスキーを用いる環境でMFAを有効化する方法について説明します。

## 前提

* CDK用ユーザーのアクセスキー、シークレットアクセスキーは受け取っているものとする
* MFA用のデバイスとして、QRコードを読み取れるカメラ付きのスマートフォン・タブレットを用意してある
* スマートフォン・タブレットには認証用のアプリケーションがインストールされているものとする
* Google Atuhenticator

元記事を表示

s3のブロックパブリックアクセス とは

## 勉強前イメージ

見たことあるってレベルで正直良くわかってないの
公開の機能って感じ?

## 調査

### s3のブロックパブリックアクセス とは

s3バケットの機能で、バケットのポリシーが書き換えられてオブジェクトが公開されるのを防ぐ機能です。
パブリックアクセスの機能はアカウントごとでもできますし、バケットごとに設定ができます。

元々はACL、バケットポリシー、IAMを利用してアクセス制御を行っていました。
特にACLとバケットポリシーがオブジェクトの公開に関わるところですが
ACLはバケット単位・オブジェクト単位両方に設定できますが、オブジェクト単位のACLが優先されるのでバケットだけの設定を見れば安全というわけではなく
常にパブリックアクセスの許可がされていないか確認する必要がありました。
バケット単位を優先することも出来ますが、色んな理由で管理しづらいことが多かったです。

ブロックパブリックアクセスはs3バケットのアクセス許可のタブから確認することができます。
実際の設定しているのは以下になります。
この設定だと現在はパブリックアクセスをすべてブロックしていま

元記事を表示

CloudFormation から OriginAccessControl を設定する

# 前置き
2022年8月末ごろにAWSより OriginAccessControl がリリースされました。
これに伴い、旧来の OriginAccessIdentity が非推奨と記載されるようになりました。

https://aws.amazon.com/jp/about-aws/whats-new/2022/08/amazon-cloudfront-origin-access-control/

https://aws.amazon.com/jp/blogs/news/amazon-cloudfront-introduces-origin-access-control-oac/

よし、では手元の cloudformation yaml をドキュメントに従って書き換えて OAC を使用するようにしよう。

1. [Amazon S3 オリジンへのアクセスの制限](https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to

元記事を表示

DynamoDBで大量データをまとめて書き込みたい

# はじめに
勉強がてら家計簿アプリを作成していた際に詰まった事柄のメモです。
アプリが持つ機能として”毎月のクレジットカード明細を画面上からアップロードできる”機能を持たせようとしていて、
クレジットカード明細は毎月大体100件前後のデータだったので、
画面でポチッとアップロードボタンを押すとすぐ登録処理が完了してほしいと考えていました。

# いざ実装しようとしてみると・・・
ググってみるとDynamoDBで複数件まとめてデータ登録するには”BatchWriteItem”を利用すればよいと分かったので、
100件ほどのデータをBatchWriteItemでputすると下記エラーにぶち当たりました。
“`
at ‘requestItems’ failed to satisfy constraint: Map value must satisfy constraint: [Member must have length less than or equal to 25, Member must have length greater than or equal to 1]”
“`

元記事を表示

Kms Encrypt Decrypt をCliで行う

aws-cli で文字列をencrypt・decryptしたメモ。

# Encrypt

1回目以下でためしたところ

“`
aws kms encrypt –key-id ‘kms key id’ –plaintext ‘my plain text’ –profile ‘my profile’
Invalid base64: “my plain text”
“`
上のようなエラーになる。

そこで以下のようなコマンドでencryptコマンド実行する。
“`
aws kms encrypt –cli-binary-format raw-in-base64-out –plaintext ‘my plain text’ –key-id ‘kms key id’ –profile ‘my profile’

{
“CiphertextBlob”: “ciphertext…”,
“KeyId”: “arn:aws:kms:ap-northeast-1:MY_AWS_ACCOUNT_ID:key/kms key id”,
“Encryption

元記事を表示

codeシリーズをTerraformで書いてみた

codeシリーズをTerraformで書く機会があったので備忘録として残します。

codecommitのPushがトリガーでcodebuildでユニットテストを行います。
テスト内容はbuildspecに記載しますが、今回は空白にしてます。
IAMROLEは既存のものを利用します。
codebuildはプライベートに配置します。

構成内容
codecommit
codebuild
codepipeline
cloudwatchevent

“`terraform:codecommit.tf
resource “aws_codecommit_repository” “codecommit_repository” {
repository_name = “test-tf-repo”
default_branch = “master”
}
“`

“`terraform:codebuild.tf
resource “aws_codebuild_project” “codebuild” {
name = “test-tf-build”
build

元記事を表示

AWS CLI よく使うコマンド集【忘備録】

aws cli でよく使うコマンドのサンプルを掲載しています。随時アップデートしていきます。

## EC2の情報取得

“`bash
# 一覧表示
aws ec2 describe-instances \
–query ‘Reservations[].Instances[].{dns:PublicDnsName, name:Tags[?Key==`Name`] | [0].Value}’ \
–output table
—————————————————————————————————————-
| DescribeInstances |
+—————————————————–

元記事を表示

AWS Amplifyだけ?それともマークアップ言語全て共通のエラー?

# HTMLの名前は使っちゃいけない言葉がある?
こんにちは道産子ゆうです!

今回はAWS Amplifyのチュートリアルをやって15分くらい悩んだ内容を紹介します

プログラミング初心者なので変なことしてるかもですが、、、

## Markup.htmlをzipにしてデプロイすると
なんとAccess Deniedされました笑

index.htmlにしたら普通に表示できたんですが、命名規則があるんでしょうか…
適当に名前をつけて同じ悩みが出た人の助けになればうれしいです!

元記事を表示

Falco Ruleを紹介するシリーズ – Console Login Without MFA

:::note info
10/28(金)コンテナクラウドセキュリティで訊かれる「ランタイムセキュリティ」とは?と題してFalcoをSysdigが徹底解説するウェビナーを開催します。ご興味ある方はこちらから
https://go.sysdig.com/20221028JapanWebinar1.html
:::
本シリーズでは、ランタイム脅威検知のデファクトスタンダードであるFalcoの検知Ruleを、1つの記事で1つ簡単に紹介していきます。
ランタイムセキュリティやFalco自体の概要を知りたい方はこちらのブログ記事をご参照ください。
https://go.sysdig.com/20221028JapanWebinar1.html
今回ご紹介する検知Ruleは「Console Login Without MFA」です。

# Rule記述

元記事を表示

GitHub OIDCを利用して、GitHub ActionsでAWSのクレデンシャルを渡さずにCICDを実行してみた

## 以下の記事を参照して頂ければと思います

https://note.com/shift_tech/n/n61146784b54f

**※Qiitaの記事は全て個人的な記載であり、所属する組織団体とは無関係です。**

## 補足
ソースコード全体は以下。

https://github.com/yuta-katayama-23/learn-serverless/commit/4e78d1554fd07232b3295e2eaac441c191ef4c02

元記事を表示

AWS クラウドプラクティショナーの勉強中に一瞬でも突っかかったワード

Ankiにぶちこむ前のメモ
AWS Documentation:https://docs.aws.amazon.com/index.html
AWS 日本語ハンズオン:https://aws-samples.github.io/jp-contents-hub/

– デプロイ
– システムを利用可能な状態にすること
– レイテンシー
– 、転送要求を出してから実際にデータが送られてくるまでに生じる、通信の遅延時間のこと
– ワークロード
– リソースと、ビジネス価値をもたらすコード (顧客向けアプリケーションやバックエンドプロセスなど) の集まり
– https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/userguide/workloads.html
– カーネル
– アプリケーションの実行を許可し、プロセス管理を行う
– CI/CD
– 継続的インテグレーション/継続的デリバリー
– 論理上
– みかけ。そういうことにするって、だけ。
– 実在するのは物理。

元記事を表示

Terraformを使ってGitHubとAWS App Runnerを連携してみた

# はじめに
興味があって触ってみたが、Terraformを使ってGitHubから直接サーバへ反映するものための文献が少なかったので備忘録として残しておく

# App Runnerとは
フルマネージド型のコンテナアプリケーションを提供してくれるサービス。
– メリット
– コンソール操作の場合構築まで10分
– GitHubで管理されているソースコードから自動でアプリケーションに反映させることが可能。
– ECRと連携してコンテナイメージからサービスを起動してくれるなどパイプライン機能もある。
– ロードバランシングやスケーリング、ログ管理なども自動で行ってくれる。
– デメリット
– CPUやメモリ割当の上限がECSなどと比べると小さい
– WAF非対応
– GitHubから直接反映させる場合の対応ランタイムはPython、Java、Nodo.jsのみ

上記デメリットを踏まえると実証実験や期間限定の特設サイトなどを建てるときなどスモールかつ素早さが求められるようなシステムの構築を行いたい際に最適なサービスだと感じる。

ht

元記事を表示

EC2インスタンスのキーペアCFnで作れるようになったらしい

## CFnを書いてみる

Resources に書いてみました。
結構簡単ですね。

“`:test-key.yaml

AWSTemplateFormatVersion: “2010-09-09”
Description: “test”

Resources:
TestKeyPair:
Type: AWS::EC2::KeyPair
Properties:
KeyName: Test-Key
KeyType: rsa
“`

## CFnを実行してみる

– スタックを作成します

![1CloudFormation – スタック – Google Chrome 2022-09-27 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/fb3032e4-f27d-3a57-4f72-940487d52199.png)

– スタックの名前を記載しました

これ以外はデフォルトで実行しまし

元記事を表示

AWS Certified Database – Specialty試験の受験記録

https://qiita.com/murapon/items/323734511df840ac845f

に続いて、試験を受けてきました。

## 学習内容

### 1. 公式サイトで確認
https://aws.amazon.com/jp/certification/certified-database-specialty/

デジタルトレーニングを一通りやってみました。

### 2. 書籍で学習

すごくわかりやすいです。発売は1年ほど前ですが、情報が古くなっていることもなく十分使えました。
この本の内容をきちんと理解して覚えていれば、合格できるかと思います。

### 3. 問題を解く
https://www.udemy.com/course/practice-exams-aws-certified-database-specialty-coupon/

今回は問題集としてこれを使いました。50問×3回分で全150問ですが、問題が重複している箇所があり、実質130〜140問くらい

元記事を表示

ACM for Nitro Enclaves が Apache HTTP ウェブサーバーのサポートを開始したので試してみる

# ACM for Nitro Enclaves が Apache HTTP ウェブサーバーのサポートを開始

https://aws.amazon.com/jp/about-aws/whats-new/2022/09/aws-certificate-manager-nitro-enclaves-supports-apache-http-webservers/

# ドキュメント

https://docs.aws.amazon.com/ja_jp/enclaves/latest/user/nitro-enclave-refapp.html

# やってみる

ドキュメントに従って試してみました。

## EC2

いずれかの方法でEC2を準備します。

a.AWS Marketplace から Nitro Enclaves AMI 用の ACM を使用する。
b.RPM パッケージを使用して Nitro Enclaves 用の ACM とウェブサーバーをインストールする。

こんかいは、b.の方法で実施します。

利用可能なインスタンスタイプを指定します。

https://do

元記事を表示

OTHERカテゴリの最新記事