- 1. EBS ディスク容量追加
- 2. eb cliでAWSアカウント切り替え、選択
- 3. AWSに複数環境で自動デプロイの権限設定
- 4. Webサーバでソースポート(送信元ポート番号)を取得する
- 5. 【AWS】ABAC を雑にやるハンズオン
- 6. 【AWS Azure GCP】GCPの公式に各サービスの比較表があるじゃん
- 7. 【AWS Azure GCP】主要クラウドのAIサービス一覧と機能概要まとめ(2021年9月時点)
- 8. EKS Anywehre on vSphere
- 9. AWS IAMでのポリシーに指定できるアクションやリソースの一覧について
- 10. SQLを学ぼう!【2章】
- 11. AWSのDockerコンテナでSpringBootアプリケーションを実行してインターネットからアクセスする
- 12. AWS Elastic Beanstalkで環境作成時の注意点
- 13. AWSでSpringBootアプリケーションを実行してインターネットからアクセスする
- 14. AWS S3のCSVにWatson Studioからアクセスする
- 15. 【Docker】Terraform+AWS CLI+DooD環境を構築
- 16. api gateway + samでapiの環境を作る(api key)
- 17. api gateway + samでapiの環境を作る(ip制限)
- 18. AWS S3の特定bucketにCLIやAPIでアクセスする設定
- 19. AWSでEC2にEIPを付与→関連解除すると、パブリックIPがEC2に残ってしまう
- 20. AWS IoT CoreをRaspberry Piで使ってみた その3
EBS ディスク容量追加
まず、コンソールからec2インスタンスに接続しましょう。
現在の容量を確認します。“`
$ df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 516K 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/nvme0n1p1 300G 281G 20G 94% /
tmpfs 389M 0 389M 0% /run/user/1000
tmpfs 389M 0 389M 0% /run/user/0
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1
eb cliでAWSアカウント切り替え、選択
# 前提
複数のAWSアカウントを1つのPCから操作している時に
eb cliが現在どのアカウントを向いているかを確認したい状況でした。
新しいAWSアカウントで新しいBeansTalk環境を作成した時に確認した方法です。# AWSアカウントは複数の要素から判定されます
以下優先度の高い要素から書いていきます。基本的にはAWS CLIと同じ構成ですが後述する注意点もあります。### コマンドオプション
ebコマンドを実行する際に–profileオプションを付けることでアカウントを指定することができます。このオプションは後述するローカルPCのファイルに書いてある情報を見てアカウントを判断します。“`init.sh
$ eb init –profile account1
“`
### 環境変数
AWS_ACCESS_KEY_ID および AWS_SECRET_ACCESS_KEYを設定することで使用できます。“`export.sh
#環境変数設定
$ AWS_ACCESS_KEY_ID=EBCLIEBCLIEBCLIEBCLIEBCLIEBCLI
$ AW
AWSに複数環境で自動デプロイの権限設定
# 背景
* AWS上にECRとECSでバックエンドサービスを構築している
* one clickでコードデプロイを実施したい
* 開発環境と本番環境は別のAWSアカウントになる# 内容
## AWS CodeBuildとは
* 完全マネージド型のビルドサービス
* ソースコードをコンパイルする
* 単体テスト
* デプロイ## buildspec.yml
* 単体テスト実施
* docker image build
* ECRへpush## 問題
![deploy_aws.drawio (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13451/aae6b466-78fb-203f-18cf-fe9799d55eb9.png)
* 開発アカウントのCodeBuildから本番アカウントのECRへプッシュする時に、権限設定が必要
## 対策
### 本番アカウントの側
* ECRリポジトリにアクセス許可を追加する
* 開発アカウントのputimage権限を許可する`
Webサーバでソースポート(送信元ポート番号)を取得する
# 背景
昨今のアドレス共有技術(DS-Lite/MAP-Eなど)に関わる問題として「IP アドレスだけではユーザが特定できなくなること」が指摘されており、通信先のサーバなどでアクセスしてきた送信元ポート番号、正確なタイムスタンプを取ることを[RFC6302](https://datatracker.ietf.org/doc/html/rfc6302)では推奨しています
もちろん、記録されたログが保全(改ざんされていないなど)されることも重要ですね# で、本題
どうやるか?
(アドレス共有技術の適用はIPv6とセットにされることが多いので、サーバのIPv6化すればいいのですが、ここではおいておいて)## apache httpdの場合
こんなconfigを設定可能です
%{remote}p の部分ですね“`httpd.conf
LogFormat “[%h]:%{remote}p %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\”” combined
LogFormat “[%h]:%{remote}p
【AWS】ABAC を雑にやるハンズオン
#はじめに
クラスメソッドさんの8/17(火)リモート開催の [AKIBA.AWS ONLINE](https://dev.classmethod.jp/news/akiba-aws-210817/) で「ABAC」という言葉を初めて知りました。是非試してみたい!と思い、色々調べたりして自分なりに扱うことはできました。ということで、この記事では ABAC をやってみる一例を紹介します。この記事は AWS 初心者が書いており、AWS を不適切なやり方、間違ったやり方で使用している可能性があります。ご指摘等がございましたら、コメント頂けると幸いです。
#ABAC とは
ABAC は「Attribute Based Access Control」の略称です。
> 属性ベースのアクセスコントロール (ABAC) は、属性に基づいてアクセス許可を定義する認証戦略です。
引用元:[AWS の ABAC とは – AWS Identity and Access Management](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuid
【AWS Azure GCP】GCPの公式に各サービスの比較表があるじゃん
#はじめに
クラウドの機能って、どのベンダーでも同じような機能があるけど、どれが対応してるんだっけ?って思いました。探してみるとGCPの公式に比較表がありました。#各サービスの比較表
https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison?hl=ja
#まとめ
どれ使えばいいんだっけ、ってなったときに見返そうと思います。公式で出してくれるととても便利です。
【AWS Azure GCP】主要クラウドのAIサービス一覧と機能概要まとめ(2021年9月時点)
#はじめに
各クラウドが提供しているAIサービスはたくさんあるな〜と思い調べていたのでまとめました。本記事で扱っているクラウドベンダーは主要クラウドということでシェア率の過半数を占める、AWS、Azure、GCPの3つとなります。![cloud.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/764771/22a09e54-51c6-e5f7-ffe8-5c57a8ec6067.png)
クラウドインフラサービス市場の成長と各社のシェア(出典:[Synergy Research Group](https://www.srgresearch.com/articles/quarterly-cloud-market-leaps-to-42b-amazon-microsoft-google-pocket-63-of-dollars-spent))以下の表中の機能概要は参考文献からの引用になります。
#AWShttps://aws.amazon.com/jp/products/
| サービス名| 機
EKS Anywehre on vSphere
## はじめに
EKS AnywhereをvSphere上で実行してみました。ついでにGitOpsして、EKS ConnectorでAWSマネジメントコンソールに登録してみました。
## Amazon EKS Anywhereとは
AWS環境以外でEKSを実行するためのKubernetesディストリビューション。詳しくはこの辺を。
– [Amazon EKS Anywhere](https://aws.amazon.com/eks/eks-anywhere/?nc1=h_ls)
– [Amazon EKS Anywhere – Now Generally Available to Create and Manage Kubernetes Clusters on Premises](https://aws.amazon.com/jp/blogs/aws/amazon-eks-anywhere-now-generally-available-to-create-and-manage-kubernetes-clusters-on-premises/)– [EKS Anywhere
AWS IAMでのポリシーに指定できるアクションやリソースの一覧について
AWS IAMでポリシーを指定する際の、`Action`や`Resource`といった指定について。
たとえば、以下はEC2のドキュメントの例。
“`yaml
{
“Version”: “2012-10-17”,
“Statement”: [{
“Effect”: “Allow”,
“Action”: [
“ec2:DescribeInstances”,
“ec2:DescribeImages”,
“ec2:DescribeTags”,
“ec2:DescribeSnapshots”
],
“Resource”: “*”
}
]
}
“`https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/iam-policies-ec2-console.html
こういったところに、なにが書けるかがよくわからなくなるので。
一覧は、こちらを見ると良いようです。
https:/
SQLを学ぼう!【2章】
前章の記事(SQLを学ぼう!【1章】)では、MySQLに接続し、データベースの作成や指定、指定したデータベースにテーブルを作成し、データを挿入する作業について行いました!今回の記事では挿入したデータを検索し、表示させる作業を行なっていきたいと思います。
前章をご覧になりたい方は、下記にリンクを貼っておきますので、ご参照ください。
・[SQLを学ぼう!【1章】](https://qiita.com/haruki25596/private/8c1200db79fb9ae2200b)##前章の復習
前章の復習になりますが、作成したlistテーブルに、データを挿入しました。
テーブルへデータを挿入するには、**INSERT文**を用いて行いましたね。**INSERT INTO テーブル名 (カラム名1, カラム名2, …) VALUES (値1, 値2, …);**
“`ruby:ターミナル
mysql> INSERT INTO list (id, name, address) VALUES (1, ‘学 太郎’, ‘東京都世田谷区’);
Query OK, 1
AWSのDockerコンテナでSpringBootアプリケーションを実行してインターネットからアクセスする
#全体の流れ
– VPC内でインスタンスを作成しインターネットからアクセスできるようにする(手順は割愛。インターネットゲートウェイとかで調べたら出てくると思います)
– springbootプロジェクトをインスタンスに入れる(ない場合はInitialierなどで適当に作る。[参考1](https://qiita.com/rubytomato@github/items/b2c0686517e1c86ceb48)、[参考2](https://qiita.com/cyst-star/items/22f1c7fb11e193fe072f))
– DockerFileを作ってimageをbuildする
– 作ったimageを元にコンテナを起動
– publicipアドレスからアクセス可能に#DockerFileを作る
“`
FROM openjdk:11-jre-slim
WORKDIR /app
COPY ./build/libs/${jarname}.jar .
ENTRYPOINT [“java”, “-jar”, “${jarname}.jar”]
“`#imageビルド
AWS Elastic Beanstalkで環境作成時の注意点
## 発生していた現象
* AWS Elastic Beanstalk からアプリケーションを作成しようとすると「The instance profile aws-elasticbeanstalk-ec2-role associated with the environment does not exist.」のというエラーメッセージが表示されてしまい環境構築に必ず失敗してしまう
* 強い権限があるはずのルートユーザで実行しても上記と同様のエラーで起動できなくなってしまっている
* `aws-elasticbeanstalk-ec2-role` ロールはIAMロールに定義されている## 原因
AWS ElasticBeanstalkの初回のアプリケーション作成時にIAMロール(`aws-elasticbeanstalk-ec2-role` および `aws-elasticbeanstalk-service-role`)の自動作成を行うが、作成時のユーザの権限によって中途半端な状態でIAMロールが作成されてしまう場合がある。
一度IAMロールが作成されてしまうと、以降のElast
AWSでSpringBootアプリケーションを実行してインターネットからアクセスする
#ec2インスタンスを作成
ec2インスタンスを作り、SpringBootアプリケーションをbuildしておく。
ここでは略。#nginxファイルを作成する
`/etc/nginx/conf.d`の下に.confファイルを作成。なかったらnginxをインストールする“`springboot.conf
server {
listen 80;
server_name _;location / {
proxy_pass http://localhost:8080;
}
}“`
リバースプロキシの設定完了#nginxを再起動する
“`
sudo systemctl restart nginx.service
“`#SpringbootApplicationをビルドしたjarファイルを実行する
“`
java -jar ${repos}/build/libs/${project}.jar
“`アプリケーション起動
“`
. ____ _ __ _ _
/\\ / ___
AWS S3のCSVにWatson Studioからアクセスする
AWS S3のCSVにWatson Studioからアクセスします。
あらかじめS3にはバケットs3testwsとユーザーs3testwsuserを作っておきます。参考:AWS S3の特定bucketにCLIやAPIでアクセスする設定 – Qiita
https://qiita.com/kawada2017/items/40acfbaf6bce8f8011cf
Watson Studioからは「接続」オブジェクトでバケットへの接続情報を定義し、「接続データ」オブジェクトでバケット内のCSVを定義するとアクセスできるようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/13cda552-8eb5-eca8-01d2-62312a8feb46.png)
#1. 接続オブジェクトの作成
「プロジェクトに追加」で「接続」を選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazo
【Docker】Terraform+AWS CLI+DooD環境を構築
AWSの環境構築をTerraformで行う際に、環境依存やバージョン管理を考慮する必要があります。
その管理を簡略化するため、Dockerを用いて環境をコンテナ化します。
また、コンテナ内のTerraformでECRの操作を行うため、DooD(Docker outsude of Docker)という仕組みでコンテナ内からDockerの機能が利用できるようにします。# ターゲット
– TerraforomまたはAWS CLI環境をコンテナ化したい
– Dockerコンテナ内でDockerを使いたい# Terraformを使う方法
TerraformをDockerコンテナで使用する方法として公式イメージを使用します。
バージョンを固定したい方は、`latest`を置き換えてください。“`Dockerfile:Dockerfile
FROM hashicorp/terraform:latest
“`[HashiCorp公式のDocker Hub](https://github.com/hashicorp/terraform)を参照することで、golang:alpine
api gateway + samでapiの環境を作る(api key)
やったこと
– ip制限(sam)
– api keyの設定(sam)
– route53でドメインの設定
– api gatewayでlambdaとドメインを紐づける今回紹介する項目
– api keyの設定(sam)#前提
AWS::Serverless::Functionでlambdaを作成済みであること。
参考:https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/sam-resource-function.html作成したlambdaにapi key設定を行なっていきます。
#api keyの設定(sam)
samで以下のコードでlambdaを作成しているものとします。“`template.yml
ApiGatewayRestApi:
Type: AWS::Serverless::Api
Properties:
StageName: ProdApiLambdaFunction:
Type: AWS::S
api gateway + samでapiの環境を作る(ip制限)
やったこと
– ip制限(sam)
– api keyの設定(sam)
– route53でドメインの設定
– api gatewayでlambdaとドメインを紐づける今回紹介する項目
– ip制限(sam)#前提
AWS::Serverless::Functionでlambdaを作成済みであること。
参考:https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/sam-resource-function.html作成したlambdaにip制限の設定を行なっていきます。
#ip制限(sam)
samで以下のコードでlambdaを作成しているものとします。“`template.yml
ApiLambdaFunction:
Type: AWS::Serverless::Function
Properties:
FunctionName: ApiLambdaFunction
VpcConfig: 略
Code
AWS S3の特定bucketにCLIやAPIでアクセスする設定
AWS S3の特定のbucketに、CLIやAPIからアクセスキーIDとシークレットアクセスキーでアクセスする設定を行います。
全体像は以下のようなイメージです。まず、s3testwsというバケットをつくります。そしてs3testwsuserというユーザーをつくり、アクセスキーIDとシークレットアクセスキーを生成します。
そして、バケットポリシーでこのバケットs3testwsに対してユーザーs3testwsuserのアクセス権限を付与します。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/e5fee8d9-a8a0-2e3c-903e-0602105e1375.png)
#1 バケットの作成
以下のようにバケットを作成します。リージョンはap-northeast-1を選び、パブリックアクセスをすべてブロックしています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22
AWSでEC2にEIPを付与→関連解除すると、パブリックIPがEC2に残ってしまう
## これは何
AWSでEC2にEIPを付与→関連解除すると、パブリックIPがEC2に残ってしまった(!)の記録です。
## 記録
自動割り当てパブリックIPを無効にします。
![スクリーンショット 2021-09-10 17.52.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740345/ddcb6cdd-c0bc-575f-217c-981104413ff7.png)
![スクリーンショット 2021-09-10 17.54.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740345/df4a7a13-82eb-3477-2b53-eb546a6d3530.png)
EIPを付与します。
![スクリーンショット 2021-09-10 17.55.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/174
AWS IoT CoreをRaspberry Piで使ってみた その3
## 概要
* AWSにはIoT機器と接続、管理するためのAWS IoT Coreというサービスがある
* 公式にもハンズオンがあるが、最小限の手順、構成で動作を確かめてみる
https://aws-iot-core-for-beginners.workshop.aws/phase2/step2.html
* 前回に引き続き温湿度センサーDHT22のデータを送信することを試みる![aws-iot-core.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/701445/5b2e455f-a8b2-e09b-ba52-9fdeb020073d.png)
前回の記事
https://qiita.com/cami_oshimo/items/8e9c45230fccfac4ff4c![スクリーンショット 2021-09-12 11.35.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/701445/54dca80b