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

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

[AWS]クラウドプラクティショナーを受験しました

# はじめに
先日、クラウドプラクティショナーを受験しました(合格することができました)。
受験した理由は

* なんとなく知っているが、体系的に学んだことはなかった
* 業務でAWSを触ることが多くなってきたこと
* 何よりずっとAWSをやりたかった!

です。
受験した感想ですが、受験して本当によかったと思います。
「AWSを学び始めたい」と思っている方には非常におすすめです。
本記事では学習方法と私の備忘録を紹介させていただきます。

# 学習方法

## AWS Skill Builder

https://aws.amazon.com/jp/training/digital/

AWS公式のデジタルトレーニングです。
上記の「AWS Cloud Practitioner Essentials (Japanese)」では、クラウドプラクティショナーで学ぶべきことを学ぶことができます。

## 【2022年版】この問題だけで合格可能!AWS 認定クラウドプラクティショナー 模擬試験問題集(7回分455問)

https://www.udemy.com/course/aws-42

元記事を表示

Cloud9の[設定]が見つからないときの対処法

# TL; DR

上から来るぞ、気を付けろ!

![閉じたメニューバー展開時の動画](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/216416/419afacc-59d0-a10d-c811-9126528db78b.gif)

# はじめに

私のCloud9環境のUIが、他の人となんか違うなーと思っていました。
いつもはCloud9のIDE機能を特に使っておらず、Vimで直接ファイルもターミナルも扱っていたので、普段は困っていませんでした(単なるEC2インスタンス接続装置として使っていました)。

なお、通常時の画面は以下の通りですが、右上隅のウィンドウボタンを押下することで、左右のスペースを展開できることは把握していました。

![通常時の画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/216416/202baff7-1f49-86eb-55d9-2d3a8fd2fff4.png)

# 設定変更ができない

しかし

元記事を表示

【備忘録】AWS S3 クロスリージョンレプリケーション(CRR)の設定方法

はじめに

業務でS3のクロスリージョンレプリケーション(以下CRR)の設定をすることがあったので、自分用にメモとして残します。
レプリケーションとは

>ハードウェアを含め同じシステム環境が2セット(稼働系と待機系)用意された環境において リアルタイムにデータをもう一方の環境に複製する技術です。
https://bcblog.sios.jp/what-is-replication/

AWSのドキュメントはこちらです
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/replication.html

CRRとはクロスリージョンなので、その名の通りレプリケーションをAWSのリージョンを跨いで別のバケットにリアルタイムでオブジェクトをコピーしておく設定です。データを別リージョンに逃がしておいて障害時に復旧させるために使用したり、AWSの複数リージョンで稼働しているシステムに組み込むこともできます。

早速ですが設定していきましょう!

S3バケットの作成

まずは、CRR元とCRR先の

元記事を表示

CloudTrail

## 特徴
ドライブレコーダーや監視カメラのようなイメージ
犯罪抑止、定期的な挙動のレコーディング

デフォルトで有効化されている。
ただデフォルトでは後述の整合性チェックや保存期間が90日間だけと制約もある。

## 料金
https://aws.amazon.com/jp/cloudtrail/pricing/
基本的な機能は無料で使用できる。

## New Trail作成について
デフォルトでイベントログは確認できる。
しかし不要なユーザーやイベントも対象にしている。
またイベントを保存できる期間が有限(90日)
新しくトレイルを作成することにより、S3バケットにログを長期保管できるようにしたり、特定のユーザーやログを指定することができる。
CloudWatch logsに出力することもできる。(オプション)
作成したトレイルは全てのリージョンで有効化される。

### event type
トレイルを作成する時に3つのタイプ(管理イベント、データイベント、Insightsイベント)を選択できる。
デフォルトでは管理イベントにチェックが入っている。
https://docs.a

元記事を表示

S3バケットのバケットポリシーで「Principal: “*”」とすることの意味について

## はじめに

ある日、筆者が関わっているプロジェクトで「S3のバケットポリシーが設定できない」との投稿をグループチャット内で見つけました。プロジェクトの環境構築に携わる人だったので、その人にはIAMロールAdministratorAccessの権限が設定されていましたから、「バケットポリシーが設定できないはずはないよな」と思い、その人が何をしようとしていたのかを投稿内容から確認しました。仮にその人をAさんとしておきます。

なお、Principalを”*”とした場合は、そのS3バケットは誰にでも公開された状態となります。AWSにサインインしていない人にも公開されます。知っている人は知っていることだと思われますが、私は知らなかったことでした。

## その人はS3バケットのバケットポリシーでPrincipalを”*”としていたがっていた

Aさんのバケットポリシーを見ると、Principalが以下のように設定されていました。

“`
Principal: “*”
“`

試しに筆者(IAMロールAdministratorAccessの権限あり)が別のS3バケットを作り、そこで`P

元記事を表示

サーバレスなCMS、Webinyを使ってみた

# Webinyとは
WebinyはオープンソースのCMSです。
いわゆるサーバレスアーキテクチャで構成されています。

AWSのアカウントを用意しコマンド実行するだけで、GraphQLや管理画面の環境が構築されます。
サーバレス故に維持費が安く、個人開発用途なら殆ど無料で使えると思います。

https://www.webiny.com/

本記事ではこのWebinyの導入の際のメモと、使ってみた感想をまとめました。

※この記事を書いている今現在、日本語の情報がほとんど無く、Qiitaにも記事がありませんでした。
ノウハウやカスタマイズ方法などご存知の方おられれば、シェアして頂ければと思います。

## Webinyを使った理由
**HeadlessCMSを安く**使いたかったからです。
個人開発でCMSを使いたかったのですが、

– 自前でホストしたい
– 中身のソースを弄ってカスタマイズしたい(そこそこ複雑な要件)
– でも1から作るのはしんどい
– GraphQL使いたい
– 初期コストを抑えたい
– できれば無料からで…!

という要件があり、Webin

元記事を表示

AWS ECSのEC2+サービスの検出でサービス間通信できなくて苦しんでいる人へ

# 症状

AWS ECSでサービス間通信(=コンテナ間通信)をするためにサービスの検出(サービスディスカバリ)を設定したけど、上手く通信してくれない。

# 状況

* ECSでクラスターを作る時、あるいはタスク定義を作るときに、EC2タイプを選んだ。
* ローカルではコンテナ間通信できているのにアップしたらできないのは何で?
* タスク定義するとき、「ネットワークモード?何それ?適当にDefaultとかでいいでしょ」

みたいな状況。

通信できなさすぎて何度もクラスターとかタスク定義とかサービスとか作り直して、もう細かいことを説明しなくても大体分かる人向け。

# 原因

タスク定義を作成するときのネットワークモードを`awsvpc`以外にしていると、サービスディスカバリはDNS(=Route 53)に`A`レコードではなく、`SRV`レコードを作る。

> サービスタスク定義が bridge または host ネットワークモードを使用する場合、SRV レコードのみがサポートされる DNS レコードタイプです。各サービスタスクの SRV レコードを作成します。SRV レコードのコ

元記事を表示

AWSのアカウントを分けるか迷ったとき

先日エンジニア間の雑談で話題になった件をフローチャートにしてみました。

![aws_multi_accountr_dis_flow.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/570665/8e255488-07ac-63fd-0a4e-f9150e2f3d86.png)

異論や細かい理由はいくつでもつけられるので、もろもろすっ飛ばして書いています。

アカウント分離統合の傾向としてベンチャー企業では複数の環境をアカウント1つで運用していることが多く、SIerや大企業だと分けていることが多い感じです。
他にもパラメータは多数ありそうですが、ざっくりと考える材料に如何でしょうか。

この理由についてサーベイしていると、下記が参考になりました。
併せてお読みください。

https://qiita.com/morih90/items/190e52285a3fd615601d
https://qiita.com/14kw/items/46a0054d90a4f5d779c4
https://qiita.

元記事を表示

AWS Lambdaを使って関数を定期実行する

# 経緯

Pythonで動くコードを定期実行させたくなった。
タスクスケジューラ―でやるにしても電源オフ時に起動できるようにBIOSの設定をするのが面倒。
また、どこかでサーバを立てて実行させるほどの気力はない。
ので、AWS Lambdaを使って関数を定期実行させることにした。

# 目的

関数の定期実行ができるまでをメモ程度に記録する。
AWS Lambdaに関するナレッジはネットに溢れているが、自分にとって意外なハマりどころや勘所があったので後から見返せるようにまとめたい。

# AWS Lambdaとは
[AWS Lambda とは – AWS Lambda (amazon.com)](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/welcome.html)

# AWS上の環境

– リージョン:東京
– ランタイム:Python 3.9(関数の作成時に設定)

# 実行コードの概要

ファイルは単体で拡張子は「.py」。
実行するコード中には以下の通り、import文があるので外部ライブラリをコードが読み込めるよう

元記事を表示

PHPで504 Gateway Time-outが出た時に確認すること

### PHP
`php.ini: max_execution_time`

基本は、php.iniのmax_execution_timeを変更すると、タイムアウト時間を設定することができますが、
なぜか変更されないこともたまにある。

そういうときは、
`/etc/php-fpm.d/www.conf: request_terminate_timeout`

nginxの場合
`nginx.conf: fastcgi_read_timeout`

この辺を変更すると、適用されたりします。

### AWS ELB
ここは見落としがちなのですが、
AWSのELBを使用している場合、属性の編集からアイドルタイムアウトの編集で適用されます。

ということで、変わらない場合はこの辺を確認しましょう。

元記事を表示

書籍「AWSではじめるインフラ構築入門 安全で堅牢な本番環境のつくり方」の4章部分をCDK化した

# はじめに

社内でWeb開発をしているものの、インフラについてはインフラチームに頼りっきり。

このままではいかんと思い[AWSではじめるインフラ構築入門 安全で堅牢な本番環境のつくり方](https://www.amazon.co.jp/AWS%E3%81%A7%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B%E3%82%A4%E3%83%B3%E3%83%95%E3%83%A9%E6%A7%8B%E7%AF%89%E5%85%A5%E9%96%80-%E5%AE%89%E5%85%A8%E3%81%A7%E5%A0%85%E7%89%A2%E3%81%AA%E6%9C%AC%E7%95%AA%E7%92%B0%E5%A2%83%E3%81%AE%E3%81%A4%E3%81%8F%E3%82%8A%E6%96%B9-%E4%B8%AD%E5%9E%A3-%E5%81%A5%E5%BF%97/dp/4798163430/ref=sr_1_1?adgrpid=131402262685&gclid=CjwKCAjw4c-ZBhAEEiwAZ105Rfx0qUn

元記事を表示

Redshiftのvarbyte型について検証してみた

# 背景・目的
少し前ですが、2021年12月に、Redshiftでvarbyte型をサポートされたということで検証してみます。

# まとめ
– Redshiftでバイナリを格納する場合に、varbyte型が利用できる。
– varbyte型とvarchar型を比較して性能差は見られなかった。

# 概要
## varbyte型とは
– 可変長バイナリ文字列を格納するための可変長データ型
– 最大バイト数の範囲は、1〜1,024,000、デフォルトは64,000
– 表示できるようにするため、varbyte値は16進数で表わされる。
– キャストについて
– 以下のデータ型とのキャストをサポート
– CHAR
– VARCHAR
– SMALLINT
– INTEGER
– BIGINT
– 挙動
– CHARとVARCHARのキャストでは、utf-8が使用される。
– smallint、integer、bigintからキャストする場合は、元データ型のバイト

元記事を表示

AWS EC2のインスタンス生成からvscodeでのssh接続まで

# はじめに
夏にインターン先でAWSを触って以降AWSの良さを知ってしまい重い腰を上げて学習を始めた大学生です.この度AWSを触って実際に作業するまでの流れの中で忘れそうなことが多かったので備忘録として残します.

## インスタンス作成
### 名前とタグ
好きな名前つける(同一名ははじかれる)

### アプリケーションおよびOSイメージ
使いたいOSイメージ使う.していないならAmazon Linuxでいい

### インスタンスタイプ
デフォルトは`t2.micro`(1GiBメモリ)

### キータイプ
キーペアという鍵を設定する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1112260/ab63822e-7528-9f22-bc97-93235e60b2cf.png)
ローカルのユーザディレクトリに{keypairname}.pemをコピーしておく

### ネットワーク設定
– 個人情報とか実際のサービスで使う用途ならSSHトラフィックを指定するけどそれ以外なら

元記事を表示

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

元記事を表示

OTHERカテゴリの最新記事