- 1. CloudFormationを使ってIAMロールを作成する方法
- 2. IAMポリシーのARNを特定する方法
- 3. AmazonLinux2でIPv4/IPv6対応のNATインスタンス作成する
- 4. Amazon Linux2でネットワーク帯域制御と遅延追加をやってみた
- 5. 「AWS Code サービス群を活用して、CI/CD のための構成を構築しよう!」のハンズオンを実施したのでまとめてみた
- 6. 【Serverless Framework】serverless-offlineでcannot get nullが返ってきて表示されないときの対処法
- 7. IAMが複数のMFAデバイスをサポート
- 8. TerraformをインストールしてTerraformでAWS上にEC2作ってみる
- 9. SSM Run Commandを使ってEC2(Windows OS)上でAWS CLIを実行しようとしたときにつまずいた話
- 10. AWS CodeCommitへの接続方法一覧(2022年度版)
- 11. Docker Desktop の代わりになるかも。AWS が OSS として公開した「Finch」を使ってみた。
- 12. AWS AmplifyでNext.jsを12から13に上げた際のトラブルシューティングメモ
- 13. 自己学習記録:Lambda で DynamoDB 連携
- 14. AWS Graviton とは
- 15. CloudFormationでVPC/Subnetを構築する方法
- 16. AWS クラウドプラクティショナー学習記録
- 17. [小ネタ]CDKで作成するAWSリソースに共通タグを付与する方法
- 18. AWSのインスタンスタイプのEOL対応方法
- 19. 50歳近いおっさんがAWS Solutions Architect Associate (SAA-C03)を一発合格するまでのおはなし
- 20. [初心者向け]たった50行のコードでTwitter Botを作成してみる
CloudFormationを使ってIAMロールを作成する方法
# CloudFromationとは
CloudFormationはプログラミング言語やYAML,JSONを使用してAWSリソースを構築出来るサービスです。
AWS環境をテンプレート化しておくことで、同じ環境を作成する時間を削減することができます。今回はYAMLで作成していきますので、JSONに変換したい方は次の記事をご参照下さい。
YAMLからJSONに変換する方法## 構成
![スクリーンショット 2022-11-26 10.21.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2983197/f129accb-1004-5d0f-1450-0ef75783d445.png)## 完成したテンプレート
“`:テンプレート
AWSTemplateFormatVe
IAMポリシーのARNを特定する方法
## IAMポリシーコンソール移動
IAMポリシーのコンソールに移動して`検索バーにポリシー名を入力`する
![スクリーンショット 2022-11-26 10.38.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2983197/7d8c48bd-3cbb-58dc-15ff-256e38314a2a.png)## ARNを特定する
ポリシーを選択したらARNが記載してあります。コピーが必要な方は右端の`□`をクリック!
![スクリーンショット 2022-11-26 10.41.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2983197/bb5727da-e40b-d7fb-39a2-6e9ea650d0a1.png)
AmazonLinux2でIPv4/IPv6対応のNATインスタンス作成する
:::note warn
注意事項
IPv6初心者のため、記載内容に理解不足・誤りがある可能性があります。
:::# 目的
IPv6はIPv4と異なり、インターネットに直接ルーティング可能なアドレスがアサインされるようです。
とはいえ、特殊な環境要件においてIPv6でもNATしたいという場合の方法を考えました。# 概要
* 環境はAmazonLiunx2を利用。
* AmazonLiunx2のIPフォワーディングを有効にし、パケットの中継ができるようにする。
* IPv4ではiptables、IPv6ではip6tablesを利用して変換設定を行う。# 環境概要
パブリックサブネット側にNAT用のEC2インスタンスを配置し、プライベートサブネットに配置されたEC2とインターネット間の通信を中継するケースを想定。
![diagram.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309202/ace0e935-4e3a-1c9f-7927-7b37fe55e986.png)#
Amazon Linux2でネットワーク帯域制御と遅延追加をやってみた
# 目的
ネットワーク上で制約のある環境を疑似的に再現し、通信の挙動を確認したい。
* 通信帯域の上限を設定する
* 通信の遅延を設定する# やってみた方法
* AmazonLinux2でip forwardを有効にし、ルーターとして利用。
* 通信帯域の上限設定
* iptablesのlimit(hashlimit)
* iprouteのtcコマンド
* 通信の遅延
* iprouteのtcコマンド# ネットワーク構成
![bandwidth_diagram.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309202/7482ed38-dcb6-fd28-4b08-bd46474316b1.png)EC2(A)—EC2(NAT)(ルーター用)—EC2(B)
* VPCを作成
* サブネットを2つ作成
* EC2(A), EC2(B)をそれぞれのサブネットへ配置
* EC2(NAT)をEC2(A)と同じサブネットで作成。
* EC2(NAT)
「AWS Code サービス群を活用して、CI/CD のための構成を構築しよう!」のハンズオンを実施したのでまとめてみた
# やったこと
AWS公式のハンズオン「AWS Code サービス群を活用して、CI/CD のための構成を構築しよう!」を実施したので私になりにまとめてみました。
私自身がこれからCI/CDスキルを身につけようと思って実施したハンズオンですので、誤っている点はご指摘いただければ幸いです。感想やハートをいただけますと励みになります。# この記事の想定している読者
– AWSに興味がある方
– CI/CDに興味がある方
– 紹介しているハンズオンに興味はあるが、実施している時間が無い方# ハンズオンへのリンク
[AWS Code サービス群を活用して、CI/CD のための構成を構築しよう!](https://pages.awscloud.com/JAPAN-event-OE-Hands-on-for-Beginners-cicd-2022-reg-event.html?trk=aws_introduction_page “AWS Code サービス群を活用して、CI/CD のための構成を構築しよう!”)# 記事の目的
– 記事を書くことでAWSサービスを用いた CI/CD の理
【Serverless Framework】serverless-offlineでcannot get nullが返ってきて表示されないときの対処法
## はじめに
私はExpressアプリケーションをコストが低いサーバレス(API Gateway/Lambda/DynamoDB)にデプロイしようと考えました。
パブリッククラウドに慣れていない+従量課金制に恐怖があったので、できる限りデプロイ前に**ローカルでテスト**できないか調査し、Serverless Framework+プラグインを使用してローカルでテストできる環境を構築することにしました。
Serverless Framework+Serverless-offline+Expressでローカルにサーバレス環境を構築したところ、***ルートディレクトリ***にアクセスしたときに、cannot get null というエラーが発生しました。このエラー解決に時間がかかったので、記事にしておこうと思いました。
### この記事の対象者
– 同じエラーが出て困っている人
– Serverless Frameworkを使っている人
– サーバレスをローカル環境に構築したい人### **実行環境**
– OS:Windows 11 Home 21H2
– 言語
IAMが複数のMFAデバイスをサポート
## 概要
2022年11月16日、AWSはIAMユーザに対して複数のMFAデバイスをサポートするようになりました。
https://aws.amazon.com/about-aws/whats-new/2022/11/aws-identity-access-management-multi-factor-authentication-devices## 何がうれしいのか
今まではIAMユーザ毎で、単一のMFAデバイスのみのサポートでした。
その場合、万が一MFAデバイスを紛失した場合にログイン出来なくなる、MFAデバイスを家に忘れたため取りに帰らないといけない、など困るケースがありました。今回のアップデートによって、複数のMFAデバイスの割り当てが出来るようになり、利便性が増しました。
:::note warn
便利になった反面、複数登録できるようになったことによるセキュリティリスクもありますので、その点も踏まえてご検討ください。
:::## 試してみた
では、実際に試してみます。
:::note info
なお、今回はMFAデバイスとして、Chrome拡張機能
TerraformをインストールしてTerraformでAWS上にEC2作ってみる
# はじめに
Terraformの勉強を始めたので備忘録を兼ねて行ったことを投稿しようと思います。# Terraformの実行環境構築
Terraformはtfenvでバージョン管理ができるようなので今回はtfenvでTerraformをインストールします。### tfenvのインストール
macなのでbrewコマンドでインストールします。
“`
brew install tfenv
“`### tfenvでTerraformをインストール
最新バージョンのterraformをインストールします。
“`bash
tfenv install latest
“`### インストールしたTerraformのバージョンを確認します
“`bash
❯ tfenv list
1.3.5
No default set. Set with ‘tfenv use‘
“`### インストールしたTerraformのバージョンがデフォルトバージョンとなるように設定します
“`bash
❯ tfenv use 1.3.5
Switching defa
SSM Run Commandを使ってEC2(Windows OS)上でAWS CLIを実行しようとしたときにつまずいた話
## 環境
“`
OS:Windows Server 2016 Datacenter
SSM Agentバージョン:2.3.542.0
“`## やりたかったこと
SSM Run Commandを実行してEC2(Windows OS)上にあるファイルをS3にアップロードしたい。
実行したドキュメントはAWSが用意している `AWS-RunPowerShellScript`
commandsパラメータとして
“`
“aws s3 cp s3://hogehoge/fugafuga.csv {file_to_path}/fufafuga.csv”
“`を渡して、`{file_to_path}/fufafuga.csv`を S3バケット `hoghoge`上にアップロードしたいという非常にシンプルなもの。
## 事前準備
EC2上でRun Commandを実行するために必要な
1. SSエージェントのインストール
1. EC2への権限の付与などは
[【AWS】【SSM】Systems Manager の SSM エージェントをインストールその他設定して
AWS CodeCommitへの接続方法一覧(2022年度版)
## はじめに
AWS CodeCommit利用にあたって複数の接続方法が存在しているため、
それぞれ違い/利点をまとめた記事になります。## AWS CodeCommitとは
Gitベースのリポジトリを安全にホストする、
フルマネージドサービス型のソース管理サービスこと**CodeCommit**### CodeCommitのメリット
– 認証情報にIAMユーザが利用できるため、余分な認証情報の保持が不要となり認証制御が円滑に行える
– フルマネージドサービスにつきインフラの管理が不要
– 自動的に保管時/転送時にデータ暗号化
– セキュリティリスク低下/運用コスト低下## 前提知識のおさらい
### Gitについて
Gitはオープンソースのソースコード管理システム。Gitではブランチと呼ばれるリポジトリ(データの格納場所)のコピーが作成できる。
ブランチを使用することで、マスターバージョンのコードからコピーして自分の変更を加えることが可能になります。
ブランチのコードを変更したら、コミットという操作を行い差分として変更を登録したり、
共同作業者に変更点を通知して
Docker Desktop の代わりになるかも。AWS が OSS として公開した「Finch」を使ってみた。
# 概要
* 2022/11/23 に唐突に公開された [Finch](https://github.com/runfinch/finch) なるOSSがAWSより公開されました。
* どうやら、Docker Desktopの代わりとなりそうな、ローカルマシン上に仮想環境とコンテナランタイム、ビルドツールなど一式を楽〜に導入できるツールっぽいので試してみたという内容です。Today we are happy to announce a new open source project, Finch. ?
Finch is a command line client for building, running, and publishing Linux containers.
Learn more in this blog from @estesp and @ChrisShort ➡️ https://t.co/5qDdio806E#AWSCloud #containers #opensource pic.twitter.com/TDfcYlwwIs
— AWS Open Source (@AWSOpen) November 22, 2022
# Finchとは
* つい先日(2022/10/27)に、Docker社が、Docker の Team プラン、Business プランを値上げするニュースが発表された。期限も短く、急いで対応に追われた企業も多いのではないでしょうか・・・
https://www.itmedia.co.jp/news/articles/2210/18/news133.html
* まさかこのタイミングでという感じですが、AWS よりローカルマシン上に仮
AWS AmplifyでNext.jsを12から13に上げた際のトラブルシューティングメモ
# 要約
– Amplify の platformがWEB_DYNAMICになっているので、WEB_COMPUTE に変更したらうまくいった
# 事象
Next.jsを12から13に更新後にデプロイで以下のようなエラーになる
“`
Error: Command failed with exit code 1: node_modules/.bin/next build
warn – Invalid next.config.js options detected:
– The root value has an unexpected property, target, which is not in the list of allowed properties (amp, analyticsId, assetPrefix, basePath, cleanDistDir, compiler, compress, crossOrigin, d
自己学習記録:Lambda で DynamoDB 連携
# 背景
業務で使うことになったので、ついていくために、おじいちゃんの自己学習記録。Node.js + AWS で少し見えてきた。
ということで、今度は DynamoDB + Lambda で少し遊んでみる
ゴールイメージは、
1. DynamoDB のテーブルAに値を追加すると
1. Lambda で追加内容に応じて、別テーブルに項目追加# まずは、DynamoDB のテーブル準備
[DynamoDB](https://ap-northeast-1.console.aws.amazon.com/dynamodbv2/home?region=ap-northeast-1#service) にて、テーブル作成とりあえず、適当に以下で作ってみた
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/b8aae7db-33ea-292d-abc9-6c93dd2bebdf.png)## 命名規則とデータ型
https://docs.aws.amazon.com/ja
AWS Graviton とは
## 勉強前イメージ
新しいサービス?
## 調査
### AWS Graviton とは
グラビトンと読み、ARMベースで作られているAWSが独自に設計したプロセッサになります。
ARMとはアームと読み、スマートフォンや携帯電話・タブレットでよく使われる小型かつ省電力のCPUのアーキテクチャになります。
詳細は [こちら](https://qiita.com/miyuki_samitani/items/25e9673136ad03f15ce2) をごらんください。元々パワーが必要なコンピュータにはインテルのx86が主流で、省電力なARMはスマートフォンなどで使われていました。
しかし、AppleのM1チップ(ARM)がインテルのCPUを上回るということで認知度が上がりました。
Apple同様、小型で省電力のCPUがサーバに使われるようになりました。AWSではEC2はもちろん、RDSやEMRなどでGravitonのCPUのインスタンスを選択することができます。
インスタンスでは `c6g.medium` や `t4g.medium` など `g` がついたインスタンスを
CloudFormationでVPC/Subnetを構築する方法
# CloudFromationとは
CloudFormationはプログラミング言語やYAML,JSONを使用してAWSリソースを構築出来るサービスです。
AWS環境をテンプレート化しておくことで、同じ環境を作成する時間を削減することができます。今回はYAMLで作成していきますので、JSONに変換したい方は次の記事をご参照下さい。
YAMLからJSONに変換する方法## 構成図
![スクリーンショット 2022-11-24 21.43.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2983197/0d7177c5-e41b-4ca8-92fa-b023df5b5772.png)## 完成したテンプレート
“`:テンプレート
AWSTemplateFormatV
AWS クラウドプラクティショナー学習記録
# 用語集
|用語|意味|
|:-:|:-:|
|責任共有モデル|AWSの提供側と利用者側の、責任範囲を明確にする為の考え方|
[小ネタ]CDKで作成するAWSリソースに共通タグを付与する方法
## 概要
AWSリソースには付加情報としてタグを付与することができます。
タグは以下のようなケースで、請求金額の管理を行うためなどに利用されます。・同一アカウントで複数環境を作成している場合、作成したAWSリソースがどの環境のものかわかるようにする
・同一アカウントで複数の部署がAWS環境を触っている場合、作成したAWSリソースがどの部署のものかわかるようにする
・同一アカウントで複数のシステムを作成している場合、作成したAWSリソースがどのシステムのものかわかるようにする## 試してみた
では、実際にCDKでタグを付与してみます。
Stack APPのCDKは以下になります。
“`bin/cdk.ts
#!/usr/bin/env node
import ‘source-map-support/register’;
import * as cdk from ‘@aws-cdk/core’;
import { SalesPlanningStack } from ‘../lib/stack_sales_planning’;
import { Development
AWSのインスタンスタイプのEOL対応方法
みなさんが経験したことあるだと思いますがAWSがどんどんリソースを新しくにしてますが、古いリソースがいずれなくなってます、それのせいで前から稼働してるリソースを上げるしかないです。
今年の12月1日はいくつのインスタンスタイプがなくなります
:::note warn
前世代のノード T1、M1、M2、M3、R3 は、2022 年 12 月 1 日にサポート終了 (EOL) になります。2022 年 12 月 1 日より前に、新しい世代のノード タイプにアップグレードすることをお勧めします。
:::その世代はRDSだけではなくて、Elaticacheも影響されてます。なくなるなので自分で新しい世代を変更しなきゃ行けない。
## 普通のやり方
一番やりしやすいは普通にDBを変更する!AWSは次の世代のオススエしてまして、
| Previous Generation Node type | Recommended Node Type |
|:———–|————:|
| cache.m1.small | cache.t3.small
50歳近いおっさんがAWS Solutions Architect Associate (SAA-C03)を一発合格するまでのおはなし
合格できた嬉しさのあまり久々に書いています
### 自己紹介
* 元Web系エンジニア、一年前に転職して現在はシステム発注側の中の人
* 現在の職掌がセキュリティ・インフラ面の担当なのだが、とくにインフラ面がよわよわなのでなんとかせんと感
* あと、開発チックなことがやや恋しい・・・### スペック
* 前職はおもにオンプレのバックエンド側のもろもろを担当していた
* 業務でAWSを触ったことはまったくナシ
* 当時は社内物理サーバ内に構築された仮想環境(xen)を利用して、SSH経由でWebサーバやDBサーバをインストールして設定して、などはやっていた。
なのでEC2を起動してあれしてこれしては比較的理解しやすかったが、それ以外は何ソレ?状態### 教材と利用方法
|No|教材|ジャンル|利用方法|
|:–:|:–|:–|:–|
|1|[AWS認定資格試験テキスト AWS認定ソリューションアーキテクト – アソシエイト 改訂第2版](www.amazon.co.jp/dp/4815607389)|書籍|これだけでは合格は正直無理なのでは?ただ、自分のようにAWS
[初心者向け]たった50行のコードでTwitter Botを作成してみる
## 目次
0. 概要
1. プログラミング初心者のアプリケーション開発の悩みとTwitter Botを題材にした理由
2. 今回、使用する各種サービスの説明とシステム全体の構成図(登場する用語の解説や構成の全体像の解説)
3. 実装
4. まとめ## 1. 概要
### 記事の目的
本記事は、プログラミング初心者向けに、Twitter Botアプリケーションの作り方を紹介します。記事の目的としては、`とにかくアプリケーションを動かしたい人に対して、簡単にアプリケーションが実装できることを理解してもらう`ことにあります。
この記事を通して、アプリケーション開発の第1歩目を踏み出してもらえたらと思います。
### 想定読者
多少言及がありましたが、想定読者は、`プログラミング初心者でアプリケーションとして動くものを作りたい人`としています。### 説明しないこと
– 利用したサービスの選定理由や使用する技術に対する詳細な解説
– 今回のアプリケーションに必要なアカウントの作成手順(参考にできそう記事を添付します)### 説明すること
– 今回使用する各種サービスの